FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Subconsulta dentro de un QuickReport.. Utilizo tablas Paradox..Ayudaaaa Please...
Tengo un problemon...
tengo 2 tablas paradox.. Empleados y Inasistencias... cuando tiro un reporte quickreport.. muestro los datos de los empleados, y tengo que revisar en la base de datos de inasistencias, cuantas veces falto esee empleado , en un periodo de tiempo entre 2 fechas... esa subconsulta.. la hago en el evento.. OnStartPage, del quick report.. aveces funciona bien..otras veces.. se tilda.. se me cierra la aplicacion porque dice que tengo demasiadas tablas abiertas... CUAL ES LA FORMA CORRECTA DE HACERLO... PEGO EL CODIGO: este es el codigo de cuando se carga el quickreport: DBSearch.DatabaseName := 'dbs\'; DBSearch.SQL.Clear; DBSearch.SQL.Add('SELECT * FROM EMPLEADO.DB WHERE COOPERATIVA LIKE '+quotedstr('%'+wndmain.cbCooperativa.text+'%')+ ' AND TRABAJO_ASIGNADO LIKE '+quotedstr('%'+wndmain.cbPuestoTrabajo.Text+'%')+ ' AND HABILITADO LIKE '+quotedstr('%SI%')); DBSearch.SQL.Add(' ORDER BY APELLIDO') ; DBSearch.ExecSQL ; quickrep1.DataSet := dbSearch; dbsearch.Active := true; Este es el codigo que tengo en el evento OnStarPage: del quickrepott: Monto_Inasistencia := 0; dbInasistencias.DatabaseName := 'dbs\'; dbinasistencias.Active:=false; dbInasistencias.SQL.Clear; dbInasistencias.SQL.Add('SELECT * FROM '+ 'INA2008.db' + ' WHERE DNI= NI AND FECHA >= :fecha1 AND FECHA<= :fecha2' ); dbInasistencias.Params.ParamByName('DNI').AsInteger := dbsearch.FieldValues['DNI']; dbInasistencias.Params.ParamByName('fecha1').AsDate:= wndmain.pImpresionFrom; dbInasistencias.Params.ParamByName('fecha2').AsDate:= wndmain.pImpresionTo; dbInasistencias.ExecSQL; dbInasistencias.Open; while not dbInasistencias.Eof do begin // repita y almacena el monto de descuento monto_Inasistencia := monto_Inasistencia + dbInasistencias.FieldValues ['MONTO']; dbInasistencias.Next; end; dbInasistencias.Active:=true; BUENO, AGRADECERE MUCHISIMO SI ALGUIEN ME DA UNA MANO... ya no se que tocar... gracias. si alguno tiene un email para el msn, mejor.. mil gracias !!! leandro |
#2
|
||||
|
||||
Hola
No se lo que haces, pero hay varias contradicciones. Creo que esta mejor asi:
Saludos
__________________
Siempre Novato |
#3
|
|||
|
|||
subconsulta dentro de un quickreport
a ver si te puedo ayudar...
la sentencia sql secundaria la deberias de poner junto a la otra, con la carga inicial del quickreport, con un cámbio que implique la consulta que necesitas en lugar de dbInasistencias.SQL.Add('SELECT * FROM '+ 'INA2008.db' + ' WHERE DNI= NI AND FECHA >= :fecha1 AND FECHA<= :fecha2' ); podrías poner dbInasistencias.SQL.Add('SELECT DNI,SUM( MONTO) AS NTOTAL FROM '+ 'INA2008.db' + ' WHERE FECHA >= :fecha1 AND FECHA<= :fecha2' ); después, podrías crear una relación 'master-detail' entre las dos consultas con la propiedas 'mastersource', relacionandolas por la columna DNI. Por último, ya podrías en el quickreport hacer referencia a los datos de esas faltas utilizando un componente TQREXPR, en el evento Onprint puedes poner : 'value := dbinasistencias.fieldbyname('ntotal').value Espero te sirva... |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Como utilizo el QuickReport de Delphi7 | Elite237 | Impresión | 7 | 28-07-2007 23:27:37 |
Ayudaaaa | aoiTo | C++ Builder | 4 | 12-01-2006 17:09:25 |
Tablas y QuickReport | coleleon | Impresión | 0 | 01-12-2005 10:39:23 |
Paradox - Fecha actual dentro de un select | fjolivares | Tablas planas | 2 | 20-05-2005 16:12:56 |
QuickReport con 2 tablas | olybola | Impresión | 1 | 29-05-2003 07:56:47 |
|