Moin allerseits!
Folgendes Phänomen hab ich festgestellt und frage mich, ob das so sein soll:
Ein Auswahl-Button liefert über eine @PickList eine SAP-Materialnummer. Die zugrundeliegende Ansicht (1. Spalte Matnr., 2. Spalte Mat-Text) ist grundsätzlich nach der ersten Spalte sortiert. Die 2. Spalte kann aber per Klick auf den Spaltentitel die Sortierung nach dem Mat-Text vornehmen (nach SAP-Nummer findet man Sachen so schlecht).
Das scheint aber schlecht für das anschließende @DbLookup zu sein: Wenn zuvor die zweite Spalte sortiert wurde (womit dann zumindest in der angezeigten Ansicht die erste nicht mehr sortiert ist), liefert das Feld, welches den per DbLookup gelieferten SAP-Text zeigen soll, nur eine Fehlermeldung "Eintrag im Index nicht gefunden".
Was ich dabei nicht verstehe:
Ich hätte gedacht, daß das "Sortierung anklicken" in der Ansicht nur in dem PickList-Dialog wirkt, aber nicht in dem Backend-@DbLookup im Anschluß. Dem scheint aber wohl nicht so zu sein?
Anbei noch ein wenig Code zur Verdeutlichung (der von dem Auswahl-Button):
FIELD R3Nummer := R3Nummer;
FIELD R3Nummer_Display := R3Nummer_Display;
FIELD R3Bez := R3Bez;
sapmat := @PickList( [Custom]:[Single]; ""; "Materials"; "SAP-Materialbezeichnung"; "Bitte Material auswählen"; 1);
saptext := @DbLookup( "Notes":""; ""; "Materials"; sapmat; 2);
@SetField("R3Nummer"; sapmat);
@SetField("R3Nummer_Display"; @TextToNumber(sapmat));
@SetField("R3Bez"; saptext)
Über eine Erleuchtung in der Hinsicht wäre ich dankbar. Fände es doof, für die Sache zwei verschiedene Ansichten zu benötigen, aber danach sieht es wohl aus..
Ciao
Sascha
Das ist doch nicht so schwer zu verstehen. Wenn du die benötigten Info in einer Spalte zusammenfasst, dann brauchst du kein DbLookup mehr. Die Picklist kannst du dann sortieren wie du lustig bist.
In konkreten Fall heißt dass:
Du fügst an deine Picklistansicht eine versteckte Spalte an, das ist bspw. die 5.Spalte (kann bei deiner Ansicht abweichen). In dieser Spalte kombinierst du die Felder sapmat + "~" + saptext (Die Feldnamen können bei dir abweichen.) Diese Spalte lässt du dir dann von @Picklist zurückgeben. Somit hast du schon beide Werte. Du musst sie nur noch trennen.
FIELD R3Nummer := R3Nummer;
FIELD R3Nummer_Display := R3Nummer_Display;
FIELD R3Bez := R3Bez;
temp := @PickList( [Custom]:[Single]; ""; "Materials"; "SAP-Materialbezeichnung"; "Bitte Material auswählen"; 5);
@SetField("R3Nummer"; @Word(temp; "~"; 1));
@SetField("R3Nummer_Display"; @TextToNumber(@Word(temp; "~"; 1)));
@SetField("R3Bez"; @Word(temp; "~"; 2))
Ich hoffe das ist jetzt etwas klarer geworden.
Axel