Domino 9 und frühere Versionen > Entwicklung

Dialogbox und Script

(1/2) > >>

Rob Green:
hm....*Bretter vorm Kopp*

wenn ich aus einem bestehenden Dokument (im Edit Mode) heraus eine Dialogmaske aufrufe (basierend auf einer Teilmaske)...wie kann ich dann das, was ich in der Dialogbox eingegeben habe, mit Script innerhalb der Dialogbox verarbeiten, um weiter DialogBox Felder zu befüllen UND wenn ich die Dialogbox schliesse, wie schaufel ich dann Werte aus der Dialogbox ins Dokument (nein, nicht gleichnamige Felder...sondern berechnete Werte, die in verschiedene Felder des Docs geschrieben werden sollen)? Mir ist nicht ganz klar, worauf sich innerhalb der Dialogbox "uidoc = ws.currentdocument" zB bezieht..auf das Doc oder die Dialogbox? Oder muß ich die Dialogbox über ein weiteres uidoc1 = ws.currentdocument ansprechen? Hä.......öh....

Beispiel:
im Doc steht als Feld
Name = Robert
Vorname = Basic

in der Dialogbox
Name = Robert
Vorname = Basic
Tel.:
Fax:

wenn ich Tel. befülle, soll ein Script die Faxnummer befüllen in der Box.
Wenn ich die Box schliesse, soll das Doc Feld Name durch Telefon per Script ausgewechselt werden (ok, ein doofes Bsp. aber ein Bsp.)

Axel:
Hi,

ich hab das immer über eine sep. Maske für den Dialog gemacht.

Beisp.

...

Set db = session.CurrentDocument

Set dlgdoc = New NotesDocument(db)

'Felder aus aktuellem Dokument in Dialogmaske übernehmen
dlgdoc.Name = doc.Name
dlgdoc.Vorname = doc.Vorname

If workspace.DialogBox( "Dialogmaske", True, True, False, False, False, False, "Titel", dlgdoc, True ) Then

'Hier kann man die auf Felder der Dialogbox zugreifen und weiterverarbeiten
doc.Telefon = dlgdoc.Telefonnummer

End If

Innerhalb der Dialogbox bezieht sich "uidoc = ws.currentdocument" meines Erachtens auf das Dialogdokument.

Axel

Rob Green:
ok, muss das mal antesten, denn wenn ich mit Backendverarbeitung arbeite, brauche ich eigentlich keine Dialogbox, aber ein Ansatz ist es, ein neues Doc im Backend zu erstellen (von mir wegen auc speichern und anschließend removen). Spannend wird die Verwendung von UI Klassen. Mal gespannt, was er zB im Exiting Feld macht, wenn ich was ändere...ob er das in der Box ändert oder im Doc.

cpo:
Hi Rob,

ich mach das auch immer so wie Axel. Funktioniert prima. Du brauchst das dlgDoc noch nicht mal zu speichern. Du musst nur darauf achten, dass Du alle Felder setzt, die Du nachher gefüllt zurückhaben möchtest.
Events wie Exiting oder so klappen ganz hervorragend, Du baust die ja auf der Maske für die Dialogbox.
Das einzige, was ich nicht "ordentlich" hinbekomme, ist das Abfangen von Feldinhalten. Ich mache das halt nicht mit Validierungsformeln im Feld, sondern meist im Querysave der Maske. Und das Querysave greift bei Dialogboxen nicht. Da muß man dann im aufrufenden Script basteln...

CPO

ata:
@cpo

... aber das PostRecalc läuft in Dialogboxen...

ata

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln