Domino 9 und frühere Versionen > ND9: Entwicklung

Datenstruktur in DialogBox (Form) übergeben

<< < (2/3) > >>

Peter Klett:
ok, Vorhaben verstanden.

Ich denke, dass das allein schon wegen des Private nicht klappt. Übergeben als Variable kannst Du die Liste der Objekte m.W. nicht. Probieren würde ich, in einer Scriptbibliothek in den Globals eine (testweise ganz einfache) Variable zu definieren, diese im Script zu setzen und in der Dialogbox (also in der Maske, die dahinter liegt) darauf zuzugreifen. Natürlich muss die Maske die gleiche Bibliothek verwenden.

Wenn ich darauf wetten müsste, würde ich sagen, dass es nicht geht, aber einen Versuch ist es wohl wert.

Wir haben in einer unserer zentralen Scriptbibliotheken eine Variable globaledaten List As Variant, da können wir alles hineinpacken, was wir irgendwo anders wiederverwenden wollen, ob es aber soweit reicht, dass es in einer Dialogbox vorhanden ist? Will ich nicht wirklich glauben ...

Evtl. könntest Du die Daten der Objekte irgendwo ablegen (z.B. als ein XML oder in einem ähnlichen Format in einem Feld des Dokuments, mit dem die Dialogbox arbeitet) und beim Öffnen der Dialogbox die Daten von dort wieder in die innerhalb des Maskenscripts neu erstellten Objekte schreiben, damit könnte die Dialogbox recht allgemeingültig gehalten werden, da das aufrufende Script für die Daten sorgt, nicht die Box. Das hängt natürlich stark von den Daten innerhalb des Objekts ab.

Auf jeden Fall ein spannendes Thema ...

thkn777:

--- Zitat von: Peter Klett am 07.02.17 - 17:42:13 ---ok, Vorhaben verstanden.
--- Ende Zitat ---

Ich leider nicht  :-: :'(

Das Thema hört sich interessant an, aber ich verstehe im Moment nicht, was NICHT geht. So weit bin ich:

Button in Notesmaske:

--- Code: ---Sub Initialize
Dim uiws As New NotesUIWorkspace
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim res As Variant

Set db = session.Currentdatabase
Set doc = db.Createdocument()

res = Evaluate (|"eins":"zwei":"drei"|,doc)
doc.werte = res

If uiws.Dialogbox("atnotes1", True, True, False, False, False, False, "atnotes", doc, True, False, True) Then
Print "ausgewählt wurde " & doc.ergebnis(0)
End If
End Sub
--- Ende Code ---

Dazu eine Teilmaske mit Dialogliste "ergebnis", die die Vorgabewerte aus "werte" zieht.

Ich drücke den Button, die Teilmaske geht auf, aus der Liste wähle ich z.B. "zwei" aus, drücke OK  und in der StatusBar meines Notes Clients steht, daß ich "zwei" ausgewählt habe.

@Gutierrez
Kannst Du nicht einfach genauso ein temporäres Dokument erzeugen mit Deiner Schlüsselwortliste und dann den Dialog aufrufen? Wo genau klemmt es?

Hilf mir mal bitte, Dein Problem genauer zu verstehen. Vielleicht fällt mir dazu ja dann was ein...

Verwirrte Grüße,
Th.

Gutierrez:
Hallo thkn777,

schau mal bitte meinen dritten Post in diesem Thread an. Da ist das Problem konkret erläutert.
Ich hab leider keine simple Textliste, die ich im Zugriff haben möchte, sondern ein Liste mit Objekten, die beliebig komplex sein können.

Beste Grüße  8)

jBubbleBoy:
@Gutierrez: Das geht leider nicht.
Initiiere deine Objekte in der Dialogmaske, ggfs. muss du der Dialogmaske noch fehlende Werte zum Erzeugen der Objekte mit übergeben ... und Ergebnisse speichern nicht vergessen ;)

Tode:
Man kann tatsächlich über Remote- Binding und mittels gemeinsamer Script- Library sowas erreichen, das ist aber mega- heftig. Kannst Dich ja mal hier einlesen, wie das geht.
Das Beispiel ist zwar für das gemeinsame Verwenden von Variablen zwischen Ansicht und Maske, funktioniert aber auch mit zwei Dokumenten...

http://avatar.red-pill.mobi/nathan/escape.nsf//d6plinks/NTFN-75CGS2
http://avatar.red-pill.mobi/nathan/escape.nsf//d6plinks/NTFN-75CJ6F

Leider sind die Artikel sehr alt, und aus dem Internet quasi komplett verschwunden, weshalb ich Dir nur die verstümmelte Version verlinken kann, ohne Screenshots...

Das hier war mal der Original- Link, vielleicht gibt es den ja noch in irgendeiner Timemachine / in einem archiv:
www.lotus911.com/nathan/escape.nsf/d6plinks/NTFN-75CGS2

Titel war "ESCAPE VELOCITY Part 1 - The Revolution will not be televised"

Ich habe das schon implementiert, das geht tatsächlich, aber ist wirklich sehr komplex.

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln