Archiv

TechInfo

Auswahllisten jenseits der 32K Grenze

By Dirk Bergles

Tagtäglich erfreuen wir uns ja an der 32K Grenze von Notes. Ein Beispiel dafür sind Auswahllisten, z.B. für Kategorien, welche, auch durchaus berechtigt, gerne mal die 32K Grenze überschreiten und damit nicht mehr funktionieren.
Dafür haben wir nun einen Workaround gefunden, der etwas Linderung schafft.

Es ist die Auswahlmöglichkeit per @Prompt.

Eine @Formel darf intern wesentlich mehr Speicher nutzen als 32K. Sie darf es halt nur nicht in ein Feld oder ComputedValue zurück liefern. Folgendes Beispiel demonstriert die Lösung.
Im CMS an beliebiger Stelle einen Button erstellen mit folgender Formel:


_num := @Explode("1;2;3;4;5;6;7;8;9;0";";");
_ret := @DbColumn("":"NoCache";"":"";"LookUpStdCfgKey";1);
_num2 := @Explode("1;2";";");
_choiceList := (_num *+ _num) *+ _ret;
_choiceList2 := _num2 *+ ((_num *+ _num) *+ _ret);
_size := @Text(@Sum(@Length(_choiceList)));
_count := @Text(@Elements(_choiceList));
@Prompt( [OkCancelList] ; "Selection Test ("+_count + "/" + _size+")" ; "Please select something" ; "" ; _choiceList);
_size := @Text(@Sum(@Length(_choiceList2)));
_count := @Text(@Elements(_choiceList2));
@Prompt( [OkCancelList] ; "Selection Test ("+_count + "/" + _size+")" ; "Please select something" ; "" ; _choiceList2);


Dann einfach den Button ausprobieren.....

Es kommt im aktuellen DEV zu folgendem Ergebnis
Die 1. Auswahlliste hat 29900 Einträge und ist insgesamt 893500 Zeichen groß

Die 2. Auswahlliste hat 59800 Einträge und ist insgesamt 1,8 MB groß


Es gibt allerdings auch hier eine Einschränkung. (Nie vergessen wie arbeiten noch immer mit Notes)
Die Anzahl der Einträge darf nicht größer sein als 65536. Vermutlich nutzt er intern 2 Bytes zur Indizierung, oder was auch immer. Aber eine Auswahlliste mit mehr Einträgen muß erstmal kommen und dann auch erstmal sinnvoll sein.

Einen Kommentar erstellen