ivantj
19-09-2012, 05:20:40
Hola que tal comunidad, queria exponer un problema que tengo con la impresion usando TPrinter, necesito imprimir los datos que me traigo de una consulta, lo cual si se hace, y usando el un while puedo imprimir varias lineas y logro imprimir todos los datos, el problema que tengo es que
las lineas de datos son variables, puedes ser 2, 3 o hasta 100 lineas por lo cual ocupo que al final de la hoja, imprima en otra y que en el pie de la pagina me muestre datos para que firmen, pero no se como contabilizar o hacer para que imprimir ciertas lineas y despues de un numero X de lineas, me ponga los datos para que firmen y continue en una segunda pagina, o tercera dependiendo la cantidad de registros, esa es mi duda.
Encontre un codigo dentro del foro y ya hice algunas pruebas pero no me sale, simple y sencillamente no he podido llenar con un for o while las lineas que me hacen falta para despues deplegar los datos en donde firmen :( no se si alguien haya tenido el mismo problema que me pueda ayudar, por que la verdad si lo ocupo, o si alguien me pudiera dar una idea, gracias
procedure TfrmImprimirCheque.Button1Click(Sender: TObject);
var
r: TRect;
i: Integer;
begin
with Printer do
begin
r := Rect(200,200,(Pagewidth - 200),(PageHeight - 200));
BeginDoc;
Canvas.Brush.Style := bsClear;
for i := 0 to Memo1.Lines.Count do
Canvas.TextOut(200,200 + (i *
Canvas.TextHeight(Memo1.Lines.Strings[i])),
Memo1.Lines.Strings[i]);
Canvas.Brush.Color := clBlack;
Canvas.FrameRect(r);
EndDoc;
end;
end;
Este es el codigo con el que imprimo las lineas, pero no entiendo como apartir de un cierto numero de lineas, imprima los datos para que firmen y al final de la hoja, continue en otra nueva :(, de antemano gracias por la ayuda.
las lineas de datos son variables, puedes ser 2, 3 o hasta 100 lineas por lo cual ocupo que al final de la hoja, imprima en otra y que en el pie de la pagina me muestre datos para que firmen, pero no se como contabilizar o hacer para que imprimir ciertas lineas y despues de un numero X de lineas, me ponga los datos para que firmen y continue en una segunda pagina, o tercera dependiendo la cantidad de registros, esa es mi duda.
Encontre un codigo dentro del foro y ya hice algunas pruebas pero no me sale, simple y sencillamente no he podido llenar con un for o while las lineas que me hacen falta para despues deplegar los datos en donde firmen :( no se si alguien haya tenido el mismo problema que me pueda ayudar, por que la verdad si lo ocupo, o si alguien me pudiera dar una idea, gracias
procedure TfrmImprimirCheque.Button1Click(Sender: TObject);
var
r: TRect;
i: Integer;
begin
with Printer do
begin
r := Rect(200,200,(Pagewidth - 200),(PageHeight - 200));
BeginDoc;
Canvas.Brush.Style := bsClear;
for i := 0 to Memo1.Lines.Count do
Canvas.TextOut(200,200 + (i *
Canvas.TextHeight(Memo1.Lines.Strings[i])),
Memo1.Lines.Strings[i]);
Canvas.Brush.Color := clBlack;
Canvas.FrameRect(r);
EndDoc;
end;
end;
Este es el codigo con el que imprimo las lineas, pero no entiendo como apartir de un cierto numero de lineas, imprima los datos para que firmen y al final de la hoja, continue en otra nueva :(, de antemano gracias por la ayuda.