Ver Mensaje Individual
  #2  
Antiguo 28-11-2007
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Reputación: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
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.
Responder Con Cita