Lookup auf andere als vorbelegte Form

Hallo Aus einer kopierten Form 41 (Verkaufsangebot) möchte ich aus dem Feld Artikelnummer nicht die vorbelegte Form Artikelliste aufrufen, sondern eine eigene, welche nur wenig angaben enthält. Da der Aufruf noch abhängig ist von der Art, kann ich nicht einfach die LookupID nehmen. Das würde dann zwar für den Artikel funktionieren, nicht jedoch für Ressourcen. Ich habe versucht, das im OnLookup mit der Abfrage der Art und mittels RUNMODAL, wobei ich auf die neue Form komme, dort aber mit Doppelklick zwar zurückkomme aber ohne dass die Artikelnummer mitgenommen wird und die Verkaufszeile aktualisiert. Hängt das an etwas kleinem oder muss mehr programmiert werden? Gruss Jörg NAV 3.70

Hallo Jörg, ich denke du bist auf dem richtigen Weg, bei mir funktioniert es auf alle Fälle. Hier der Code, den ich in der Form im “No. - OnLookup” Trigger ergänzt habe (Neue Variable, LookupItem und NewForm) IF Type = Type::Item THEN IF FORM.RUNMODAL(NewForm,LookupItem) = ACTION::LookupOK THEN Rec.VALIDATE(“No.”,LookupItem.“No.”); Gruss Daniel

Hallo Daniel Vielen Dank. Dann ist NewForm die neue Form (Global, Form) und LookupItem die Tabelle hinter der Form(Global, Record, Item)? Gruss Jörg

Hallo Jörg, du musst natürlich für jeden “Type” den ensprechenden Aufruf programmieren, sobald Du eine Zeile Code in the OnLookup Trigger schreibest, ignoriert Navision die TableRelation… es muss also insgesamt irgendwie so aussehen, dieser Code ersetzt dir den Standard-Lookup, du kannst also den Teil “Item” einfach an deine Bedürfnisse anpassen. Die verwendenten Variablen sind bereits als standard definiert. CASE Type OF Type::" ": BEGIN IF FORM.RUNMODAL(FORM::"Standard Text Codes",StdTxt) = ACTION::LookupOK THEN VALIDATE("No.",StdTxt.Code); END; Type::"G/L Account": BEGIN GLAcc.RESET; IF FORM.RUNMODAL(FORM::"G/L Account List",GLAcc) = ACTION::LookupOK THEN VALIDATE("No.",GLAcc."No."); END; Type::Item: BEGIN Item.RESET; IF FORM.RUNMODAL(FORM::"Item List",Item) = ACTION::LookupOK THEN VALIDATE("No.",Item."No."); END; Type::Resource: BEGIN Resource.RESET; IF FORM.RUNMODAL(FORM::"Resource List",Resource) = ACTION::LookupOK THEN VALIDATE("No.",Resource."No."); END; Type::"Fixed Asset": BEGIN FA.RESET; IF FORM.RUNMODAL(FORM::"Fixed Asset List",FA) = ACTION::LookupOK THEN VALIDATE("No.",FA."No."); END; Type::"Charge (Item)": BEGIN ItemCharge.RESET; IF FORM.RUNMODAL(FORM::"Item Charges",ItemCharge) = ACTION::LookupOK THEN VALIDATE("No.",ItemCharge."No."); END; END; Saludos Nils

Hallo Nils Vielen Dank für die Hilfe, aber leider funktioniert es bei mir immer noch nicht. Wenn ich auf meiner neuen Form ok klicke, komme ich zwar zurück in die Form des Aufrufes, jedoch ohne Wert für No. Habe ich in der aufgerufenen Form, hinter der ja auch die Tabelle 27 ist, noch irgend etwas zu programmieren, damit der Wert von der aufgerufenen Form übergeben wird? Gruss Jörg

Hallo Jörg, das ist ja komisch, weil der gleiche Code hier funktioniert… diese Code muss natürlich in der Tabelle, im OnLookup Trigger des Feldes “No.” sein, auf Forms sollte man eh so wenig wie möglich programmieren… Saludos Nils

Hallo Nils Ich denke genau hier liegt mein Problem. Für mehrere Tochtergesellschaften muss ich nichts ändern. Nur für eine muss ich für den Verkauf sowenig wie nötig zeigen. Deshalb habe ich ja auch die neuen Forms gemacht. Ich könnte jetzt natürlich auf der Tabelle den Code einfügen, jedoch mit der Abfrage nach der Tochtergesellschaft. Dennoch besten Dank für Deine Hilfe Gruss Jörg

Hallo Jörg, wieso machst Du das ganze nicht abhängig von eine Option im Verkaufssetup? Dann kannst Du für jede Gesellschaft entscheiden, was angezeigt werden soll - die Standard-Produktliste oder eine anderes Formular. SalesSetup.GET; CASE SalesSetup."Sales Doc. Item Lookup" OF SalesSetup."Sales Doc. Item Lookup"::ItemList : BEGIN Item.RESET; IF FORM.RUNMODAL(FORM::"Item List",Item) = ACTION::LookupOK THEN VALIDATE("No.",Item."No."); END; SalesSetup."Sales Doc. Item Lookup"::OtherList : BEGIN OtherRec.RESET; IF FORM.RUNMODAL(FORM::"OtherList",OtherRec = ACTION::LookupOK THEN VALIDATE("No.",OtherRec."Item No."); END; END; Saludos Nils

Hallo Nils Wir haben uns für die vorherige Version entschieden, die läuft nach unseren Wünschen. Nochmals vielen Dank für die Hilfe. Gruss Jörg