Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Imprimir Lista de Grupos en QuickReport (https://www.clubdelphi.com/foros/showthread.php?t=39734)

Ricomarz 28-01-2007 22:14:22

Imprimir Lista de Grupos en QuickReport
 
Hola buenas tardes a todos ... De nuevo estoy aqui para ver si me pueden ayudar con un problema que tengo, les cuento ....

Necesito imprimir una lista completa de todos los grupos existentes, con su salon, capacidad y el nombre del maestro .... el problema que tengo es que me imprime el mismo maestro para todos los cursos ... pero lo que yo quiero es que me ponga el nombre del maestro correspondiente a ese grupo ..


Nombre Maestro Grupo Salon Capacidad
Ricardo Corona IA1 I5 10
Martha Chavez EA1 E5 10

El nombre del maestro esta en otra BD diferente a donde esta los datos del grupo, pero por medio del campo empleado hago referencia a la tabla donde se encuentran los datos de los maestros ...

Aqui les pongo el codigo, a ver si me ayudan a detectar el error :

procedure ObtenerDatosMaestroGrupo(per,mpio:string);
var idmpio,reg,emp:integer;
begin
idmpio:=strToInt(muncipio(mpio));
dmprincipal.QBuscar.Active:=false;
dmprincipal.QBuscar.SQL.Text:='Select pe.periodo, g.salon, g.grupo, g.capacidad, g.empleado as numemp '+
'From grupos g, periodos pe, materias ma, cursos cu '+
'Where pe.id_periodo=g.id_periodo and ma.clave_materia=g.clave_materia '+
'and cu.id_curso=ma.id_curso and cu.id_mpio=:idmpio and pe.periodo=:per '+
'Order by cu.id_mpio,g.grupo';
dmprincipal.QBuscar.Parameters.ParamByName('per').value:=per;
dmprincipal.QBuscar.Parameters.ParamByName('idmpio').value:=idmpio;
dmprincipal.QBuscar.Active:=true;
dmprincipal.QBuscar.ExecSQL;
reg:=dmprincipal.QBuscar.Recordset.RecordCount;
if reg>0 then
begin

//OBTENGO EL NUM DE EMPLEADO
emp:= dmprincipal.QBuscar.FieldByName('numemp').value;

dmrechum.Qrechum.Active:=false;
dmrechum.Qrechum.SQL.Text:='Select ap_pat,ap_mat,nom_empl,num_empl from pcrhac02 where num_empl=:emp';
dmrechum.Qrechum.Parameters.ParamByName('emp').Value:=emp;
dmrechum.Qrechum.Active:=true;
dmrechum.Qrechum.ExecSQL;

//IMPRIMO EL REPORTE
FRepgrupos.Preview;
end
else
begin
FidioConceptosyGrupos.mensaje.Caption:='No existen grupos vigentes en el periodo '+ per;
FidioConceptosyGrupos.mensaje.Visible:=true;
end;
end;

No se si el problema radicaria en que esta en otra base de datos, pero no lo creeo ya que si me obtiene el nombre del primer maestro.

No se cual sea el problema, si me pudieran ayudar se los agradeceria mucho ..

Espero sus respuestas lo mas pronto posible ...

Saludos ..
Ricomarz

ContraVeneno 30-01-2007 00:25:21

Lo que yo te puedo recomendar, es que trates de hacer una sola consulta donde obtengas todos los datos que necesitas, si buscas en el foro, incluso en la ayuda de tu manejador de base de datos, estoy seguro que encontrarás información sobre como hacer una consulta en bases de datos distintas.

Y segundo, en tu código primero activas la consulta y luego ejecutas ExecSQL. Lo cuál es incorrecto, ya que el ExecSQL se requiere solo con comandos de acción (delete, create, update, insert) y para consultas utilizamos el comando Open, o lo que es lo mismo Active=True. Aunque yo prefiero usar Open.

Saludos


La franja horaria es GMT +2. Ahora son las 17:59:28.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi