![]() |
Consulta maestro/Detalle (TibTable)
Estimados:
Tengo 2 tablas. maestro: (Datasource_maestro) IDMaestro fecha_1 IDUsuario Total detalle:(Datasource_detalle) IDDetalle IDMaestro IDCliente IDProducto Los datos del maestro (fecha = jvdbdatetimepicker), id_usuario (jvdbLuckupCombo), total (DbEdit). Los datos de detalle IdCliente, idproducto, estan con un dbGrid enlazados cada uno con un combobox para asociarlo al Grid tipo combobox) y el Detalle le asigno el master Source (Datasource_maestro) Pero luego de esto nosé que más se asigna... Saludos y espero me ayuden |
Hola, bienvenido a clubdelphi, te sugiero que leas nuestra guía de estilo para que podamos ayudarte mejor.
Gracias. |
Hola
Tambien tienes que enlazar los dos datasets. Al dataset detalle le tienes que decir que su datasource es el dataset maestro, cosa que veo que ya realizas y al crear un nuevo registro detalle que el id es el del mestro. Un poco de código no vendría nada mal, siempre se ven mejor las cosas. Saludos Josep |
Trabajo y Logica
Gracias Josep:
Te comento, la siguiente imagen muestra el dibujo que se quiere y que está Código SQL [-]190.13.167.92/img/Despacho.JPG La pregunta es cómo le asigno el Id_despacho (master) al detalle ???, para luego en el evento de guardar el "Despacho" no me de errores de violaciones de llaves ? Si te das cuenta en la Grid, el Cliente y el Producto los tengo unidos como un Combobox, para mejor trabajo del usuario... En código no hay nada, solo quiero probar con los navigator a ver si funciona y luego meter más mano. Algo por ahi he leido o visto que al momento de generar o abrir un registro, automaticamente se guarde o quede tomado el Id del Despacho en este caso, para luego asociarlo al campo foráneo del detalle ??? Saludos |
No se con que base de datos trabajas, yo en Firebird lo que hago es colocar en el evento onnwerecord de la tabla lo siguiente:
TablaDetalleID.Value := TablaMaestroID.Value; Donde los ID son los nombres del campo unico de cada tabla para enlazar. Luego para enlazarlos haces un select de la tabla detalle donde el detalleID = MaestroID. Espero te sirva Josep |
Efectivamente también trabajo con Firebird...
lo realizo altiro y te comento ! Saludos |
Acuerdate de incrementar el ID unico del detalle, con un trigger por ejemplo.
Si me pasas la estructura de las tablas te hago un ejemplo rápido Josep |
Hola.
Una forma genérica de asignar maestro/detalle con la estructura que pusiste arriba seria: Supongamos que tenés declarado
Triggers para generators:
Y esté asignado en 'MAESTRO': Cita:
Y en 'DETALLE': Cita:
Debería funcionar si: Cita:
Saludos. |
Hola de nuevo.
Perdón ahora veo que usas IBTables... Es mucho mas fácil que con IBDataSet aunque menos eficiente. Sólo debés ajustar en el IBTable DETALLE: Cita:
Saludos. |
El Ultimo Post Me Funciona Un 90 Creo.
Pues En El Primer Dbnavigator (maestro) Al Momento De Crear Un Nuevo Registro, Me Permite Realizarlo, El Tema Es Que Cuando Pasa A La Grid (detalle) Y Quiero Guardar 1 Registro (fila) Dice Que El Id_detalle Debe Contener Un Valor (must Have A Value). Creo Que Seria Bueno Eliminar El 2º Dbnavigator Y Dejar Al Usuario Que Al Momento De Generar Una 2 Fila En La Grid (con Tabulador Por Ejemplo) Se Vayan Generando ! Saludos |
Cita:
|
| La franja horaria es GMT +2. Ahora son las 22:24:57. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi