Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   problema al generar report (https://www.clubdelphi.com/foros/showthread.php?t=32519)

kiringui 08-06-2006 12:09:33

problema al generar report
 
Buenas a todos: Mi problema es el siguiente.

Soy bastante nuevo en el qreport..genero listados sencillos eso sip jejje..pero ahora tengo que generar el siguiente i no se como crearlo aver si me pueden ayudar:
Tengo bbdd acces .con dos tablas una a_emplat que contiene los datos del empleado y la clave pricipal es nro_matricula.
la otra tabla es a_presecias en est aguardo los registros del marcaje de entrada i salidas de la empresa(para fichar)guarodo el nro_matricula dia hora entrada hora salida.

Ahora quierro generar un listado que me muestre las presencias de los empleados un un periodo determinado..asta aqui bien .me muestra lo siguiente:
EJ: NRO_MATRICULA DIA HENTRADA HSALIDA
1 12/06/06 12: 00 22:00

pero entoces reamete lo que quiero es que me muestre tambien el nombre,apellido, que estan en la tabla empleados....
como relaciono y muestro en cada linia del informe el nombre i alpellido sabiendo el numero de matricula?

gracias a todos
aprende juntos es cojonudo!"!

epuigdef 08-06-2006 12:31:24

Buenas!

El datasource de este qreport deberá ser un Query que relacione las dos tablas.

Del estilo:

Código SQL [-]
select * 
from a_presecias 
left join  a_emplat 
on a_presecias.nro_matricula = a_emplat.nro_matricula
(y demás filtros)


y ya dispondrás de todos los campos para ponerlos en el report

Un saludo

Edu

kiringui 08-06-2006 12:39:36

edu
 
gracies per lajuda lo provare en seguida y te dire el que....

gracias de nuevo

kiringui 09-06-2006 09:30:30

buenas edu
 
porobe lo que me dijiste ....pero en algun paso me tendre que equivocar ...porque solo me mustra un registro y repetido osea siempre el mismo!!!
puedes echarme un cable y contarmelo mas detalladamete?
gracias

epuigdef 09-06-2006 09:32:05

Buenas!

Si me pasas la estructura de las tablas y la SQL que ejecutas me voy a situar mejor, si no vamos mal!

Edu

kiringui 09-06-2006 09:41:43

buenas
 
oks vamos a ello aver si te lo pongo todo.

tabla a_empleats campos(nro_matricula,nom,1cognom,2cognom)
tabla a_presecia campos(nr0_matricula ,dia,horaentrada,horasalida)

tengo query con select que me facilitaste tu:
select *
from a_presencia
left join a_empleat
on a_presencia.nro_matricula = a_empleat.nro_matricula ;

la banda detail uno los camps con lo que me devuelve la sql.

anteriormete lo habia panteado con dos querys una para a_presencia que me devolvia nro_matricula,dia horaentrada,hora salida.Todo corecto pero no coseguia unir con la orta para poder ver cada nombre y apellido

creo que esta todo...

epuigdef 09-06-2006 10:38:51

Buenas!

En el report le pones los campos de las dos tablas?

Me puedes poner un ejemplo de los datos que tienes en las tablas y el resultado que te aparece en el report?

Edu

Lepe 09-06-2006 11:06:55

Te aconsejo que busques un manual de SQL, hay muchos por la red, yo usaría esto:
Código SQL [-]
select *
from a_presencia 
inner join a_empleat 
on a_presencia.nro_matricula = a_empleat.nro_matricula where
dia between ( : prFechaInicio and : prFechaFin) and 
horaentrada >= : prHoraInicio and horasalida <= : prHoraFin;

En delphi:
Código Delphi [-]
query1.sql.text := // todo el texto de arriba 
query1.params.ByName('prFechaInicio').AsDate := datetimepicker1.date;
query1.params.ByName('prFechaFin').AsDate := datetimepicker2.date;
query1.params.ByName('prHoraInicio').AsTime := datetimepicker3.Time;
query1.params.ByName('prHoraFin').AsTime := datetimepicker4.Time;
query1.Open;

En ADO, no estoy seguro de que sea "params.ByName", o bien "params.Fieldbyname", pero el code insight de delphi te dirá como es.

Dentro del sql hay unas condiciones que llevan los dos puntos delante ":", eso se interpreta como parámetros que se le darán al SQL, por eso despues uso Query.params.blahblah

Saludos

epuigdef 09-06-2006 11:08:52

Buenas!

En ADO es Parameters.ParamByName, pero creo que su problema no es de SQL sino de datos.

A ver si tenemos un ejemplo de sus datos y nos imaginamos un poco más el problema!

Edu

kiringui 09-06-2006 11:15:20

edu
 
los datos que uso de la query son
a_presencia.nro_matricula
nom
primercognom
segoncognom
dia
horaentrada
horasortida

que son los que me devuelve de la left join
entoces los pongo en un detail seleccionadolos con el data fiel

kiringui 09-06-2006 11:26:42

intentrare expilcarme mejor
 
lepe and edu::
el paso de parametros ya lo tengo bien me passa los parametros entre dos fechas creo que el problema lo tengo a la hora de passar la informacion de las dos tablas relacionadas por el nro_matricula en el report.

si solo muestro los campos de la tabla a_presencia va perfecto...me los muestra todos .el proble esta cuando queiro saber a partir del nro_matricula de a_presencias el nombre y apellidos del emplaedo que se encuentran en la tabla a_empleados..

gracias por iestar ayudandome

epuigdef 09-06-2006 11:30:15

Has probado la sentencia SQL directamente en Access?

Crea una consulta, pasa a la vista SQL y ponle la sentnecia.

A lo mejor es simplemente que no te relaciona bien los datos porque
a) No hay datos a relacionar en las dos tablas
b) los tipos de datos de los campos de matrícula son diferentes

Edu

kiringui 09-06-2006 11:40:50

edu
 
probado en acces :
resultado perfecto con la select :
select *
from a_presencia
left join a_empleat
on a_presencia.nro_matricula = a_empleat.nro_matricula

funciona perfect i me devuelve todos los resultados correctos.
entoces el problema va ser en el report no?en la forma de mostrar los datotos?

epuigdef 09-06-2006 11:44:22

Vale, seguimos avanzando...

En el report tienes que tener puesta una banda de detalle y meter las etiquetas QRDBLabel (o algo así) dentro de ella. Estas etiquetas tienen que estar asignadas al datasource

Y el componente QuickReport tiene que tener también la propiedad datasource asignada, para que así sepa qué es lo que tiene que repetir.

Ale, a probar!

Edu

p.d. Por mis cojones que esto tiene que salir... Ya es cuestión de orgullo!

Lepe 09-06-2006 16:59:16

Cuidado con el Koala que, según la letra de su canción: se gana la vida cortando cojones, la canción se puede escuchar aqui

:D :D :D :D :D

kiringui 12-06-2006 09:24:44

buenas
 
edu and lepe...gracias por todo acavo funcionado perfecto quite todos los comonentes de l repor e,peze de nuevo y perfecto..no e podido contestar antes tube problemas para entrar en la pagina despues del ultimo mesaje...

gracias de nuevo


La franja horaria es GMT +2. Ahora son las 16:55:25.

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