Autor Thema: Datenstruktur in DialogBox (Form) übergeben  (Gelesen 3766 mal)

Offline Gutierrez

  • Aktives Mitglied
  • ***
  • Beiträge: 112
Datenstruktur in DialogBox (Form) übergeben
« am: 07.02.17 - 13:26:13 »
Moin liebe Gemeinde,

ich habe eine ScriptLibrary, die ein paar Klassen enthält.
Ein Agent hat diese ScriptLibrary eingebunden und tut mit den Klassen etwas - lädt Daten in die Strukturen.
Dann ruft der Agent eine NotesUIWorkspace.DialogBox() auf. Ich möchte diese geladenen Datenstukturen jetzt in der Form weiterverarbeiten/modifizieren.

Geht das überhaupt? ???

Beste Grüße

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Datenstruktur in DialogBox (Form) übergeben
« Antwort #1 am: 07.02.17 - 14:12:34 »
ja klar, warum sollte das nicht gehen?
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Gutierrez

  • Aktives Mitglied
  • ***
  • Beiträge: 112
Re: Datenstruktur in DialogBox (Form) übergeben
« Antwort #2 am: 07.02.17 - 14:38:48 »
Achso, wenn ich Datenstrukturen meine, dann meine ich nicht Textlisten, die ich in Items transportieren kann, sondern Objekte.

Ich stehe da gerade auf dem Schlauch.

Beste Grüße

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Datenstruktur in DialogBox (Form) übergeben
« Antwort #3 am: 07.02.17 - 14:55:55 »
Und was willst Du mit den Objekten in einer Dialogbox machen? Üblicherweise nimmt man Dialogboxen dazu, um Daten zu verändern. Dahinter liegt eine Maske, die dazu verwendet wird. Kannst Du Deine Objekte in einem Dokument mittels einer Maske darstellen, ist es dasselbe in einer Dialogbox. Letztlich sind es aber alles Items, die Du bearbeiten kannst. Was sollte es sonst sein?

Offline Gutierrez

  • Aktives Mitglied
  • ***
  • Beiträge: 112
Re: Datenstruktur in DialogBox (Form) übergeben
« Antwort #4 am: 07.02.17 - 16:04:17 »
Also etwas konkreter:

Ich habe eine Liste (Private m_lstListe List as MeineKlasse), innerhalb einer Klasse (AndereKlasse) wiederrum, die ich in einem Agent ausführe:

Code
Sub Initialize
  Dim cMyClass as New AndereKlasse
  Call cMyClass.DoSomething()
End Sub

DoSomething() füllt mir meine m_lstListe mit Daten z.B.

Code
Dim cTemp as New MeineKlasse
Set cTemp.DritteKlasse = New DritteKlasse
cTemp.EinfacheProperty = True

'Schleife
Set m_lstListe("KeyX") = cTemp 
'Ende Schleife


If ws.DialogBox("(Meine Form)",,,,,,,,,,ganz viele Parameter,,,,tempDocument,,,,,) Then

End If

Ich sortiere/filtere/aggregiere meine Daten also für die DialogBox. Und jetzt möchte ich meine Variable m_lstListe aber in Sub Click eines Buttons in der Form zur Verfügung haben.

Geht das so herum? (Sonst muss ich die Aufbereitung ins Init der Form verschieben oder sowas....)

Beste Grüße

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Datenstruktur in DialogBox (Form) übergeben
« Antwort #5 am: 07.02.17 - 17:42:13 »
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 ...
« Letzte Änderung: 07.02.17 - 18:11:17 von Peter Klett »

Offline thkn777

  • Aktives Mitglied
  • ***
  • Beiträge: 176
Re: Datenstruktur in DialogBox (Form) übergeben
« Antwort #6 am: 09.02.17 - 14:17:52 »
ok, Vorhaben verstanden.

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

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.
« Letzte Änderung: 09.02.17 - 14:19:37 von thkn777 »

Offline Gutierrez

  • Aktives Mitglied
  • ***
  • Beiträge: 112
Re: Datenstruktur in DialogBox (Form) übergeben
« Antwort #7 am: 09.02.17 - 14:29:34 »
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)

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.290
  • Geschlecht: Männlich
Re: Datenstruktur in DialogBox (Form) übergeben
« Antwort #8 am: 09.02.17 - 15:44:23 »
@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 ;)
Gruss Erik :: Freelancer :: KI-Dev, Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16 / OLI 2.0

--
Nur ein toter Bug, ist ein guter Bug!

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Datenstruktur in DialogBox (Form) übergeben
« Antwort #9 am: 09.02.17 - 16:01:44 »
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.
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Gutierrez

  • Aktives Mitglied
  • ***
  • Beiträge: 112
Re: Datenstruktur in DialogBox (Form) übergeben
« Antwort #10 am: 09.02.17 - 16:54:07 »
Vielen Dank für die Links. Ich mag es hart ;D
Ich versuche nächste Woche mal was darüber herauszufinden :D

Beste Grüße

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz