Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: rar am 16.04.03 - 16:36:11

Titel: Irgendwie muß man doch so eine blöde Liste abspeichern können...
Beitrag von: rar am 16.04.03 - 16:36:11
Hallo liebe Leute!
Ich möchte eine Liste erstellen, die dann irgendwie im Dokument abspeichern und später wieder auf die Liste zugreifen. :P
Klingt einfach, ist es aber nicht. (Für mich nicht).

Ich dachte es mir ungefähr so:
Dim li List As Variant    
Dim arr(1) As Integer
arr(0) = 1
arr(1) = 2
li("eins") = arr
arr(0) = 3
arr(1) = 4
li("zwei") = arr
Dim ws As New NotesUIWorkspace
Dim doc As NotesDocument
Set doc = ws.CurrentDocument.Document
doc.Feldindemdielisteabgespeichertwerdensoll = li
Dim hiersolldielisterein As Variant
hiersolldielisterein = doc.Feldindemdielisteabgespeichertwerdensoll

Geht aber leider nicht.  :'(
Hat jemand von euch eine Idee, wie ich das machen kann?
lg
-rar
Titel: Re:Irgendwie muß man doch so eine blöde Liste abspeichern können...
Beitrag von: ata am 16.04.03 - 16:37:26
... die Liste in eine Array übernehmen, dann klappts...

ata
Titel: Re:Irgendwie muß man doch so eine blöde Liste abspeichern können...
Beitrag von: rar am 16.04.03 - 16:48:52
Hab ich mir auch schon überlegt.
Der (oder die?) Array den ich brauch könnte dann so ausschauen:
array(0) = "eins"
array(1) = "1"
array(2) = "2"
array(3) = "3"
array(4) = "zwei"
array(5) = "4"
array(6) = "drei"
array(7) = "5"
array(8) = "6"
Wie kann ich dann einem Wert mitgeben, daß er eine Überschrift  (eins,zwei,drei)  ist. Ich muß nämlich sowohl auf die Überschriften als auch auf die Werde zugreifen. :-\

-rar
Titel: Re:Irgendwie muß man doch so eine blöde Liste abspeichern können...
Beitrag von: ata am 16.04.03 - 16:53:27
... was meinst du mit Überschriften - in deinem Array gibt es Einträge, und das übergibst du per Backend mit

doc.Feldname = Arrayname

... wenn deine Einträge unterschiedliche Funktionen haben sollen, dann benötigst du ein zweites Array, das dir sysnoym die Funktionen übernimmt...

a(1) = "Eins"
a(2) = "1"

f(1) = "Header"
f(2) = "Value"

ata
Titel: Re:Irgendwie muß man doch so eine blöde Liste abspeichern können...
Beitrag von: rar am 16.04.03 - 17:06:45
Ich versteh nicht ganz für was das zweite Array ist.
Hier ist meine Problemstellung:
Ich habe n werte (Überschrift)("drei") und möchte jedem dieser Werte wieder n Werte (Inhalte)("5":"6") zuweisen. In einem Feld möchte ich dann einer Dialogliste die Überschriften zur Auswahl anbieten und anschließend in einem anderen Feld die Inhalte anzeigen.
Titel: Re:Irgendwie muß man doch so eine blöde Liste abspeichern können...
Beitrag von: ata am 16.04.03 - 20:07:18
... na jetzt wird langsam klar was du haben willst... etwas Geduld und ich skizzier dir den Weg...

ata
Titel: Re:Irgendwie muß man doch so eine blöde Liste abspeichern können...
Beitrag von: enny am 23.04.03 - 07:00:13
Wie wäre es denn damit: Du erstellst die einfach einen eigenen Type mit dem du dann arbeitest wie z.B.:

' Declarations:
Type t_meineLösung
   s_bez As String
   v_vals As Variant
End Type

' Initialize:

Sub Initialize
   Dim values() As t_meineLösung
   
   Redim values(0)
   
   values(0).s_bez = "eins"
   Redim values(0).v_vals(1)
   values(0).v_vals(0)=1
   values(0).v_vals(1)=2
End Sub

Du brauchst dann 'nur' noch eine Funktion um das ganze in ein Feld und wieder aus diesem rauszubekommen.
Titel: Re:Irgendwie muß man doch so eine blöde Liste abspeichern können...
Beitrag von: rar am 23.04.03 - 09:16:28
Ist ein guter Listenersatz. Das Problem mit dem "im Feld abspeichern" habe ich aber immer noch.

Ich löse jetzt das einfach in einem Mehrfachwertfeld, indem ich ein Array abspeicher, der so aussieht.
array(0) = "eins"
array(1) = "1"
array(2) = "2"
array(3) = "-"
array(4) = "zwei"
array(5) = "3"
array(6) = "-"
Den Speicher ich dann im Doc ab und befülle dann ein Feld im Queryopen mit den Überschriften ((0) und die Werte nach dem "-")
Wenn man dann in einem Dialogfeld eine der Überschriften auswählt, bekommt man in einemanderen Feld die Werte zwischen der Überschrift und dem "-" angezeigt.
In einem dritten Feld kann man dann neue Werte angeben und über ein Button die Werte in das alte Array reinschieben.
Ein Löschenbutton gibts auch noch.

Meiner Meinung nach ziemlich kompliziert um eine Liste zu ersetzen, aber es ist kurz vor dem Abschluß. :P
Danke dir trotzdem.
-rar