PDA

Ver la Versión Completa : configurar pagina en tiempo de ejecucion


Phacko
21-03-2007, 02:19:42
Que tal, como los trata la vida??????

De nuevo por acá, tengo un pequeño problema con reportes, ya he diseñado el reporte de un punto de venta, por el momento lo estoy trabajando para preview, todo trabaja bien, datos, expresiones,..., pero el inconveniente es que como se trata de nota de venta hecha en impresora para royo de papel, no se tiene un tamaño definido de hojaen cuanto a longitud respecta. Trate de dimencionar la longitud antes de mandar llamar la vista previa de la siguiente forma:

FReporte.QuickRep1.Page.Length:=(370+NumRegs*20);
FReporte.QuickRep1.Prepare;
FReporte.QuickRep1.Preview;

Donde NumRegs es el numero de registros a imprimir y 370 es la medida del resto de bandas, aun con esto al hacer el preview, la página se presenta con el tamaño que tiene por default ( en este caso 279 mm), esto lo hice desde la form de donde mando llamar al reporte y en la misma forma donde he puesto el reporte y da lo mismo. Esto en Delphi y su correspondiente QReport.
Si alguien me puede orientar se lo voy a agradecer.
Gracias a todos, un saludo.

Buena noche por allá, buena tarde por acá.

egostar
21-03-2007, 02:49:08
Veo dos problemas.

1. Siempre te dará 279 mm porque tienes asignado el tamaño de pagina como Letter, cambia Page.PaperSize a Custom, eso te permitirá modificar el valor del Page.Length.

2. No estoy muy seguro pero así como lo estas haciendo no creo que te de el valor correcto en el Page.Length, yo haría algo como esto


Y := Canvas.TextHeight('Yy');
ShowMessage(FloattoStr(Y));
QuickRep1.Page.Length := Y * Numero_de_Registros;
ShowMessage(FloattoStr(QuickRep1.Page.Length));


Trata con eso y nos dices como resultó.

Salud OS.

Phacko
21-03-2007, 04:07:21
Gracias por tu pronta respuesta, hice lo que me sugeriste, pero sigue lo mismo.He visto la preview desde la opción del QReport y la da correctamente con las medidas que le habia asignado anteriormente, pero al momento de ejecutar el programa da la longitud muy desproporcionada aunque tenga la medida de longitud muy corta.

Si tienes alguna idea te la voy a agradecer.

Sigo buscando que es lo que pueda suceder.

Gracias.

egostar
21-03-2007, 17:32:50
Deberias de poder configurar la impresora con el mismo tamaño de página, esto pudiera ser con Printer.PageHeight usando la unidad Printers, creo que eso resuelve el problema.

Salud OS.

Phacko
22-03-2007, 20:02:30
Primero que nada, ja ja ja la gracia del juego de palabras. Gracias por tu ayuda Egostar y a los que tuvieron a bien leer este hilo, pues bien, ésta es para comunicar que el problema no era tal, la solución era lo "lógico" en vez de emplear el tamaño de la letra habia que utilizar el tamaño de la banda para multiplicarlo por el número de registros a imprimir.

Nuevamente gracias y que siga la fiesta.

Buenas noches por allá buen día por acá.