Autor Beitrag
Fredy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 57

Win Vista Ultimate

BeitragVerfasst: Di 14.04.09 15:36 
Hallo liebe Community,

Ich hab mich mal ans drucken gewagt. (mein erster Versuch, ich denke das noch vieles durcheinander geworfen wurde)

So wie ich es jetzt aufgebaut habe, funktioniert es nicht ganz Richtig.

Er druckt mir nur die letzte Zeile aus die ich gespeichert habe.

Mein Druck-Button sieht so aus:

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:
procedure TfrmMTabelle.btnDruckClick(Sender: TObject);
var
    Hoehe, ZlDiff, Zl, SpDiff, Sp: WORD;
    i : integer;
begin

  for i := 0 to high(MitarbeiterArray) do
      begin
      Mitarbeiter := IntToStr(MitarbeiterArray[i].datMNr);
      Nachname := MitarbeiterArray[i].datNachname;
      Vorname := MitarbeiterArray[i].datVorname;
      Abteilung :=IntToStr(MitarbeiterArray[i].datAbteilung);
      Lohn := FloattoStr(MitarbeiterArray[i].datGehalt);
      Land := MitarbeiterArray[i].datLand;
      PLZ := IntToStr(MitarbeiterArray[i].datPLZ);
      Ort := MitarbeiterArray[i].datORT;
  end; // von for
  
      
  // Druckbefehl
    if PrintDetails.Execute
      then
        begin
          Printer.Orientation:=poLandscape;
          Printer.BeginDoc;
          Hoehe := Printer.PageHeight;
          ZlDiff := Hoehe DIV 65;
          with Printer.canvas do
              begin
                SpDiff :=TextWidth('n');
                Zl := 3*ZlDiff;
                Sp := 8*SpDiff;
                TextOut (Sp,Zl,'MNr');
                TextOut (Sp+23*SpDiff,Zl,'Name');
                TextOut (Sp+46*SpDiff,Zl,'Abteilung');
                TextOut (Sp+70*SpDiff,Zl,'Gehalt');
                TextOut (Sp+90*SpDiff,Zl,'Land PLZ Ort');
                inc(Zl,ZlDiff);
                inc(Zl,ZlDiff);
                TextOut (Sp,Zl,Mitarbeiter);
                TextOut (Sp+23*SpDiff,Zl,Nachname + ', ' + Vorname);
                TextOut (Sp+46*SpDiff,Zl,Abteilung);
                TextOut (Sp+70*SpDiff,Zl,Lohn);
                TextOut (Sp+90*SpDiff,Zl,Land + '-' + PLZ + ' ' + Ort);
                if Zl > Hoehe - 5*ZlDiff
                    then
                      begin
                        Printer.NewPage;
                        Zl := 3*ZlDiff;
                      end; // begin
                  end; // with
              
          Printer.EndDoc;
          end;
      end;
end.


Komm gerade auch nicht weiter hab am Anfang die For-Schleife innen liegen gehabt hat leider auch nicht funktioniert.

Hat jemand von euch einen Lösungsvorschlag ?
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Fr 24.04.09 11:44 
Hi,

wie es jetzt ist:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
for A:= 0 to ... do
  Variablen mit Werten füllen
=>Variablen haben den Wert des letzten Array-Items
-Druck beginnen
-Listenkopf schreiben
-Variablen schreiben
-Druck beenden


wie es sein soll:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
-Druck beginnen
-Listenkopf schreiben
-for A:=0 to ... do
---Variablen mit Werten füllen
---Variablen schreiben
-Druck beenden

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
Fredy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 57

Win Vista Ultimate

BeitragVerfasst: Fr 24.04.09 18:19 
super jetzt gehts ;) dankeschön