Creo que lo que necesitas es unir los DataSets a travez del DataSource.
- Supongamos que la cabecera tiene un campo ID_CABECERA que identifica a cada registro.
- Supongamos que el detalle de la factura tiene un campo ID_CABECERA en el que guarda cual es la cabecera a la que corresponde.
TCabecera - Tabla cabecera. Es un DataSet, TTable
SQL='SELECT ID_CABECERA,NOMBRE,DIRECCION,IMPORTE,... FROM CABECERA_FACTURA'
DSCabecera - DataSource
DataSet=TCabecera
TDetalle - Tabla detalle. Es un DataSet, TTable
SQL='SELECT ARTICULO,CANTIDAD,IMPORTE,... FROM DETALLE_FACTURA WHERE ID_CABECERA=?ID_CABECERA'
DataSource=DSCabecera
DSDetalle - DataSource de TDetalle
DataSet=TDetalle
De este modo, cuando te muevas a la siguiente cabecera, automaticamente se moverá la tabla de detalle, mostrándote los detalles de esa factura.
Nota: El parámetro ?ID_CABECERA se debe llamar igual que el campo en la cabecera.
De todos modos, si quieres acceder a los datos de la tabla de facturas solo debes ver que es lo que tiene TCabecera.
TCabecera.FieldByName('NOMBRE').AsString, por ejemplo.
Última edición por duilioisola fecha: 28-11-2007 a las 11:24:01.
|