Autor Thema: Dialogbox und Script  (Gelesen 3485 mal)

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Dialogbox und Script
« am: 11.03.03 - 11:50:01 »
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.)
« Letzte Änderung: 11.03.03 - 11:52:38 von Rob Green »
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Dialogbox und Script
« Antwort #1 am: 11.03.03 - 12:35:23 »
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
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Dialogbox und Script
« Antwort #2 am: 11.03.03 - 12:46:12 »
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.
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline cpo

  • Aktives Mitglied
  • ***
  • Beiträge: 176
  • Geschlecht: Weiblich
  • ...nichts wissen macht auch nichts!
Re:Dialogbox und Script
« Antwort #3 am: 12.03.03 - 15:46:33 »
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

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Dialogbox und Script
« Antwort #4 am: 12.03.03 - 16:01:13 »
@cpo

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

ata
Grüßle Toni :)

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Dialogbox und Script
« Antwort #5 am: 12.03.03 - 16:08:47 »
@cpo

... und QueryClose läuft auch. Wenn ich Validierungen zu machen habe, kommen die in QueryClose rein.

So oder so ähnlich kann das aussehen:

Sub Queryclose(Source As NotesUIDocument, Continue As Variant)
    If Not Source.DialogBoxCanceled Then
       If Source.Document.Feld = "" Then
          Messagebox "Feld darf nicht leer sein"
          Continue = False
       End If
    End If  
End Sub

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline cpo

  • Aktives Mitglied
  • ***
  • Beiträge: 176
  • Geschlecht: Weiblich
  • ...nichts wissen macht auch nichts!
Re:Dialogbox und Script
« Antwort #6 am: 12.03.03 - 17:22:01 »
Jau, aber dann weiß ich immer noch nicht, ob der User OK oder Cancel gedrückt hatte. Das krieg ich erst wieder im Aufruf der Dialogbox Funktion mit.
Und ich will ja nicht sämtliche Pflichtfelder ausfüllen lassen, wenn der User nur mal gucken und dann Abbrechen möchte....

Das mit dem dialogboxcancel im QClose klappte auch aus irgendeinem Grund nicht immer... war das so, dass Escape nicht als Cancel erkannt wird oder so?

Oder liegt es daran, dass ich einfach meine Standardfunktion für Dialogboxen so gern nehme?  ;D ;D ;D

CPO **heutefrühFeierabend** tschööö

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz