[Gelöst] Filter in Form setzen

29. August 2006 11:07

Hallöchen,

stehe vor folgendem Problem, ich habe im Menü 2 Punkte geschaffen.
Diese haben im OnPush Trigger einen Funktionsaufruf hinterlegt:

Code:
// Punkt1
WSF.GetMeineFUnktion(TRUE,FALSE,FALSE,FALSE, 'XXX', 50013);

// Punkt 2
WSF.GetMeineFUnktion(FALSE,TRUE,FALSE,FALSE, 'YYY', 50022);


WSF Ist die Codeunit wo sich die Funktion befindet.

Ist ja doof wenn ich die gleiche Funktion benutze, aber dafür 2 FORMs verwenden muss, das wollte ich nun auf eine Form mit dementsprechenden Filter vereinfachen.

Die Funktion GetMeineFunktion sieht so aus:
Code:
GetMeineFUnktion (Bestellt:Boolean,Anfrag:Boolean,"Auftrag erfasst":Boolean, "Anfrage erfasst":Boolean, myType:Text, myForm ) {
// Filter setzen
myRec.SETFILTER(Bestellt, FORMAT(Bestellt)); // Bestellt = Ja/Nein
myRec.SETFILTER(Anfrage, FORMAT(Anfrage)); // Anfrage = Ja/Nein
myRec.SETFILTER("Auftrag Erfasst", FORMAT("Auftrag erfasst")); // Auftrag erfasst = Ja/Nein
myRec.SETFILTER("Angebot erfasst", FORMAT("Angebot erfasst")); // Angebot erfasst = Ja/Nein
myRec.SETFILTER(Bestellung, '<>"'); // Darf nicht Leer sein.

// Wenn ein Datensatz gefunden wurde
IF myRec.FIND('+') THEN BEGIN
    FORM.RUN(myForm);
END ELSE BEGIN
  MESSAGE(TEXT002,myType);
END;
}


Aber irgendwie klappt das nicht. Der Filter greift nicht. Wo liegt mein Denkfehler?

SourceTableview in Foirm 50013 ist <Undefined>

DANKE !!! :oops:

PS: Meine bisherige Lösung war, 2 Forms zu nehmen, und in dementsprechenden Form den Filter über SourceTableView zu setzen. Daher die verwendung von zwei Forms statt nur ein.

PPS: In der CU ist myRec als Global definiert, und Lokale Parameter sind:
Var Name DataType Subtype Length
Nein Bestellt Boolean
Nein Anfrage Boolean
Nein Auftrag erfasst Boolean
Nein Angebot erfasst Boolean
Nein myType Text 10
Nein myForm Integer
Zuletzt geändert von elTorito am 29. August 2006 13:10, insgesamt 1-mal geändert.

29. August 2006 12:25

Hallo,

wie wär's mit:
Code:
    FORM.RUN(myForm,myRec);


MfG
Josef Metz

29. August 2006 12:31

Ich würde das folgendermassen lösen:

Dort, wo du das Form aufrufen willst, eine Record-Variable definieren mit jener Tabelle, die im aufzurufenden Form enthalten ist. Dann das aufzurufende Form ebenfalls als Variable definieren. Nun kannst du die RecordVariable beliebig filtern. Anschliessend setzt du SETTABLEVIEW des aufzurufenden Forms auf die gefilterte RecordVariable und rufst das Form mit RUN oder RUNMODAL auf. Dann hast du das Form mit dem gewünschten Filter

29. August 2006 13:09

Hi,

danke für eure Antworten.

Beide Lösungen funktionieren wunderbar. Nun bin ich wieder etwas schlauer.
Mal überlegen welche ich nun anwende :)