Ayuda para mostrar un join entre dos tablas desde un dbgrid

No se como hacer que un dbgrid muestre un join entre dos tablas: una de documento y otra de detalle, es como cuando haces una venta, que pones un encabezado y luego van varias lineas de los productos que se van a comprar(detalle). Es algo así, pero quiero que al darle click al botón agregar este me agregue los datos que yo pongo en edit y dbedits, a un dbgrid abajo y que solo muestre los que voy agregando, solo los del folio de este documento que guardo antes. Quizá no me se explicar bien. En fin, logro que me guarde pero no me muestra nada en el dbgrid. Espero respuesta. Atentamente. Lore :)

1 Respuesta

Respuesta
1
Creo que comprendo lo que quieres. Como no se los pasos que has dado te explico: Para empezar utilizamos 2 componentes Ttable y 1 TDatasource.
Table1: Para documentos
Table2: Para detalle
Datasource1: Apunta a Table1
Datasource2: Apunta a Table2
DBGrid1: Control para vez contenido de Table1
DBGrid2: Control para vez contenido de Table2
TbEdit... Los que creas pertinentes...
De todas formas, antes de empezar te aclaro que han de haber campos idénticos en ambas tablas para poder 'linkarlas' con la otra propiedad del componente Table2: Masterfields. Es aquí donde habrás de relacionarlos.
Una vez asignadas a las tablas a las bases de datos asociadas, pones en la propiedad Mastersource de Table2 el Datasource1. Seguidamente las 'linkas' tal y como describo líneas arriba.
Ahora procedemos a introducir con los Edits que quieras la información. Ten en cuenta que el campo clave en la base asociada a Table2 ha de contener la misma información que el de Table1, por lo que si, por ejemplo, el campo linkado entre las tablas es NUMDOCUMENTO, y el valor actual del mismo en la base Documentos es 100, éste mismo valor valor ha de ser introducido automáticamente en el campo correspondiente de la base de detalle, para que al hacer el 'post' éste dato esté implícito en el registro y por tanto aparezca ligado con el documento en el grid de DETALLE, ya que si no, no aparecerá, aunque si existirá en la base de datos DETALLE.
Espero que te haya servido de ayuda. Si quieres consúltame algo no dudes en escribirme. Bye!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas