Lookup-Form filtern ohne Table Relation

15. März 2007 14:03

Hallo,

habe in einer Tabelle ein Optionsfeld (WARENEINGANG,WARENAUSGANG) als Option.

Ich habe 2 Masken von denen aus ich den Lookup starte.

Wenn ich bei der einen Maske den Lookup starte soll er mir in der lookup-form nur alle mit STATUS::WARENEINGANG anzeigen und bei der anderen Form eben "WARENAUSGANG"

Kann ich das direkt bei den Menü Items (formulareben) im Code hinterlegen?

Und wenn ja wie ungefähr?

15. März 2007 16:20

Hast du das nicht schon hier gefragt, rsp. andiskutiert?

LookupForm m mit Filter vorbelegen

15. März 2007 16:36

Hallo Rotsch, Jein :-)

Das mit der Table Relation hatte gut funktioniert von dem anderen Thread.

Aber bei meinem aktuellen Problem, s.o. weiss ich nicht wie das gehen soll.

Bitte um Hilfe

15. März 2007 17:00

Alles klar. Die Lösung ist nicht so schwer

Du wählst das MenuItem an, dann mit F9 in den Code.

Du musst etwas programmieren im OnPush-Trigger. Dazu brauchst du eine Variable für das Form, das du aufrufen willst und eine für die Tabelle, die auf dem LookupForm liegt.

Nun kannst du die Tabelle nach Bedarf filtern. Anschliessend übergibst du die Tabelle an das Form mit SETTABLEVIEW(Tabelle). Wenn du nun das Form aufrufst, ist es entsprechend gefilter.

16. März 2007 14:25

Also meine Tabelle heisst wareneingang und das formular auch, im form erzeuge ich eine variable "Status filtern" und in der Tabelle auch nochmal eine variable "test" z.b.

und was muss ich im on push trigger eintragen?

16. März 2007 14:34

Du brauchst eine Variable vom Typ Form (für dein LookupForm) und eine Variable vom Typ Record (die Tabelle, die auf dem LookupForm hinterlegt ist).

Jetzt setzt du ein SETFILTER oder SETRANGE auf die Record-Variable (abhängig von deinem Status). Dann setzt du auf dem Form SETTABLEVIEW ab mit deiner Record-Variablen und rufst dann das LooupForm auf.

16. März 2007 16:31

So gehts bei mir normal:

Code im OnLookup-Trigger
Code:
Rec.Reset;
If Form.Runmodal(Form::Name,Rec)= Action::LookupOK
  then begin
    Var:= Rec.Feld;
    Var2:= Rec.Feld2;
  end;


Rec = Recordvariable
Form = Formvariable
Name = Name der Form im Objektdesigner
Var = Irgendeine Varibale die durch den Lookup gefüllt werden soll
Var2 = siehe Var

Du Kanst nach dem Rec.Reset die Recordvariable natuerlich beliebig Filtern und ggf auch vorher eine If-Abfrage machen welche Option aktiv ist.