Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet 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
-
... die Liste in eine Array übernehmen, dann klappts...
ata
-
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
-
... 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
-
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.
-
... na jetzt wird langsam klar was du haben willst... etwas Geduld und ich skizzier dir den Weg...
ata
-
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.
-
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