Delphi - Cuando selecione una venta en el dbgrid, me muestre sus respectivos detalles de venta

 
Vista:
sin imagen de perfil

Cuando selecione una venta en el dbgrid, me muestre sus respectivos detalles de venta

Publicado por Belen (33 intervenciones) el 13/07/2016 10:02:15
hola Buenas noches, Estoy trabajando con un listado de ventas el cual esta desarrollado en delphi 2010 y mysql-5. El cual cuenta con un formulario principal y un formulario secundario que es el "listado de ventas" en este se encuentra 2 dbgrid uno para el "detalle de ventas", el otro para las "ventas"
los cuales cada uno se encuentran asociado a un TzQuery de los componentes Zeos. La idea es cuando yo selecione una venta en el dbgrid "Ventas" me muestre sus respectivos detalles de venta. Para ello en los TzQuery en la propiedad MasterSourcer y MasterFields de cada TzQuery los tengo relacionado a sus data source y a su clave foranea. es decir

Query de ventas
MasterSourcer: dsDetalleVenta// este seria el datasource del detalle
MasterFields : idventa

Query de Detalle de ventas
MasterSourcer: dsVenta // este seria el datasource del la venta
MasterFields : idventa

Bien al formulario lo llamo de la siguiente forma:

1
2
3
4
5
6
procedure TfPrincipal.Listado5Click(Sender: TObject);
begin
  fmodulo.qVentas.Active:=true;
  fmodulo.qdetalle.Active:=true;
  tfListadosVentas.Create(self).ShowModal;
end;

y es aqui que me sale el siguiente error "project drugstore.exe raised exception class EStackOverflow with message 'Stack overflow' usando el depurador me marca error en la siguiente linea


1
tfListadosVentas.Create(self).ShowModal;

dejo las consulta sql de cada query:
Query venta:

Código SQL
SELECT
`venta`.`idventa`,
`venta`.`totalventa`,
`venta`.`estadoventa`,
`venta`.`idcliente`,
`venta`.`fechavent`,
`venta`.`horavent`

FROM
`venta`
INNER JOIN clientes on (clientes.idcliente=venta.idcliente)

Query Detalle

Código SQL
SELECT
`detalle_venta`.`idventa`,
`detalle_venta`.`idproducto`,
`detalle_venta`.`cantidad_venta`,
`detalle_venta`.`precio_venta`,
`detalle_venta`.`estado_detalleventa`
FROM
`detalle_venta`
INNER JOIN producto on (producto.idproducto=detalle_venta.idproducto)



y luego procede a mostrarme la siguiente pantalla

http://www.subirimagenes.com/otros-mostrar-9622249.html
espero que puedan ayudarme desde ya muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

Cuando selecione una venta en el dbgrid, me muestre sus respectivos detalles de venta

Publicado por E.T. (1244 intervenciones) el 16/07/2016 20:45:34
Creo que tu enlaze master-detail está mal. Sólo tu zquery detalle debe llevar las propiedades mastersource y materfields, y creo que ademas te faltaría ya sea linkedfields o indexfieldnames,

Mastersource, como ya lo tienes, sería tu query de venta
masterfields, serían los campos de enlaze de tu tabla maestra, en este caso ventas con su campo idventa
y linkedfields o indexfieldnames, vas a tener que probar porque no recuerdo cual es, en esta propiedad irian los campos de enlaze de tu tabla detalle, en este caso detalle_venta, con el campo idventa

Todas esas propiedades las llenas en el query de detalle de venta, y en tu query venta, quedarían vacias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cuando selecione una venta en el dbgrid, me muestre sus respectivos detalles de venta

Publicado por Belen (33 intervenciones) el 18/07/2016 02:01:15
Hola muchas gracias me faltaba poner el "linkedfields " ya anda perfecto muchas gracias :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar