Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-07-2007
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Unhappy Urgente !! MAESTRO-DETALLE

Hola Amigos....ESTOY DESPERADO !!!.

Estoy realmente deseperado porque no encuentro la forma de grabar registros en una relacion maestro detalle....alguien me podria explicar como puedo grabar registros en una relacion como la antes mencionada?...

Esto quiero hacer, quiero ir agregando los detalles de una factura a un DBGrid y posteriormente grabarlos en la tabla de detalles....lo anterior quiero q se haga cuando le de un click en un boton para que grabe la informacion....estoy tratando de grabar primero el tabla maestra y luego en la de detalles....o alguien tiene una mejor forma de grabar los detalles a una factura ?....

Se puede grabar todo al mismo tiempo utilizando un solo DataSet, y se me ocurre usar el evento AfterInsert o AfterPost, para que posteriormente, mediante un procedimiento almacendo, inserte los registros en la tabla de detalles !!!??? ...ESTOY MAL ???....ESTO la verdad todavia no lo intento.

Lo q intentado es lo siguiente, habilite una tabla con la misma estructura de los detalles (de paso) y posterior a grabar el registro maestro, tomé esta tabla y empece a recorrerla para insertar cada uno de los registro a la tabla detalles original -en la que deben de estar los registros-, utilizando un procedimiento almacenado....pero la verdad creo que no es la mejor solucion ni la mas optima....

HELP ME !!!....por favor. Espero sus comentarios Y GRACIAS DE ANTEMANO



Sinceramente estoy realmente desorientado......
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #2  
Antiguo 09-07-2007
[juanramones] juanramones is offline
Miembro Premium
 
Registrado: ene 2007
Posts: 6
Poder: 0
juanramones Va por buen camino
Smile Maestro Detalle

1. Mantenga la Calma -> lo de Urgente!! no le ayudará a solucionar el problema, antes causa el efecto contrario en el foro.

2. Solución:

Si ya tiene la BD con las tablas relacionadas entonces:

Si ya agregó los componentes de acceso del conjunto de datos o sea algún TDataSet que hagan referencia a las tablas, como un TADOTable por ejemplo, entonces:

Tablas - DataSet - DataSource
Maestro - SetMaestro - SourceMaestro
Detalle - SetDetalle - SourceDetalle

Agrege un componente TDataSource (SourceMaestro) que haga referencia a la Tabla Maestro (SetMaestro).

En el componente TDataSet que hace referencia a la Tabla Detalle (SetDetalle), busque la propiedad MasterSource y coloque allí el SourceMaestro

En la propiedad MasterFields seleccione los campos que conforman la Unión entre ambas Tablas (Ej: MaestroID-DetalleID).

Agrege un componente TDataSource (SourceDetalle) que haga referencia a la Tabla Detalle (SetDetalle)

Obviamente el DBGridDetalle va relacionado con SourceDetalle.

Si lo desea puede agregar un componente TDBNavigator también relacionado con SourceDetalle para crear una barra estándar.

y Voilé ... una relación Maestro-Detalle a surgido...

Ahora el tema de que con un Botón se grabe se soluciona llamando al método SetDetalle.Post en el Evento OnClick

Código Delphi [-]
SetDetalle.Post;

Pero antes SetDetalle debe estar en estado de inserción usando

Código Delphi [-]
SetDetalle.Insert;

Para chequear el estado de SetDetalle utilice

Código Delphi [-]
if (SetDetalle.Status = dsInsert) then
begin
 SetDetalle.Post; 
end;

Pruébelo y cuéntenos como le fue ...
________________________________________
Con colaboración podemos lograr cosas grandes.
Responder Con Cita
  #3  
Antiguo 11-07-2007
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Maestro-Detalle.....a detalle

Gracias....por su apoyo y comentarios.....y efectivamente estuve probando lo q me comento, desafortunadamente todavia existen algunas dudas al respecto, intentare nuevamente explicar lo que quiero hacer.

Para lo anterior envio adjunto a este correo una imagen (.ZIP) de la pantalla que estoy realizando. Esta pantalla muestra datos del tabla Maestra como datos de la tabla de detalles. En la parte de arriba tengo "Numero Consecutivo", el cual al teclear un numero valido, el programa debe validar si el registro existe en la tabla maestra y si encuentra el registro, debe visualizar los registros que existan en la tabla de detalles correspondientes al numero consecutivo de la tabla maestra.

En caso de NO encontrar el registro en la tabla maestra, entonces el sistema debe permitir agregar registros tanto al maestro como al detalle, es aqui donde estoy atorado.....COMO LE HAGO PARA QUE EL USUARIO pueda anexar tantos registros como "servicios" quiere el cliente (servicios de una lavanderia) y q esta misma pantalla me sirva para modificar los datos tanto como del maestro como del detalle en caso de haber modificaciones posteriormente.

En la parte de "Registros de Servicios y Prendas", es la parte donde registrare los detalles o servicios del cliente.

Ej. si el número consecutivo no existe en la base datos, que me permita anexar un registro al maestro y luego al detalle....pero esto lo quiero hacer al mismo tiempo, q en cuanto haga el primer registro en el detalle, q grabe al maestro y luego al detalle (si sucede lo contrario marcara error de integridad) -espero q no suene cantinflesco- En la pantalla todavia no anexo botones para grabar o modicar.....y que posteriormente me siga agregando registros a la tabla de detalle.

Espero que lo que estoy tratando de hacer no sea tan complicado.....talvez la explicacion que me den pueda ser muy extensa.....

Bueno espero su comentario y sugerencias, ya q estoy abierto a cualquier cosa q me pueda ayudar a resolver esta bronca....de hecho si la manera de como lo quiero hacer cambias radicalmente, no hay problema.

Si tiene MSN agregeme por favor, en realidad estoy interesaro en terminar esta parte del sistema (namorb@hotmai.com)

....................Saludos...!

Román.
Archivos Adjuntos
Tipo de Archivo: zip Imagen1.zip (11,5 KB, 1843 visitas)
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #4  
Antiguo 22-07-2007
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Gracias....me sirvieron mucho sus comentarios...lo aplique y todo perfercto.

GRACIAS A TODOS
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema tabla Maestro-detalle en la q la pk de t.detalle formad por 2cods de la maes akinom38 Varios 1 09-11-2007 19:27:44
Respecto a la relacion maestro detalle detalle ilichhernandez Conexión con bases de datos 0 15-05-2007 18:13:54
Numerar el detalle Maestro / detalle en secuencia josejose SQL 5 10-02-2007 00:27:38
Reporte Maestro/Detalle/Detalle de 4 Tablas jovehe Impresión 2 23-03-2005 01:25:02
Maestro-Detalle ;Actualizar detalle a partir de un DBgrid norberto_larios Conexión con bases de datos 1 11-09-2004 18:17:34


La franja horaria es GMT +2. Ahora son las 07:18:56.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi