Factbox mit Provider und Code

8. Mai 2019 10:01

Hallo zusammen,
ich habe mal wieder ein Problem und komm nicht weiter.
Ich habe eine Factbox gebaut, die mir je nach Filter entweder die Planungsparameter aus dem Artikel oder aus den Lagerhaltungsdaten anzeigt.
Diesen Filter setze ich per Code. Die Factbox basiert auf der Artikeltabelle
Bis jetzt war das auch immer kein Problem, da ich die Factbox nur in Listen drin hatte bzw. nie in einem "Kopf-Zeilen Konstrukt".
Ich habe mir jetzt 2 neue Tabelle (Kopf und Zeile) gebaut.
In den Zeilen stehen einzelne Artikel mit Lagerort und Variante.
Hier würde ich gerne meine Infobox einbauen.
Jetzt habe ich aber das Problem, dass ich diese Infobox ja über Code ansprechen müsste. D.h. jedes mal wenn in der Zeile sich der Datensatz ändert müssten die Filter neu gesetzt werden.
Soweit ich weiß habe ich hier keine Möglichkeit das zu programmieren.
Die alternative wäre, dass ich die Factbox über den SubpageLink verknüpfe. Allerdings bekomme ich es nicht hin den Lagerort und Variantenfilter in der Factbox abzufangen.
Wenn ich z.B. mit
Code:
LocationCode :=  GetFilter("Location Filter");
arbeite bleibt die Variable trotzdem leer.
Die Factbox habe ich wie folgt eingebaut.
Code:
            part(PlanningFactBox; PlanningFactBox_dPlus)
            {
                ApplicationArea = All;
                Provider = Lines;
                SubPageLink = "No." = field("Item No."), "Variant Filter" = field("Variant Code"), "Location Filter" = field("Location Code");               

            }


Danke schonmal für eure Hilfe.

Grüße

Re: Factbox mit Provider und Code

22. Mai 2019 08:28

Hi,

du musst auf der Main-Page an dem ListPart das Property UpdatePropagation = Both setzen.

Damit wird immer wenn auf der Sub-Page der Datensatz gewechselt wird ein „CurrPage.Update“ an die Main geschickt.
Dann brauchst du auf der Sub noch eine Funktion, die den Filter als Text zurückliefert und eine weitere (die sollte ja da sein), die den Filter in der Factbox setzt.

Dann kannst du in OnAfterGetRecord der Main sagen:
Code:
FilterText := CurrPage.NameDeinerSubPage.Page.FunktionDieDenFilterZurückliefert
CurrPage.NameDeinerFactBox.Page.DeineFunktionDieDenFilterSetzt(FilterText)