[gelöst] Globale Variable für SubformLink verwenden?

26. November 2008 11:38

Moin moin,

Ich bin noch relativ neu auf dem NAV-Gebiet und hoffe mal, dass ich von euch eine kleine Hilfe zum SubFormLink bekomme.

Ich habe eine Mainform und eine Subform. Die Mainform zeigt Felder aus der Header-Tabelle eine Stückliste an.
In der Subform sollen nun die einzelnen Teile aus der Zeilen-Tabelle zu der zugehörigen Stückliste angezeigt werden. Dies funktioniert so auch.

Das Problem ergibt sich durch eine Versionierung der Sücklisten, welche nicht in der Header-Tabelle vermerkt werden, sondern nur in der Zeilen-Tabelle (Feld Version).
In der Form gibt es nun eine Funktion, die mir die aktuelle (sprich die höchste) Version der Stückliste zurückliefert und in einer Variablen bereitstellt.
Diese Variable würde ich nun natürlich gerne nutzen um den SubFormLink so zu setzen, dass der Versionscode (der Zeilentabelle) der globalen Variable entsprechen muss. Beim SubFormLink kann ich jedoch nur CONST oder FIELD auswählen und dort scheint eine Variable als Parameter nicht zu funktionieren.

Kann man dieses Problem irgendwie anhand der SubForm-Propertys lösen oder muss ich da was neues programmieren?

Gruß

rif
Zuletzt geändert von rifmetroid am 27. November 2008 12:03, insgesamt 1-mal geändert.

Re: Globale Variable für SubformLink verwenden?

26. November 2008 11:44

Kannst du denn nicht gleich den passenden Versionskopf benutzen?

Re: Globale Variable für SubformLink verwenden?

26. November 2008 11:48

Leider nein, da die Version nur in der Zeilentabelle der Stückliste steht und extra anhand einer Funktion berechnet wird.
Ich hab also kein Feld, dass ich aus dem Kopf dafür nutzen könnte (leider...).

Re: Globale Variable für SubformLink verwenden?

26. November 2008 12:01

Für jede Version gibt es auch einen Kopf. Da steht die Versionsnummer drin. Den siehst du, wenn du von einer Fertigungsstückliste über den Button Stückliste->Versionen gehst.

Aber vermutlich geht´s um irgendetwas anderes?

Re: Globale Variable für SubformLink verwenden?

27. November 2008 09:27

Guten Morgen,

es ist schon ganz richtig was du beschrieben hast.
Nur hab ich das Problem, dass auf der Stücklistenkarte eine Subform ist, in der die einzelnen Teile der Stückliste angezeigt werden.
Hier ist jedoch das Problem, dass dort nicht die korrekte aktuelle Version angezeigt wird, weil diese nicht in der Kopftabelle steht um sie als Filter oder Link für die Subform mit anzugeben. Somit sieht man halt leider nicht die aktuellen Stücklistenteile in der Subform.
In einer berechneten Variable habe ich aber die aktuelle Version der Stückliste zur Verfügung, nur kann man die ja leider nicht als Filter oder Link für die Subform mit angeben.
Ich werde das nun so lösen, dass ich eine Funktion in der Subform schreibe und dieser Funktion die Werte zum Filtern übergebe und dann dort direkt die Filter setze.
Falls jemandem eine bessere Lösung einfallen sollte, dann immer gern her damit.

Gruß

Rif

Re: Globale Variable für SubformLink verwenden?

27. November 2008 10:50

Nur nochmal zum Verständnis:
du zeigst Zeilen einer Stücklistenversion in einer Subform an, ohne den Stücklistenversionskopf (in dem die Versionsnummer steht) in der Mainform anzuzeigen? Was für ein Datensatz steht denn stattdessen in der Mainform?

Wenn das so ist, wie ich es verstehe, ist dein Vorgehen gangbar: Versionsnummer an Subform per Funktion übergeben und dort darauf filtern. Falls immer die aktuelle Version angezeigt werden soll, müsste das auch ohne Übergabefunktion gehen. Nächste Möglichkeit: richte in der Tabelle, die du in der Mainform anzeigst, ein Feld ein, in dem die akt. Versionsnummer drin steht. Dann geht´s wieder mit Bordmitteln.

Re: Globale Variable für SubformLink verwenden?

27. November 2008 12:03

Ich zeige den Stücklistenversionskopf schon in der Mainform an. Dieser enthält aber leider defnitiv nicht die Versionsnummer (es handelt sich leider nicht um die StandardStücklisten, sondern um eine für uns zusätzlich programmierte Lösung).

Ich hab das Problem aber gerade mit einer Funtkion gelöst, mit der ich die Filterkriterien an die Subform übergebe und dann dort direkt die Filter setze.
Vielen Dank für deine Antworten, die haben mich letztendlich auf den richtigen Weg gebracht!

Many Thx!

Gruß

Rif

Re: [gelöst] Globale Variable für SubformLink verwenden?

27. November 2008 17:23

Ich denke weniger umständlich ginge es über ein zusätzliches Feld der Kopftabelle, welches du aus deiner globalen Variable füllst. Dan kannst du die Subform direkt verlinken und der Code ist einfacher.

Aber wenn es denn nun mit filtern klappt, dann vielleicht beim nächsten Mal :)

Re: [gelöst] Globale Variable für SubformLink verwenden?

27. November 2008 17:30

Das mit dem zusätzlichen Feld in der Kopftabelle hätte ich da auch gern gemacht, nur darf ich da erstmal leider kein weiteres Feld hinzufügen.
Von daher musste ich das nun mit den übergebenen Filterwerten an die Subform machen. Das klappt aber auch sehr gut.

Danke trotzdem für die Hilfe!
Das ist echt ein Super Forum hier!

Gruß

Rif

Re: [gelöst] Globale Variable für SubformLink verwenden?

19. Dezember 2008 13:40

Hallo Rif

Kannst du mal deine Funktion darstellen, mit der du die Filterkriterien an die Subform übergibst?

Ich habe ein ähnliches Problem.

Besten Dank
Michelle

Re: [gelöst] Globale Variable für SubformLink verwenden?

2. September 2009 10:36

Auch wenn es etwas spät ist, hier die Lösung dafür:

Im "Form - OnAfterGetRecord()"-Trigger rufe ich einfach die Funktion in der Subform auf, die bei mir "SetFilterVersion" heißt:

Code:
CurrForm.ProdBOMLine.FORM.SetFilterVersion(...hier dann die Filterkriterien als Parameter übergeben...);


Was ich dabei noch beachten musste, ist im "Form - OnNewRecord()"- Trigger die Funktion ebenfalls mit anderen Parametern aufzurufen, da es ansonsten immer einen Fehler gab, wenn man gescrollt hat und ein neues Element angelegt wurde, da die Filterkriterien nicht mehr korrekt waren.

In der Subform habe ich dann einfach eine globale Funktion "SetFilterVersion(...hier mit den entsprechenden Parametern...)" angelegt, welche die Filter anhand der Parameter setzt.

Ich hoffe, dass hilft weiter. Falls noch Fragen dazu bestehen sollten, schreibt mich einfach an.

Gruß
Christian