29. März 2007 10:49
Hallo Tesarolle,
im Prinzip könntest du die Funktionalität von einem Standart Report abschauen, bzw. du hast bereits ja geschildert wie der Kopfbereich und die Zeilen verküpft werden.
Warum du das Feld "KUNUMMER" mit verknüpft hast weis ich nicht!
(Das Feld "No.", würde reichen, es sein den, Ihr habt Wareneingänge zu gleichen No und unterschiedlichen 'KUNUMMERn')
Nun musst du Prüfen (entweder auf dem Trigger:Warehouse Receipt Header - OnAfterGetRecord, oder Warehouse Receipt Line - OnPreDataItem ), ob in min. in 1 Zeile im Feld "Fertigteilenummer" ein Betrag steht. (Eine Bool Variable auf TRUE setzten).
Die Prüfung müsste mit einer Variable vom Typ Record auf die Tabelle "Warehouse Receipt Line" erfolgen.
(Da bevor du das 2 DataItem Verarbeitest, wissen musst, ob ein Betrag vorhanden ist!)
Auf dem Trigger: Warehouse Receipt Line - OnPreDataItem müsste ungefähr folgender Code stehen:
- Code:
IF NOT Dein_Bool THEN
CurrReport.BREAK;
Wenn das Bool auf FALSE steht, wird das übergeortnete DataItem übersprungen und das nächste Verarbeitet.
Wenn es TRUE ist, werden die Zeilen Verarbeitet und in den Sections ausgegeben.
********************************************
Es gäbe noch eine Variante, mit einem dritten übergeortneten DataItem "Warehouse Receipt Line".
Dieses wird in den Sections nicht angezeigt.
Auf dem OnAfterGetRecord Trigger Prüfst du dein Feld und setzt deine Bool Variable.
Im DataItem "Warehouse Receipt Header" Prüfst du deine Bool, wenn diese auf FALSE steht, wird das DataItem mit CurrReport.SKIP "geSKIPT".
Welches der Korrekte Programmierweg laut "Style Guide" wäre, würde mich allerdings auch Interessieren?
(Evtl. noch anders?!)
Gruß Mikka
(Ich hoffe ich habe deine Frage richtig Verstanden!)