[gelöst] Lookup im RequestForm

8. September 2014 15:23

Hallo zusammen,

heute scheitere ich mal wieder an einem vermutlichen Anfängerfehler :oops: und hoffe, daß mir jemand 'auf's Pferd' helfen kann...

Ausgangssituation:
- Report Etiketten, basierend auf Tabelle Item;
- RequestForm (nur Options): hier ist die Item.No bereits vorgegeben;
ein Textfeld auf den Options heißt 'Charge': hier soll anhand der vorgegebenen Artikelnummer via LookupForm die Chargennummer aus der Tabelle 32 (Item Ledger Entry) ausgewählt werden;

Problem: es öffnet sich zwar das Formular 32 (Item Ledger Entries), jedoch egal, was ich anstelle, ich kann daraus nichts übernehmen :-(

Ausprobiert habe ich schon einiges, mit LookupFormID, OnAssistEdit etc., auch habe ich u.a. hier
als auch besonders hier recherchiert, aber irgendwie komme ich nicht so recht dahinter.

Mein letzter Versuch, die LookupForm aufzurufen, war im OnLookup des Textfeldes:
Code:
CLEAR(gLookupForm);
gItemLedgerEntry.RESET;
gItemLedgerEntry.SETFILTER(gItemLedgerEntry."Item No.", lNo);
gLookupForm.LOOKUPMODE(TRUE);

IF gLookupForm.RUNMODAL = ACTION::LookupOK THEN
  MESSAGE('ausgewählte Charge: %1', gItemLedgerEntry."Lot No.");

gItemLedgerEntry ist eine globale Variable auf die Tabelle "Item Ledger Entry", gLookupForm auf die Form "Item Ledger Entries".

Hat jemand von Euch eine Ahnung, warum das nicht funktioniert? Bin für jeden Hinweis dankbar... :-?
Ist die grundsätzliche Vorgehensweise so OK oder packe ich das vielleicht sogar völlig falsch an?
Zuletzt geändert von Frank_S am 12. September 2014 10:54, insgesamt 1-mal geändert.

Re: Lookup im RequestForm

8. September 2014 15:30

In deinem Quelltext fehlt die entscheidende Passage, in welcher du der Form gItemLedgerEntry übergibst:
Code:
gLookupForm.SETTABLEVIEW(gItemLedgerEntry); 

Dies muss vor IF ...RUNMODAL = ACTION... erfolgen.

Schau mal in die Onlinehilfe von RUNMODAL (Form).

Re: Lookup im RequestForm

8. September 2014 15:43

Hallo Natalie,

vielen Dank für Deine schnelle Antwort! In einer meiner vielen 'Probierereien' hatte ich dies auch schon mal drin und habe es jetzt nach Deiner Anleitung nochmals eingebaut.
Leider ist es immer noch das gleiche Ergebnis... die LookupForm öffnet sich, aber auswählen kann ich immer noch nichts... :-(

Mich wundert es, daß die LookupForm genauso aussieht, als hätte ich sie direkt aufgerufen, also ohne "OK"-Button etc.?

Re: Lookup im RequestForm

9. September 2014 12:00

Hat denn niemand einen Tip für mich (vor allem, wenn ich etwas falsch gemacht habe)? :roll:

Re: Lookup im RequestForm

12. September 2014 10:54

Nachdem mir nun - außer Natalie - niemand einen Tip geben konnte, blieb nur noch rumprobieren...
... und manchmal hilft es :wink:

Zunächst habe ich ein neues LookupForm erstellt, welches dann auch nur noch die Artikelnummer sowie die Charge anzeigt. Ich konnte dann zwar mit "OK" oder Doppelklick übernehmen, hatte jedoch keinen Wert. Da ja zu einer Artikelnummer n-beliebige Chargen existieren können, habe ich einfach den aktuellen Record aus der LookupForm nochmals mit gLookupForm.GETRECORD(gItemLedgerEntry) abgefragt, und nun geht es! :-)

Für alle. die mal ein ähnliches Problem haben:

Code:
CLEAR(gLookupForm);
gItemLedgerEntry.RESET;
gItemLedgerEntry.SETCURRENTKEY(gItemLedgerEntry."Item No.");
gItemLedgerEntry.SETFILTER(gItemLedgerEntry."Item No.", lNo);
gLookupForm.SETTABLEVIEW(gItemLedgerEntry);

IF gLookupForm.RUNMODAL = ACTION::LookupOK THEN BEGIN
  gLookupForm.GETRECORD(gItemLedgerEntry);
  gCharge := gItemLedgerEntry."Lot No.";
END ELSE
  gCharge := '';

Re: Lookup im RequestForm

12. September 2014 10:57

Frank_S hat geschrieben:habe ich einfach den aktuellen Record aus der LookupForm nochmals mit gLookupForm.GETRECORD(gItemLedgerEntry) abgefragt, und nun geht es! :-)

Das hatte ich dir aber vorher (wenn auch indirekt) so vorgeschlagen ;-)

Natalie hat geschrieben:Schau mal in die Onlinehilfe von RUNMODAL (Form).

Dort ist nämlich das Codebeispiel mit GETRECORD.

Re: [gelöst] Lookup im RequestForm

12. September 2014 11:12

Natalie hat geschrieben:
Frank_S hat geschrieben:habe ich einfach den aktuellen Record aus der LookupForm nochmals mit gLookupForm.GETRECORD(gItemLedgerEntry) abgefragt, und nun geht es! :-)

Das hatte ich dir aber vorher (wenn auch indirekt) so vorgeschlagen ;-)

Natalie hat geschrieben:Schau mal in die Onlinehilfe von RUNMODAL (Form).

Dort ist nämlich das Codebeispiel mit GETRECORD.


Mmmhhh... Du meinst also, ich müßte mal richtig lesen? :shock:
Dann hast Du Recht... :-P
Ich hatte nämlich in der Online-Hilfe unter Favoriten lediglich das "REPORT.RUNMODAL" abgelegt, und dabei gar nicht darauf geachtet, daß es für FORM noch etwas anderes gibt... :lol:

Auf alle Fälle nochmals "Danke" Natalie!

P.S. Was mein Problem leider nicht gelöst hätte... habe die Recordvariable der LookupForm jetzt nochmal auf die ursprüngliche FORM 38 "Item Ledger Entries" umgebogen, und es klappt immer noch nicht. Aber egal, das Problem ist gelöst :wink: