Reporterstellung "HILFE!"

29. März 2007 10:10

Hallo,

habe 2 Tabellen.

Wareneingang Kopf
Wareneingang Zeilen

ich brauche eine Liste, die mir im Kopfbereich jeweils immer einen Datensatz aus dem Kopf zeigt und die dazugehörigen Zeilen bei denen im Feld "Fertigteilenummer" ein betrag steht.

Ich weiss gar nicht wie das geht. Als Dataitems nehem ich die beiden Tabelle rein, ok. Dann rücke ich Wareneingang Zeilen so einmal nach rechts ein.

Und dann?

Die Verknüpften Felder sind "No." und "KUNUMMER". Wie ich das in einer Main Subform angebe weiss ich, nur wie mach ich das im Report?

Vielen Dank schoneinmal für eine paar erleuchtende Tipps.

29. März 2007 10:17

Hallo Tesarolle,

hilfreich ist hier sicherlich der "Application designer guide". Den findest du auf der Disk1 im Doc verzeichnis von den Navi Installation Cd's

grüße
thomas

Re: Reporterstellung "HILFE!"

29. März 2007 10:46

tesarolle hat geschrieben:Die Verknüpften Felder sind "No." und "KUNUMMER". Wie ich das in einer Main Subform angebe weiss ich, nur wie mach ich das im Report?

Da zu gehst du in das zweite DataItem und hinterlegst in der Eigenschaft DataItemLink die Verknüpfung.

Gruß, Marc

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!)