Einzelne Subform filtern nach Kriterium in anderer Tabelle

27. Februar 2007 10:03

Hallo Leute,

ich habe eine Main/Subform. Wenn ich durch die Kopf Tabelle blättere zeigt er mir anhand des Subformlink nur die entsprechenden Daten im Zeilenbereich an. Soweit so gut.

Nun habe ich ein anderes Formular, wo ich NUR die Zeilen brauche. Es wird hier also nur die Subform mit den Zeilen angezeigt und er soll mir nur die Zeilen/Datensätze anzeigen, wenn in der Kopftabelle ein Optionsfeld einen bestimmten Wert hat. Wenn dieses auf "Produktion" steht soll er mir die Zeilen anzeigen.

Bei meinem Subform LInk habe ich

No FIELD No
Kunummer FIELD Kunummer

Über den Subform link geht das ja in dem Fall nicht, da es keine Mainform gibt auf die ich mich beziehen kann. Und über die SourceTablieView kann ich auch nicht filtern, da das Kriterium in einer anderen Tabelle ist.

ALso muss ich vermutlich so eine Art Subformlink programmieren???

Wäre für Eure Hilfe sehr dankbar...!

27. Februar 2007 10:28

Möchtest du auf deiner Form die (hintergründige) Mainform durchblättern können?
Ich weiß nicht, obs funktioniert, aber bleibe doch bei dem Aufbau Subform auf Mainform: Mainform = Kopftabelle (aber keine Felder anzeigen oder diese ausblenden), Subform dann wie gehabt.

27. Februar 2007 11:27

Wenn Du immer nur die Zeilen auf einmal sehen willst, die zum gleichen Header gehören, funktioniert Natalies Lösung perfekt, du musst nur ein beliebiges Control in der Mainform haben, was den Fokus bekommt, damit du durchblättern kannst. Dazu reicht durchaus die Hilfetaste, der du im onOpenform den Fokus gibst.
Wenn Du aber alle Zeilen, deren Header Optionsfeld auf Produktion steht gleichzeitig sehen willst, musst du mit einer neuen Tabelle arbeiten, die im OnOpenform gefüllt wird und in der Tablebox dargestellt wird. Wenn diese Form von einer anderen Form oder Codeunit aufgerufen wird, kannst du sogar mit einer temporären Tabelle arbeiten.

28. Februar 2007 14:33

Hallo Ihr beiden,

erstmal vielen Dank.

Deine Lösung Natalie funktioniert schon, aber ich brauche die Lösung ohne durchblättern. Es ist so: Ein Produktionsleiter erstellt einen Arbeitsplan, der hat mAin und subform und das ganze ist ziemlich umfangreich.

Den Tabellenbereich (SUbform) sehen nur die Prodduktionsmitarbeiter der jeweiligen Abteilungen. Und diese sollen Ihre Arbeitsschritte erst sehen, wenn im Kopf das Optionsfeld auf Status "Produktion" steht. Von daher bräuchte ich das was michael meinte.

Aber wie mache ich das mit einer extra tabelle? Brauch ich die unbedingt? Kann ich nicht im OnOpenForm irgendwie sagen dsa er mir sämtliche Zeilen anzeigen soll bei denen im Kopf im Feld Status ein bestimmter Wert steht?

Mir geht es nicht ums durchblättern, ich will sämtliche zeilen sehen...

Vieln Dank schonmal für Eure Antworten!!!

28. Februar 2007 16:59

Hallo,

du könntest mit dem Befehl "MARK" und "MARKEDONLY"arbeiten, sofern ich dein Problem Korrekt verstanden habe.

Beim öffnen der Form zunächst alle Header durchlaufen und die Datensätze in deiner Subform markieren, bei denen im Header die Kriterien stimmen.
Im nächsten Schritt die Satzmarkierten (mit MARK) anzeigen.

Falls das ein Lösungsweg sein könnte, kannst du über die Boardsuche einiges über MARK hier im Forum finden.
Gruß Michael