Domino 9 und frühere Versionen > ND7: Entwicklung

Problem/Frage:@PickList, @DbLookup und interaktive Sortierung der zweiten Spalte

(1/2) > >>

Sascha Seipp:
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):

--- Code: ---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)
--- Ende Code ---

Ü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

DAU-in:
Für @dblookups nehme ich immer eine eigene Ansicht, in der NIX umsortiert wird. Und die sind immer vor den Anwendern versteckt.

Grüsse

Dau-in

koehlerbv:
Anita spricht wahr. Für derartige programmatische Sachen immer eigene Ansichten verwenden (die man zudem wenigstens etwas durch Klammern um den Namen vom Otto-Normaluser versteckt.
Allein die Klammern sagen einem dann später: He, hier nicht dran drehen - das wird vom Code gebraucht!!

Bedenke: Die Ansicht, die da umsortiert wird, wird vom gleichen Client gecached, der dann auch das @dbLookup ausführt. Wenn dem nicht so wäre, würden Euch die Füsse einschlafen.

Bernhard

Axel:
Eine andere Alternative, die ich schon öfters mal eingesetzt habe ist, die Infos, die brauchst in einer versteckten Spalte der Ansicht zusammensetzen. Diese Spalte lässt du dir dann von @Picklist zurückgeben.

Spaltenformel: Feld1 + "~" + Feld2 + "~" + Feld3

Mit @Word kannst du dann die Werte wieder trennen.

Wenn du allerdings unterschiedliche Feldtypen hast oder die Werte aus unterschiedlichen Dokumenten geholt werden sollen, dann ist diese Lösung dafür nicht geeignet.


Axel
 

HH:
Wie verhält sich das, wenn du den Cache-Parameter auf NoCache oder ReCache setzt (abgesehen von den Zugriffszeiten)?

Hubert

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln