Hallo,
zuerst einmal zur Veranschaulichung mein Source:
Delphi-Quellcode:
begin
Lines := 900;
table3.First;
printer.BeginDoc;
printer.Title:='Ausdruck von My- Bank';
printer.Canvas.Font.Name:='Times New Roman';
printer.Canvas.Font.Size:=18;
printer.Canvas.Font.Style:=[fsunderline,fsbold];
printer.canvas.TextOut(1750,200,'Auszahlungen');
printer.Canvas.Font.Style:=[];
printer.Canvas.Font.Size:=14;
printer.Canvas.TextOut(350,500,'Ausdruck vom : '+datetostr(now));
end;
repeat
while not table3.Eof do
begin
druck1:='Kreditinstitut: '+dbtext5.Caption;
druck2:='Ort: '+dbtext6.caption;
druck3:='Betrag: '+dbtext7.Caption+' €';
druck4:='Verwendungszweck: '+dbtext8.Caption;
druck5:='Datum: '+dbtext9.Caption;
anzahldb:=table3.RecordCount;
activedb:=table3.RecNo;
table3.Next;
printer.Canvas.Font.Size:=14;
printer.Canvas.Font.Style:=[fsunderline];
printer.Canvas.TextOut(350,lines-150,'Datensatz '+inttostr(activedb)+' von '+inttostr(anzahldb));
printer.Canvas.Font.Style:=[];
printer.Canvas.Font.size:=12;
printer.Canvas.TextOut(350,lines,druck1);
printer.Canvas.TextOut(350,lines+150,druck2);
printer.Canvas.TextOut(350,lines+300,druck3);
printer.Canvas.TextOut(350,lines+450,druck4);
printer.Canvas.TextOut(350,lines+600,druck5);
end;
until
(table3.RecNo=anzahldb);
printer.EndDoc;
lines:=lines+1000;
if lines>6000 then
begin;
printer.NewPage;
lines:=200;
end;
Die bisherige Durckfunktion läuft eigentlich ganz gut. Das einzige Problem was ich habe ist, dass ich nur eine Seite ausdrucken kann. Ich möchte aber pro Seite nur 5 Datensätze haben, d.h. wenn eine bestimmte Line erreicht ist soll eine neue Seite gezogen werden und dort weitergedruckt werden. Ich hoffe mein Problem ist einigermaßen verständlich geschildert
Und noch eine Frage am Rande: Wie kann ich dem Dokument einen Dokumentnamen zuordnen, welcher in der Druckerwarteschlange angezeigt wird?
Vielen Dank
Jannik