PDA

Ver la Versión Completa : pagina x/y sin prepare con previewmodal ??


amadis
28-04-2007, 17:09:43
PAGINA X/Y en QUICKREPORT:

Es posible cargar el numero total de PAGINAS de un reporte sin hacer un PREPARE ya que estoy usando un preview y al hacer un prepare y un preview estoy haciendo 2 eventos iguales que consumen tiempo de proceso y me recorren la BD completa, además es más rapido un PREVIEWMODAL maximizado que un prepare.

He tratado de acceder a las propiedades de QRPrinter lastpage o pagecount desde el reporte pero estan en 0.

¿alguna idea o sugerencia?

Muchas gracias

amadis
02-05-2007, 07:32:56
No hay otra forma de obtener el total de paginas de un reporte desde el PREVIEW, sin tenes que hacer un PREPARE ANTES para obtener el pagecount de QRprinter?

:confused:

maxibaco
05-10-2007, 16:45:16
Amadis, Pudiste resolver esto?? Porque tengo el mismo problema! Gracias!

jhlsys
05-10-2007, 19:17:27
Tuve un problema parecido, y obviamente, al hacer un previevmodal, se recorre toda la data. y esto demora y consume tiempo en mostrar las paginas.

Sin embargo para acelerar un poco te sugiero que antes de mostrar la pagina y despues de haber hecho tu consulta o filtro desabilites los controles ligados de tu dataset al reporte y veras como se acelera:
//modo tabla
Table1.open;
Table1.disablecontrols;
RptDatos.previewmodal;
Table1.enablecontrols;

//modo Query
Query1.open;
Query1.disablecontrols;
RptDatos.previewmodal;
Query.enablecontrols;

Hal hacer esto, ya sea en una consulta de datos tipo table o Query con SQL, veras que la vista previa se acelera. espero que haber podido ayudarte.

maxibaco
05-10-2007, 19:29:27
Mil gracias por la sugerencia!!
Ahora te hago dos consultas:

1) Se puede hacer lo mismo si no hago un preview modal?? ya que abro la query y muestro el preview pero no en forma modal..
Pensandolo.. posiblemente tu respuesta sera si se puede seguir tocando esa query mientras esta el reporte abierto.. y la respuesta es si.. ya que son dos formularios distintos y usan la misma query!("Posible solucion: Puedo hacer una query solo para el informe, y que el solo pueda acceder?")

2) Sabes como hacer para que el informe me diga pagina 1/5, donde 5 es el total de paginas!! Porque tengo el problema de que sin son 5 pag. me dice 1/1, 2/2, 3/3, 4/4, 5/5!!! Te muestro como tengo el informe:

en el Page Footer tengo: un QRLAbel que dice Pagina, luego tengo un QRSysData que me dice el Numero de pagina actual "PageNumber" automaticamente y otro QRLabel que seria el del total de paginas, que en el evento on print hago lo siguiente:

procedure TFAuditoria.QRLabel9Print(sender: TObject; var Value: String);
begin
Value:= IntToStr(FPreview.QRPreview.QRPrinter.PageNumber);
end;

Pero me da el resultado indicado lineas atras!!!

Gracias por la ayuda de antemano!!

SAludos!

PD: Me gusta que en la pregunta 1 hice todo.. pregunta respuesta y posible solucion!! jajaja Este delphi ya me tiene loco!!!