[Gelöst] Wie in Form Filter aus RunFormView abfragen?

5. Juni 2007 15:10

In einem Menü rufe ich eine Form auf:
PushAction = RunObject
RunObject = Form MeineForm
RunFormView = SORTING(...) WHERE (MeineFilter).

Mehrere Benutzergruppen bekommen dieselbe Form in unterschiedlichen Filterungen zu sehen, d.h. ich habe für jede Gruppe einen eigenen Filter in RunFormView.

In der aufzurufenden Form möchte ich beim Öffnen schauen, mit welchem Filter die Form aufgerufen worden ist, also habe ich folgendes im OnInitTrigger (als auch im OnOpenTrigger zu Testzwecken) probiert:

Code:
Rec.FILTERGROUP(3);

IF GETFILTER(MeinFeld) = EinBestimmtesWert THEN BEGIN
    MESSAGE('mach irgendwas!');
END;

Rec.FILTERGROUP(0);


Filtergroup deswegen, weil in der Onlinehilfe steht:
3 Exec Used for the filtering actions that result from the SubFormView and RunFormView properties.


Und natürlich klappt das nicht!
Im Debugger wird klar, dass die Rec-Variable gar keinen aktiven Filter besitzt, egal ob mit oder ohne gesetzte Filtergroup.

Wie also komme ich an den Form-Filter ran?
Zuletzt geändert von Natalie am 5. Juni 2007 16:12, insgesamt 1-mal geändert.

5. Juni 2007 15:13

Upps, sehe gerade, dass es mein Problem schon mal hier gab - sorry!

http://www.msdynamics.de/viewtopic.php?t=2893

Dort allerdings schien Filtergroup 3 zu funktionieren - bei mir leider nicht!
Wo ist mein Fehler?

5. Juni 2007 15:31

Komisch.

Bei mir funktioniert es.
Aber nur im OnOpenForm.
NICHT im OnInit.

5. Juni 2007 15:54

Bei mir gehts im OnOpenForm leider auch nicht.
Aber wie klappt das bei dir? Was hast du anders gemacht? In welcher Version hast du garbeitet (ich bin in 3.70)?


HALT, HAB ES!

1. Wie schon gesagat wurde: Wichtig ist der OnOpen-Trigger

2. Habe ich die Abfrage falsch formuliert.

Falsch:
Code:
IF GETFILTER(Optionsfeld) = FORMAT(Optionsfeld::Wert) THEN

FORMAT(Optionsfeld::Wert) lieferte hier den Wert 2, und nicht 'Einkauf'

Richtig:
Code:
IF GETFILTER(Optionsfeld) = 'Einkauf' THEN


Was heißt richtig ... Wie schaff ich es, ohne FieldRef hier mit der OptionCaption zu hantieren...?
Zuletzt geändert von Natalie am 5. Juni 2007 16:02, insgesamt 1-mal geändert.

5. Juni 2007 16:01

Hab Dir mal eine fob-Datei angehängt.
Da sind 2 Forms drin. Die erste ruft die
zweite auf (mit Filter). Kannst es Dir ja
mal anschauen. Version: 3.70.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

5. Juni 2007 16:03

Danke dir (trotzdem)!

Kannst du zu o.g. (habe meinen Beitrag editiert) vielleicht was sagen?

5. Juni 2007 16:39

Knifflig.

Du könntest höchstens die Table, auf der die Form basiert,
in der Form nochmal als globale Variable anlegen.

Dann etwas in der Art:

Code:

Table.Optionsfeld := Table.Optionsfeld::Einkauf;
IF GETFILTER(Optionsfeld) = FORMAT(Table.Optionsfeld) THEN



Ist vielleicht etwas schräg...
Falls da jemand 'ne bessere Idee hat, kann er's ja hier reinposten.

5. Juni 2007 16:43

Ja, auf die Idee war ich auch schon gekommen ...

Nochmals danke!