Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-04-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Problemas con QReport en OnNeedData

Hola

Tengo un problemilla que me ha estado pasando con el QReport al tratar de imprimir los datos que poseeo en un StringGrid...(Delphi 7)

puse el sgte codigo en la columna del OnNeedData...del QReport

Código Delphi [-]
    if ItemIndex < Abonos.Asientos.RowCount then
    begin
         sFil_1.Caption := Abonos.Asientos.Cells[0, ItemIndex];
         sFil_2.Caption := Abonos.Asientos.Cells[1, ItemIndex];
         sFil_3.Caption := Abonos.Asientos.Cells[2, ItemIndex];
         sFil_4.Caption := Abonos.Asientos.Cells[3, ItemIndex];
         sFil_5.Caption := Abonos.Asientos.Cells[4, ItemIndex];
         sFil_6.Caption := Abonos.Asientos.Cells[5, ItemIndex];
         sFil_7.Caption := Abonos.Asientos.Cells[6, ItemIndex];
         sFil_8.Caption := Abonos.Asientos.Cells[7, ItemIndex];
    end;
    Inc(ItemIndex);
    MoreData := ItemIndex <= Abonos.Asientos.RowCount;

tambien digo que tengo declarado esto
Código Delphi [-]
 
  ItemIndex : Integer;

Vamos al Problema

Si bien el contenido del StringGrid cuando presione Imprimir lo realiza super bien... si despues cambio el contenido del StringGrid y presiono Imprimir nuevamente.. (sin salir del sistema)... me muestra el informe pero sin datos ???

Por que puede pasar esto ???

será que tengo que destruir el QReport y volver a crearlo ??? si es así.. como lo debo realizar ???

Salu2
__________________
BlueSteel
Responder Con Cita
  #2  
Antiguo 02-04-2008
Avatar de Nati1
Nati1 Nati1 is offline
Miembro
 
Registrado: nov 2007
Posts: 24
Poder: 0
Nati1 Va por buen camino
Crear y destruir QReport.
Código Delphi [-]
 begin
      try
         QReport1:= TQReport1.Create(self);
         QReport1.Preview; // o Print
      finally
         QReport1.Free;
      end;
Responder Con Cita
  #3  
Antiguo 03-04-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Cita:
Empezado por Nati1 Ver Mensaje
Crear y destruir QReport.

Código Delphi [-]
begin
try
QReport1:= TQReport1.Create(self);
QReport1.Preview; // o Print
finally
QReport1.Free;
end;

que raro.. pero esto no funciona...

lo otro... despues de imprimir los datos.. se me borran todos los datos que tengo en el StringGrid...

se que puede ser que en el evento onactivate del Form...tengo un proceso limpiar, pero no he salido del form.. solo he realizado la sentencia

Código Delphi [-]
 Form13.Reporte.Print;


Salu2
__________________
BlueSteel
Responder Con Cita
  #4  
Antiguo 03-04-2008
Avatar de Nati1
Nati1 Nati1 is offline
Miembro
 
Registrado: nov 2007
Posts: 24
Poder: 0
Nati1 Va por buen camino
¿No cabe la posibilidad de que le evento OnNeedData no sea el adecuado?.
Probando con el evento BeforePrint debería de enviar la información antes de imprimirla.
Tambien se podría hacer este proceso fuera del QReport, asi se controlaría mejor la adquisición de datos.
Responder Con Cita
  #5  
Antiguo 03-04-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
a ver creo que ya sabemos del problema, el evento onactivate segun tengo entendido se ejecuta a lo que el formulario pierde el foco y vuelve a entrar, prueba colocando ese codigo en el onshow.

Otra cosa a manera de consejo, me parece mas practico utilizar una tabla de memoria en lugar de llenar los datos de manera manual.
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #6  
Antiguo 03-04-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Smile Tanks

Cita:
Empezado por eduarcol Ver Mensaje
a ver creo que ya sabemos del problema, el evento onactivate segun tengo entendido se ejecuta a lo que el formulario pierde el foco y vuelve a entrar, prueba colocando ese codigo en el onshow.
Tanks...

Gracias por lo del OnShow... no lo sabia...

me parece que tengo casi arreglado el problema del Reporte... según yo.. estoy usando un contador...que es ItemIndex .... lo que estoy haciendo en el evento BeforePrint del Reporte... lo estoy dejando en 0... al parecer se ha solucionado....

lo otro.. como se realizaria esto ???
Cita:
Otra cosa a manera de consejo, me parece mas practico utilizar una tabla de memoria en lugar de llenar los datos de manera manual
__________________
BlueSteel
Responder Con Cita
  #7  
Antiguo 03-04-2008
Avatar de Nati1
Nati1 Nati1 is offline
Miembro
 
Registrado: nov 2007
Posts: 24
Poder: 0
Nati1 Va por buen camino
Se dice que se hace esto:
Cita:
Form13.Reporte.Print;
¿Sera correcto hacer esto en el evento OnShow?
¿No sera mas correcto el evento BeforePrint?
Si se hiciera esto:
Cita:
Form13.Reporte.Preview;
Tal vez seria un poco mas lógico ya que se espera a que se muestre.
Responder Con Cita
  #8  
Antiguo 03-04-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Nati1, el problema del borrado de los datos del StringGrid era el evento OnActivate del formulario ya que una vez que mostraba el reporte al cerrarlo se volvia a activar dicho evento (OnActivate) y al tener un procedimiento de limpiar, borraba los datos que tenia el StringGrid.

Eduarcol, puedes explicarnos sobre la tabla en memoria por favor.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #9  
Antiguo 03-04-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Cita:
Empezado por Caro Ver Mensaje
Nati1, el problema del borrado de los datos del StringGrid era el evento OnActivate del formulario ya que una vez que mostraba el reporte al cerrarlo se volvia a activar dicho evento (OnActivate) y al tener un procedimiento de limpiar, borraba los datos que tenia el StringGrid.

Eduarcol, puedes explicarnos sobre la tabla en memoria por favor.

Saluditos
Hola Caro,
Como resistirme a tan dulce pedido

A ver ahora si en serio, una tabla de memoria es un dataset que no necesita estar vinculado a ningun origen de datos, y funciona como si fuera un dataset normal, de esta manera puedes utilizar un dbgrid asociado a este componente y alli tendrias los registros que deseas imprimir. En el reporte solo asocias los campos a este dataset y listo no tienes que programar nada.

Estos componentes hay varios, ClientDataset, TKBMemTable, TRxMemoryTable... yo utilizo el TKBMmemtable porque en el paquete solo viene el y no tengo que llenar la pestaña de cosas que no necesito, y el clientdataset no lo he utilizado porq tengo mis recelos respecto a ciertos comentarios que he leido en otros hilos...
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #10  
Antiguo 03-04-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Muchas gracias por responder Eduardo, una pregunta mas cuales son los recelos que tienes con el ClientDataSet, existe algún problema al utilizar dicho componente.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #11  
Antiguo 03-04-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
En parte he leido que hay que redistribuir la libreira midas, y que cuando se trata de grandes cantidades comienza a dar problemas de rendimiento, pero como te digo eso lo lei no lo comprobe
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #12  
Antiguo 03-04-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
ok, gracias nuevamente .

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #13  
Antiguo 03-04-2008
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
Bueno, en mi caso nunca he tenido problemas al tratar información con el ClientDataSet como si se tratara de un RxMemoryTable, de hecho me parece ventajoso el que no tenga que instalar componentes de terceros para hacer este tipo de cosas.

Es mas, como estaba acostumbrado a usar el metodo LoadFromDataSet del RxMemoryTable para subir los datos de un Query, pues use las caracteristicas del class helper, para hacer del TClientDataSet algo mas parecido.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #14  
Antiguo 03-04-2008
keyboy keyboy is offline
Miembro
 
Registrado: oct 2004
Posts: 367
Poder: 20
keyboy Va por buen camino
Cita:
Empezado por jhonny Ver Mensaje
pues use las caracteristicas del class helper, para hacer del TClientDataSet algo mas parecido.
¿Qué es el class helper?

Bye
Responder Con Cita
  #15  
Antiguo 03-04-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por keyboy Ver Mensaje
¿Qué es el class helper?

Bye
Hola keyboy

Mira este articulo

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #16  
Antiguo 03-04-2008
keyboy keyboy is offline
Miembro
 
Registrado: oct 2004
Posts: 367
Poder: 20
keyboy Va por buen camino
¡Oh! ¡Vaya! Creo que debo salir de debajo de mi piedra Si no fuera por las horas que tarda en abrir el D2007...

Gracias por la información.

(records con métodos )

Bye
Responder Con Cita
  #17  
Antiguo 03-04-2008
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por keyboy Ver Mensaje
¡Oh! ¡Vaya! Creo que debo salir de debajo de mi piedra Si no fuera por las horas que tarda en abrir el D2007...

Gracias por la información.

(records con métodos )

Bye
Si, D2007 tiene cosas nuevas muy interesantes, por otro lado... trabajo en una maquina Pentium 4 3.GHz, un 1 GB RAM y no se demora en abrir el IDE, en D2006 si era una eternidad, pero en D2007 todo eso mejoro.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
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
Problemas con Qreport ramonibk Varios 2 07-12-2004 14:05:24
Problemas con Qreport 3.0.3 y W XP serrusho Impresión 5 16-11-2004 22:58:11
Problemas con Qreport davidgaldo Impresión 1 30-04-2004 07:07:14
[B]Problemas con QREPORT[/B] josejuanm Impresión 0 03-11-2003 15:48:50


La franja horaria es GMT +2. Ahora son las 19:36:30.


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