3. Mai 2011 09:20
Hallo zusammen,
ich stehe vor folgendem Problem: ich habe eine Page die auf Table 83 basiert, auf der aber keine Felder des Rec eingeblendet sind sondern diverse Variable. Der Hintergrund dafür ist der dass erst beim Klick auf Buchen eine oder mehrere Artikelbuchblattzeilen angelegt werden, je nachdem welche Buchungsart der User ausgewählt hat.
In einer Subpage auf der genannten Page sollen nun Posten angezeigt werden die auf diverse Merkmale aus der Mainpage gefiltert werden müssen. Dies sind unter anderem ein Datumsfilter, die Artikelnummer und der Lagerortcode.
Da ich im "Kopf" ja nun keine Felder habe funktioniert keine direkte Verlinkung über den SubFormLink, also habe ich eine Funktion in der Subpage welche diverse Setrange´s ausführt, die Funktion wird im Kopf an verschiedenen Stellen aufgerufen, unter anderem in den OnValidate-Triggern der oben genannten Felder.
So viel einleitend, das ganze Konstrukt funktioniert wenn ich die zugrundeliegende Form aufrufe, der Filter auf die Posten wird korrekt gesetzt und geändert wenn ich was an den Merkmalen im Kopf ändere. Die Page jedoch reagiert gar nicht auf den Filter, erst werden keine Datensätze in der Subpage angezeigt, nach Eingabe diverser Merkmale werden einfach alle Posten angezeigt.
Meine Funktion in der Subpage sieht folgendermaßen aus:
SETRANGE("Location Code",LocationCode);
//
// ... falls noch kein Tankcode ausgewählt => nichts anzeigen
//
IF TankCode = '' THEN
SETRANGE("Tank Code",'ABCDEFGHIJ')
ELSE
SETRANGE("Tank Code",TankCode);
IF DateFilter = '' THEN
SETRANGE("Posting Date")
ELSE
SETFILTER("Posting Date",DateFilter);
IF COUNT > 0 THEN
FIND('-');
CurrPage.UPDATE;
ich habe auch schon Update(True) und (False) ausprobiert, das hat keine Besserung gebracht.
Hat jemand von euch schonmal was ähnliches gelöst?
Grüße,
Matthias
3. Mai 2011 12:47
Wenn du die Subpage komplett per Quelltext steuerst, solltest du alle harten Verknüpfungen/Filter herausnehmen (auf der Mainpage also den SubFormLink des PageParts leeren, auf der Subpage selbst sollten im SourceTableView keine Filter gesetzt sein).
Falls das nicht schon der Grund war: Vielleicht musst du auch in der Mainpage ein UPDATE(FALSE) absetzen?
erst werden keine Datensätze in der Subpage angezeigt
In welchem Trigger rufst du deine Funktion auf?
3. Mai 2011 14:05
Hallo Natalie,
mhm der SubFormLink auf der Mainpage ist leer, in der Subpage ist nur die Sortierung gesetzt damit absteigend sortiert wird. Das werde ich testweise mal rausnehmen und ebenso einen Update in der Mainpage nach dem Funktionsaufruf einbauen.
Die Funktion rufe ich im OnOpenPage und in den jeweiligen OnValidate´s der Felder auf die gefiltert werden sollen. Blöderweise lässt es sich ja nicht Debuggen....aber in der Form funktioniert´s ja. Das kann bestimmt nur mal wieder so ne Kleinigkeit sein und man hält sich Stunden damit auf...
Ich geb Rückmeldung ob die bisherigen Tip´s was gebracht haben.
Viele Grüße,
Matthias