[Gelöst] LookUp Form & Tabellenfilter

18. Juni 2007 15:50

Hallo zusammen,

ich habe folgendes Problem : Ich habe 2 Text Boxen die jeweils über einen LookUp auf unterschiedliche Tabellen verweißen sollen.

Wenn jetzt in TextBox2 eine Eingabe gemacht wurde und dann die LookUp Tabelle der TextBox1 aufgerufen wird, soll der Inhalt dieser Tabelle entsprechend der Eingabe der TextBox2 gefiltert werden.

Im Forum habe ich ein ähnliches Problem schon gefunden und daher das ganze wie folgt realisiert :

Code:
IF codeTextBoxBescheidart <> '' THEN
  recBescheidkopfdaten.SETRANGE (Bescheidart, codeTextBoxBescheidart);
LookUpForm.SETTABLEVIEW (recBescheidkopfdaten);
LookUpForm.RUN;


Das Problem welches ich jetzt noch habe ist das wenn ich die Form aufrufe, diese keinen Ok & Abbrechen Button beinhaltet. Das lässt sich doch meines Wissens irgendwie mit diesem LookUpOK lösen, allerdings komm ich da nicht weiter wie ich das implementieren soll. Zum anderen muss ich ja dann wenn auf Ok geklickt wird die Auswahl mit an die TextBox übergegen. Stelle ich das folgendermaßen an ?

Code:
codeTextBoxNummer := Record.Nummer;
Zuletzt geändert von CBT am 22. Juni 2007 14:56, insgesamt 3-mal geändert.

18. Juni 2007 16:23

Hallo Chris!

So könnte es funktionieren:

Code:
IF codeTextBoxBescheidart <> '' THEN
  recBescheidkopfdaten.SETRANGE (Bescheidart, codeTextBoxBescheidart);
LookUpForm.SETTABLEVIEW(recBescheidkopfdaten);
LookUpForm.LOOKUPMODE:=TRUE;
IF LookUpForm.RUNMODAL = ACTION::LookupOK THEN BEGIN
  LookUpForm.GETRECORD(recBescheidkopfdaten);
  codeTextBoxNummer := recBescheidkopfdaten.Nummer;
END;

Gruß, Marc

19. Juni 2007 08:52

Hallo Marc,

ich hatte noch nen kleinen Denkfehler bei mir drin aber die Variante funktioniert wunderbar.
Ich hatte das schonmal fast genau so, nur bei mir hatte ich die GETRECORD Zeile vergessen ;)

Dickes Danke schön an dieser Stelle.

Edit : Ganz am Ende sollte noch ein CLEAR (LookUpForm) rein.

19. Juni 2007 11:36

Hallo,

einen ähnlichen Fall hatte ich vor kurzem schon mal. Ich habe das folgendermaßen gelöst (lr_ILE = "Item Ledger Entry"):

Code:
lr_ILE.SETCURRENTKEY("Item No.","Location Code",Open,"Variant Code","Unit of Measure Code","Lot No.","Serial No.");
IF ItemNo <> '' THEN
  lr_ILE.SETRANGE("Item No.",ItemNo);
IF LocationCode <> '' THEN
  lr_ILE.SETRANGE("Location Code",LocationCode);
lr_ILE.SETRANGE(Open,TRUE);
IF (FORM.RUNMODAL(38,lr_ILE) = ACTION::LookupOK) THEN
  SerialNo := lr_ILE."Serial No.";


Hier habe ich 3 Textfelder, die auf 3 Tabellen verweisen, das Dritte soll dabei in Abhängigkeit zu den ersten beiden aufgerufen werden.
Ist auch noch ne Möglichkeit :wink:

Gruß
Alez

21. Juni 2007 16:37

Kannte diese Version zwar noch nitt, aber werd ich mir auch auf jeden Fall mal angucken. Besten Dank für den Tipp.

Hab noch folgende Kleinigkeit.
Das ganze ist auf einem Report und diesen möchte ich jetzt aus einer anderen Form heraus über einen Menü Button aufrufen. Soweit hab ich das auch noch hinbekommen. Auf der Aurufform befindet sich eine TextBox X. Und der Inhalt der TextBox X möchte ich beim Aufruf meines Reports in eins der TextBoxen auf diesem schreiben. Also Quasi Objektübergreifend. Wie stell ich das an bzw. nach was muss ich da gucken ?

22. Juni 2007 13:30

Hi,

ist ja lustig, dasselbe sollte bei meinem Report auch funktionieren und ich bin hier über das Forum auf eine Lösung gekommen :-)

Du musst im Report eine neue Funktion anlegen, in der du einen Parameter übergibst, in meinem Report ist es die ItemNo (SetParameter ist die Funktion und _ItemNo der Parameter):

Code:
SetParameter(_ItemNo : Code[20])
ItemNo := _ItemNo;


Auf der Form musst du nun beim Button oder Menüeintrag eine lokale Variable mit dem Report, den du starten willst hinterlegen und folgendes beim OnPush-Trigger eintragen:
Code:
Report.SetParameter(ItemNo);
Report.RUN();


Hoffe das hilft dir weiter.

Gruß
Alez

22. Juni 2007 13:38

Ich beiss mir gleich wohin. Ich hatte es genau so, nur als ich über das Symbol Menü den Eintrag Report.Function einfügen wollte, hat er mir gesagt die gibts da nicht. Hab jetzt mal alles zu - und wieder aufgemacht und siehe da, es gibt sie doch :D Trotzdem dickes Danke schön für die Antwort.