Autor Beitrag
thorstenf01
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 60

Win XP
D5 enterprise
BeitragVerfasst: So 14.03.04 23:55 
Hallo,
seit Stunden versuche ich das folgende Problem zu lösen:
mit dem folgendem code kann ich Datensätze ausdrucken, was funktioniert.
Es sollen allerdings noch eine Listbox1 und eine Listbox2 mit in den Ausdruck
eingebunden werden. Die Ausgabe soll wie folgt aufgebaut sein:
erst die Datensätze, dann der Inhalt von Listbox1 und schließlich der Inhalt von Listbox2.
Weiß jemand weiter, oder ist dies gar nicht möglich?

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
procedure TForm3.Button2Click(Sender: TObject);
var Datei : TextFile;
    Nr: integer;    
begin
 if PrintDialog1.Execute then begin
   //Druckereinstellung
   Printer.BeginDoc;
   outDC := printer.canvas.Handle;
   SetMapMode(OutDC,mm_lometric);
   GetWindowExtEx(OutDC,w);
   GetViewportExtEx(OutDC,v);
   SetMapMode(OutDC,MM_Anisotropic);
   SetWindowExtEx(OutDC,w.cx,w.cy,nil);
   SetViewportExtEx(OutDC,v.cx,-v.cy,nil);
   with printer.canvas do begin

    Datensatz[1] :=IntToStr(Projekt);
    Datensatz[2] :=IntToStr(WKA);
    Datensatz[3] :=IntToStr(IP);
    Datensatz[4] := Aktz;
    Datensatz[5] := Datum;
    If HWKA = 0 then Datensatz[6] := '------' else
    Datensatz[6] := FloatToStr(HWKA);
    If HIP = 0 then Datensatz[7] := '------' else
    Datensatz[7] := FloatToStr(HIP);
    If RWKA = 0 then Datensatz[8] := '------' else
    Datensatz[8] := FloatToStr(RWKA);
    If RIP = 0 then Datensatz[9] := '------' else
    Datensatz[9] := FloatToStr(RIP);
    Datensatz[10] := FloatToStrF(rik,ffNumber, 8,1);
    
    Pen.Color := clBlack;
    font.Name:='Arial';
    font.Height:=45;
    TextOut(250,490,'Aktenvermerk:');    Tex := Datensatz[4];
    TextOut(560,490,Tex);
    TextOut(1110,490,'Datum:');          Tex := Datensatz[5];
    TextOut(1260,490,Tex);
    TextOut(250,540,'Projekt Nr. :');    Tex := Datensatz[1];
    TextOut(490,540,Tex);
    TextOut(250,730,'WKA');
    TextOut(1110,730,'IP');
    TextOut(250,800,'Nr.:');       Tex := Datensatz[2];
    TextOut(340,800,Tex);
    TextOut(1110,800,'Nr.:');      Tex := Datensatz[3];
    TextOut(1200,800,Tex);
    TextOut(250,850,'Hochwert:');   Tex := Datensatz[6]+' m';
    TextOut(460,850,Tex);
    TextOut(1110,850,'Hochwert:');     Tex := Datensatz[7]+' m';
    TextOut(1320,850,Tex);
    TextOut(250,900,'Rechtswert:');    Tex := Datensatz[8]+' m';
    TextOut(500,900,Tex);
    TextOut(1110,900,'Rechtswert:');     Tex:= Datensatz[9]+' m';
    TextOut(1350,900,Tex);
    TextOut(250,1370,'Entfernung zur WEA:'); Tex := Datensatz[10]+' m';
    TextOut(650,1370,Tex);
    
   end;
    Printer.EndDoc;
 end;

end;


Danke im voraus
gruß
Thorsten

Moderiert von user profile iconPeter Lustig: Code- durch Delphi-Tags ersetzt
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 15.03.04 06:52 
Klar geht das, du musst nur do wo die Listen ausgedruckt werden sollen, die Listen in einer Schleife durchgehen und deren Inhalt zu Papier bringen.

What's the problem?
thorstenf01 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 60

Win XP
D5 enterprise
BeitragVerfasst: Mo 15.03.04 09:12 
Hallo Luckie,
das stimmt mich optimistisch, das es möglich ist, aber wie sieht die Schleife denn aus, in der die Listbox durchgeht.
Gruß
Thorsten
MaxiTB
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 679

Win2000, WinXp, Workbench ;-)
D7 Ent, VS2003 Arch.
BeitragVerfasst: Mo 15.03.04 09:20 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
var
 lListBox: TListBox;
begin
 for lIndex:=0 to lListBox.Count-1 do
  TextOut(10,lIndex*20,lListBox.Items[lIndex];
end;


Wobei ich sagen muß: Luckie hat schon recht - wo ist das Problem :wink: ?
Die Listbox hat ein Items property wo alle Einträge gespeichert sind.

_________________
Euer Mäxchen
Wer früher stirbt, ist länger tot.
thorstenf01 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 60

Win XP
D5 enterprise
BeitragVerfasst: Mo 15.03.04 19:30 
Hallo,
die Schleife funktioniert, einziges Problem ist nur noch, dass nur die erste Seite gedruckt wird, obwohl mehrere Seiten gedruckt werden müssten.
Woran kann das liegen?
Gruß
Thorsten
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 15.03.04 19:41 
Du fängst ja auch niergens eine neue Seite an.
thorstenf01 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 60

Win XP
D5 enterprise
BeitragVerfasst: Di 16.03.04 10:49 
Hallo noch einmal,
ich habe das Problem behoben:
ausblenden Quelltext
1:
Printer.NewPage;					

Gruß
Thorsten