Reporte con 2 tablas
Hola, el problema es el siguiente, tengo 2 tablas con un campo en común que se llama comprobante.
Tengo una búsqueda que me muestra ambas tablas y sus registros relacionados, una se llama ARCHIVOS que tiene los datos de la empresa y la otra se llama DETALLES que tiene varios registros relacionados por el campo comprobante.
EL problema es que cuando mando a imprimir el reporte me muestra todos los datos de la bd ARCHIVOS pero de la tabla DETALLES solo me muestra el primer registro que tiene relación. ¿Debo ponerle alguna condición a los campos en el diseño del reporte?
aqui le envio el codigo de busqueda que tengo para que puedan ayudarme con mayor precision. Estos codigos son los que tengo:
- En un textbox en la propiedad LOSTFOCUS (para hacer la búsqueda)
Store ordencompra to thisform.ordencompra.value
store empresa to thisform.empresa.value
store direccion to thisform.direccion.value
store detalle to thisform.detalle.value
store total to thisform.total.value
SELECT DETALLES
go top
thisform.grid1.recordsource="select * FROM detalles where detalles.comprobante=thisform.comprobante.value"
if !eof() then
Thisform.GRID1.Column1.Width=50
Thisform.GRID1.Column2.Width=50
Thisform.GRID1.Column3.Width=200
Thisform.GRID1.Column4.Width=90
Thisform.GRID1.Column5.Width=90
endif
Else
ThisForm.Grid1.RecordSource=" "
Store SPACE(1) to thisform.fecha.value
Store 0 to thisform.ordencompra.value
store SPACE(1) to thisform.empresa.value
store SPACE(1) to thisform.direccion.value
store SPACE(1) to thisform.detalle.value
store 0 to thisform.total.value
wait windows "Lo siento ese Comprobante No existe..."
store space(1) to thisform.comprobante.value
thisform.comprobante.setfocus
endif
thisform.refresh
y luego que hago la búsqueda, tengo un COMMAND BUTTON (para mostrar el reporte por pantalla) en la propiedad CLICK
SELECT detalles.*;
from detalles INNER JOIN archivos;
ON detalles.comprobante=archivos.comprobante;
INTO CURSOR command1
GO TOP
IF _tally > 0
REPORT FORM reporte TO PRINT PREVIEW FOR DETALLES.COMPROBANTE=THISFORM.COMPROBANTE.Value
endif
Hago la comparación con thisform.comprobante.value porque tengo un textbox con ese nombre que pide el numero de comprobante que se quiere visualizar.
Espero su ayuda. Gracias.
Tengo una búsqueda que me muestra ambas tablas y sus registros relacionados, una se llama ARCHIVOS que tiene los datos de la empresa y la otra se llama DETALLES que tiene varios registros relacionados por el campo comprobante.
EL problema es que cuando mando a imprimir el reporte me muestra todos los datos de la bd ARCHIVOS pero de la tabla DETALLES solo me muestra el primer registro que tiene relación. ¿Debo ponerle alguna condición a los campos en el diseño del reporte?
aqui le envio el codigo de busqueda que tengo para que puedan ayudarme con mayor precision. Estos codigos son los que tengo:
- En un textbox en la propiedad LOSTFOCUS (para hacer la búsqueda)
Store ordencompra to thisform.ordencompra.value
store empresa to thisform.empresa.value
store direccion to thisform.direccion.value
store detalle to thisform.detalle.value
store total to thisform.total.value
SELECT DETALLES
go top
thisform.grid1.recordsource="select * FROM detalles where detalles.comprobante=thisform.comprobante.value"
if !eof() then
Thisform.GRID1.Column1.Width=50
Thisform.GRID1.Column2.Width=50
Thisform.GRID1.Column3.Width=200
Thisform.GRID1.Column4.Width=90
Thisform.GRID1.Column5.Width=90
endif
Else
ThisForm.Grid1.RecordSource=" "
Store SPACE(1) to thisform.fecha.value
Store 0 to thisform.ordencompra.value
store SPACE(1) to thisform.empresa.value
store SPACE(1) to thisform.direccion.value
store SPACE(1) to thisform.detalle.value
store 0 to thisform.total.value
wait windows "Lo siento ese Comprobante No existe..."
store space(1) to thisform.comprobante.value
thisform.comprobante.setfocus
endif
thisform.refresh
y luego que hago la búsqueda, tengo un COMMAND BUTTON (para mostrar el reporte por pantalla) en la propiedad CLICK
SELECT detalles.*;
from detalles INNER JOIN archivos;
ON detalles.comprobante=archivos.comprobante;
INTO CURSOR command1
GO TOP
IF _tally > 0
REPORT FORM reporte TO PRINT PREVIEW FOR DETALLES.COMPROBANTE=THISFORM.COMPROBANTE.Value
endif
Hago la comparación con thisform.comprobante.value porque tengo un textbox con ese nombre que pide el numero de comprobante que se quiere visualizar.
Espero su ayuda. Gracias.
1 respuesta
Respuesta de Víctor Arturo Mercado Fernández
1