Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Selecionar registro de una dbgrid para hacer un reporte en quickreport (https://www.clubdelphi.com/foros/showthread.php?t=81806)

mayito84 20-12-2012 02:03:59

Selecionar registro de una dbgrid para hacer un reporte en quickreport
 
Hola. saludos a todos, antes que anda me disculpo y me excuso por mi ignoracia, pues tiene un par de años que conozco delphi nunca he recibido una instruccion formal, sino simplemente lo que he aprendido de por aquí y por alla.
bueno pasado a mi situacion:
Tengo un proyecto con 4 forms, en el el segundo form hice una ventana donde se guardan registros en la BD, la base la tengo hecha en access y la tengo conectada con un componente adoconecction, tambien en la form2 tengo un componente adotable y un dataset para ligarlo a los dbedits tengo un boton personalizado de guardado y uno que me permite ir al preview de la form3 que es un quickreport y puedo ver bien todos los datos del registro que tengo abierto actualmente, hasta ahi todo bien.
Ahora en en la form4 tengo una ventana de consulta donde tengo 3 edits, un dbgrid y un componente TADOQuery conectado al adoconnection de la form2, en los edits en la propiedad de change tengo puesto que me hagan una consulta de lo que vayan escribiendo + % y si hasta ahi todo bien, el detalle es que yo quiero implementar ahi otro boton que me permita tomar la linea que estoy seleccionando en el dbgrid y me permita hacerla algo asi como el registro activo, y al ir al preview del quickreport pueda imprimir los datos actualesy sinceramente no tengo idea de como hacerlo, yo pensaba que al seleccionar la linea correspondiente en el dbgrid se hacia automaticamente como lo activa o algo asi pero al parecer no, bueno de antemano agradezco la atencion si leyeron todo esto y espero alguien me pueda echar la mano con alguna idea o consejo, muchas gracias.
PD: añado el proyecto por si alguien le quiere echar una ojeada, namas no se rian XD
h ttp://w ww.mediafire.com/?ag33codxa2yqt97

ecfisa 20-12-2012 03:41:55

Hola mayito84, bienvenido a Club Delphi.:)

Según entiendo llamas a la vista preliminar desde Form2, que incluye a Form4 y a su vez es incluido por él (referencia circular).

El ADOTable de Form2 no está enterado del registro seleccionado en el DBGrid (Form4) ya que este esta esta conectada a un ADOQuery. Y dado
que los elementos del TQuickRep estan relacionados con el ADOTable, logicamente no muestra lo seleccionado en el DBGrid.

¿ Voy bién encaminado ? Si es así, como Form4 incluye a Form2, sencillamente podes hacer:
Código Delphi [-]
procedure TForm4.btnPasarADOTableClick(Sender: TObject);
begin
  Form2.tu_ADOTable.Locate('TU_CAMPO', tu_ADOQuery.FieldByName('TU_CAMPO').AsString, []);

  // Close;                  { retorna a Form2 para llamar al preview }
  // O tambien:
  // Form3.QuickRep.preview; { llama al preview directamente }
end;
Luego, regresar a Form2 y llamar al preview o, si Form4 también incluye a Form3, llamar al método preview directamente.

Saludos. :)

mayito84 20-12-2012 17:33:23

Gracias
 
Pues antes que nada agradesco por el tiempo prestado, y pues tratare de hacer lo que comentas haber si obtengo el resultado esperado, gracias, en cuanto trate lo posteare por aqui XD


La franja horaria es GMT +2. Ahora son las 02:33:48.

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