[gelöst] Bericht Zeilen Positionnr.

16. Januar 2013 11:45

Hallo zusammen,

ich habe u.a. den Bericht 205 Verkauf - Auftragsbestätigung etwas verändert; zb. Logo hinzugefügt einige Felder hinzugefügt. Also für uns angepasst und unter unsere ID-Bereich gespeichert. Ich habe u.a. eine Zeilennr./Positionsnr. hinzugefügt. Wie folgt:
im Designmodus
Unbenannt.JPG

in der Zeile RoundLoop habe ich folgendens eingetragen:

im Abschnitt RoundLoop - OnPreDataItem()
Zeile:=1;
im Abschnitt RoundLoop - On AfterGetRecord()
IF "Sales Line"."No." <> '' THEN BEGIN
Zeile := Zeile + 1
END;

Dann gebe ich das Feld Zeile im Report aus.

Nun zum Problem.

Wenn ich die Auftragsbestätigung einzeln drucke, wird Posistion/Zeilennr. richtig gedruckt und gezählt.
Doch wenn ich auf Auftragsbestätigungn klicke und dann z.b. die AB's der Auftrage von "AUF00772..AUF000790" dann stimmt die erste AB mit den Positionnr/Zeile, doch die nachfolgenden Seiten fängt die Positionsnr/Zeile mit einer 2 an.

Wo muss ich das Feld noch "reseten" bzw. wieder auf 1 stellen?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von sthuening am 16. Januar 2013 13:48, insgesamt 1-mal geändert.

Re: Bericht Zeilen Positionnr.

16. Januar 2013 12:01

sthuening hat geschrieben:Wo muss ich das Feld noch "reseten" bzw. wieder auf 1 stellen?

Dein Quelltext steht bereits an der richtigen Stelle. Du hast jedoch einen Denkfehler:
Wenn du pro Zeile einen hochzählst, muss das Reset bei 0 statt 1 anfangen.

Re: Bericht Zeilen Positionnr.

16. Januar 2013 12:27

Hallo Natalie,

aber der zählt ja erst nach den datensatz ( On AfterGetRecord()) Oder nicht??

Also ich habe das Zeile:=1; auch schon auf null gemacht. Doch dann fängt die erste Zeile mit der Posnr.0 an und nicht mit 1. In diesem Sammeldruck sind meherer Verkaufsauftrage verschiedener Kunden. Und der Zähler fängt nicht immer bei null an; manchmal fängt er auch bei 1 an. Nur nach welchem Kriterien der Bericht dann doch bei 1 anfängt und bei der nächsten Seite wieder mit Null und dann bei der übenächsten Seite fängt er wieder bei 1 an, kann ich leider nicht erklären.
Bei Zeile := 0 fängt der Einzeldruck immer bei Null an, was ich ja nicht möchte....

Re: Bericht Zeilen Positionnr.

16. Januar 2013 13:32

sthuening hat geschrieben:Haber der zählt ja erst nach den datensatz ( On AfterGetRecord()) Oder nicht??

Erst wird (pro Datatensatz) der Code im OnAfterGetRecord ausgeführt, dann der aktuelle Datensatz (also auch: die um 1 erhöhte Variable Zeile) angedruckt.

Also ich habe das Zeile:=1; auch schon auf null gemacht. Doch dann fängt die erste Zeile mit der Posnr.0 an und nicht mit 1.

Und die erste Zeile hat eine gefüllte "No."? Wenn nicht, dann wäre es doch richtig, dass nicht hochgezählt wird.
Wichtig ist auch, dass dein Quelltext eher am Ende des OnAfterGetREcord-Triggers steht, auf jeden Fall irgendwo nach der Standardzeile
Code:
"Sales Line" := SalesLine;

Re: Bericht Zeilen Positionnr.

16. Januar 2013 13:48

Hallo nochmal,


habe nun Zeile:= auf null gesetzt im OnPreDataItem()

und meine Abfrage nur am Ende von On AfterGetRecord() gesetzt

Und das hat geklappt. Verstehe tue ich das nur nicht so ganz. :-?

Vielen Dank für die Hilfe.

Re: Bericht Zeilen Positionnr.

16. Januar 2013 14:18

sthuening hat geschrieben:Und das hat geklappt. Verstehe tue ich das nur nicht so ganz. :-?

Dein Quelltext
Code:
IF "Sales Line"."No." <> '' THEN BEGIN
  Zeile := Zeile + 1
END;

Fragt Variable "Sales Line" ab. Diese wird jedoch erst in der Zeile
Code:
"Sales Line" := SalesLine;
befüllt. Also darf dein Code erst danach ausgeführt werden.

Re: [gelöst] Bericht Zeilen Positionnr.

16. Januar 2013 14:51

Ah.. Ok.. Dann habe ich das jetzt auch verstanden :-)

Vielen Dank.