[gelöst] Problem mit Report

27. Oktober 2009 15:02

Hallo Natalie,
danke für deinen Beitrag, er war für mich sehr hilfreich und anschaulich
Bis auf eine Kleinigkeit :roll:
Ich komm einfach nicht damit zurecht, wenn der Report auch "rückwärts" suchen soll. In meinem Fall wäre das:
wenn z.B. der Artikel S1LDX0146/000 das Kriterium "TestInvNichtBerücksichtigen = FALSE" erfüllt, dann muss der Report alle Artikel vom ersten bis zum letzten aus dieser "Gruppe" (S1LDX0146) ändern.
Wär super, wenn du mir helfen kannst.
Ich hab dir mal meinen Report angefügt.

@01 dp01 Dieser Bericht prüft, ob in einer Artikelgruppe (Grund- und Unterartikel) ein Artikel dabei
ist, welcher nicht als "TestInvNichtBerücksichtigen" markiert ist und ändert in diesem Fall alle
Artikel aus dieser Artikelgruppe auf "nicht markiert".

Grundartikel = z.B. S1LDX0146
Unterartikel = z.B. S1LDX0146/000 ( /000 ist ein Verarbeitungscode )
Unterartikel = z.B. S1LDX0146/078 ( /078 ist ein Veredelungscode )

Code:
[b]Item - OnPreDataItem()[/b]

[b]Item - OnAfterGetRecord()[/b]
artikel2:=Item;
nnr := COPYSTR(Item."No.",1,9);

IF Item.TestInvNichtBerücksichtigen = FALSE THEN BEGIN           
 artikel2.SETFILTER("No.",nnr);
 IF artikel2.FIND('-') THEN REPEAT                               
  artikel2.TestInvNichtBerücksichtigen := FALSE;
 UNTIL artikel2.NEXT = 0;
 artikel2.MODIFY;
END;
Edit by Mikka: Code in [CODE-Tags] abgelegt
---------------------
Viele Grüße
Dieter[*]
Zuletzt geändert von Dieter am 28. Oktober 2009 12:14, insgesamt 1-mal geändert.

Re: Problem mit Report

27. Oktober 2009 15:46

Eigentlich müsste das modify nur vor das until und der Filter richtig gesetzt werden, wenn ich das richtig sehe.

Re: Problem mit Report

27. Oktober 2009 15:47

Hallo Dieter,

dein Quelltext ist leichter zu lesen und zu verstehen, wenn du ihn zwischen so genannte Code-Tags setzt. Insbesondere deine Formatierungen werden so auch beibehalten.

Daher bitten wir dich, vor und nach deinem Quelltext diese Code-Tags einzufügen. Beispiel:


[code]Dein Quelltext[/code]
(Ich habe das für dich dieses mal gemacht)

Gruß, Mikka

[Beitrag aus dem Forum NAV FAQ nach NAV 4.xx verschoben, da es eine neue Frage (und kein FAQ) darstellt.]
MSDynamics.de-Team

Re: Problem mit Report

28. Oktober 2009 08:37

Erstmal vielen Dank an alle Beteiligten für die überraschend schnelle Reaktion und Hilfe.
den "modify" hab ich jetzt vor das "until" gesetzt, leuchtet eigentlich auch ein.
Der Hinweis mit dem Filter ist sicher auch richtig, aber wie drücke ich das aus, wenn alle Artikel mit den ersten 9 Anfangswerten in den modify einbezogen werden sollen ? Hab mir jetzt mal eine "message" mit eingebaut und da sieht man dann, dass der Bericht immer nur auf dem Artikel ("artikel2") mit exakt diesen 9 Zeichen rumhackt. Ändern tut er trotzdem nichts.
Report sieht jetzt so aus:
Code:
artikel2:=Item;
nnr := COPYSTR(Item."No.",1,9);

IF Item.TestInvNichtBerücksichtigen = FALSE THEN BEGIN
 artikel2.SETFILTER("No.",nnr);
 IF artikel2.FIND('-') THEN REPEAT
  artikel2.TestInvNichtBerücksichtigen := FALSE;
  artikel2.MODIFY;
  MESSAGE('Artikel wurde geändert = '+ '%1',artikel2."No." );
 UNTIL artikel2.NEXT = 0;
END;

Re: Problem mit Report

28. Oktober 2009 10:04

Die Zeile
Code:
artikel2:=Item;
ist Quatsch, und versuch mal
Code:
nnr := COPYSTR(Item."No.",1,9)+'*';

Je nachdem, wie viele Artikel gefunden werden, würde ich die Messagebox raus nehmen :wink:

Re: Problem mit Report

28. Oktober 2009 10:37

Hallo McClane,
super Sache !! Jetzt flutschts.
Aber "artikel2" muss ich lassen. Wenn ich es mit "item" ersetze tut sich nix.
Vielen Dank nochmal
Dieter
P.S. wie wird denn so ein Fall als "gelöst" markiert ? Oder machen das die admins

Re: Problem mit Report

28. Oktober 2009 10:42

Die Variable Artikel2 brauchst du selbstverständlich, nur die angesprochene Zeile nicht.

Gelöst setzt du, indem du deinen ursprünglichen Artikel editierst :)