Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: dasRalph am 11.08.02 - 20:29:44
-
Hallo!!!
Ich hab folgendes Problem:
Es wird ein neues Dokument erstellt und die Felder darin ausgefüllt, wenn alles ausgefüllt ist, dann soll durch ein klick das Dokument gespeichert werden, es soll in den Read-Modus wechseln und ein "Antwort"-Dokument erstellt werden (also neues Fenster mit dem Antwortokument).
Fragt jetzt bitte nicht, worum gleich eine Antwort, brauch ich so ;-)
Ich wollte das Wechseln in den Read-Modus mit
Sub Click(Source As Button)
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = workspace.CurrentDocument
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Set db = session.CurrentDatabase
Set doc = New NotesDocument( db )
Call doc.Save( True, True )
uidoc.EditMode = False
End Sub
machen, doch es geht nicht. Die Fehlermeldung ist "Dikumentbefehl ist nicht verfügbar"
Hat jemand einen Tip???
Danke
Ralph
-
Hallo Ralph,
hier deine Schritte ein wenig aufgedröselt :
Hier referenzierst Du auf das aktuelle, geöffnete Dokument.
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = workspace.CurrentDocument
Jetzt erstellst Du ein neuen Dokument in der aktuellen Datenbank im Backend und speicherst es, das funzt so auch mit Sicherheit ohne Probleme. Warum Du das allerdings machst, weiss ich nicht ???
Set db = session.CurrentDatabase
Set doc = New NotesDocument( db )
Call doc.Save( True, True )
Der nächste Schritt macht nur irgendwie keinen Sinn.
uiDoc.EditMode = False
Du willst ja jetzt das aktuelle Dokument schliessen und gleichzeitig ein neuen Antwortdokument erzeugen, also mache das doch auch. Merke Dir das aktuelle Dokument und erzeuge einfach ein neues, welches von der Property her ein Antwortdokument ist.
Ich spiele mal ein wenig rum und poste dann den Code hier.
Meff ;)
-
Hallo!!!
Ja also die Zeile "EditMode = False" ist die, die den Fehler macht :-(
ääähm bevor Du zuviel grübeln mußt, wofür ich Dir schon mal dankbar bin, das erste Dokument muss nicht geschlossen werden. Es soll wie folgt aussehen:
Ich hab eine Datenbank, wo der Nutzer einen Auftrag eingeben kann. Wenn er das "Auftragsdokument" geschrieben hat, dann soll dieses Dokument gespeichert werden, dann soll es nie weider geändert werden, wird per Script überwacht und verhindert.
So nun wurde das Dokument gespeichert, ich kann aber in die Felder noch was reinschreiben, deshalb wollte ich, dass das Dokument in den Read-Modus wechselt, es muss nicht geschlossen werden.
Danach soll ein Antwortdokument geöffnet werden, in dem der Nutzer eintragen kann, welcher Mitarbeiter für den Auftrag zuständig ist und dann eben automatisch eine Benachrichtigungsmail gesendet wird. Es soll ein Antwortdokument sein, damit man nachher in der Ansicht sich den Verlauf anschauen kann und es soll nicht selber im Auftrag sein, da sich die zuständigkeit im Verlauf der Bearbeitung noch ändern kann, das soll man dann halt alles in der Ansicht im zeitlichen Verlauf sehen können.
Ich hoffe, ich konnte meine Vorstellungen verständlich zu "Papier" bringen und sag schon mal DANKE!!!
Ralph
-
Hi Ralph,
das mit dem schützen des Dokumentes kannst Du doch eigentlich ganz einfach machen :
Vor dem speichern des Dokumentes setzt Du ein Flag in irgendein Feld (Bsp. Status) und fragst anschliessend vor jedem Speichern einfach ab, ob das Feld den entsprechenden Wert hat und sagst dann im Querysave einfach Continue = false. Beim nächsten Öffnen brauchst Du dann einfach nur im QueryModeChange auf das Feld prüfen und ebenfalls wieder Continue = false anzugeben.
Zu dem anderen Thema grübele ich morgen im Büro ein wenig weiter...
Bis denne
Meff ;)
-
Hallo!!!
Ich bin schon ein wenig weitergekommen
Sub Click(Source As Button)
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = workspace.CurrentDocument
Call uidoc.save
uidoc.EditMode = False
Set uidoc = workspace.ComposeDocument _
( "", "", "MainTopic" )
End Sub
Dies macht, was ich will, sprich Dokument speichern und dann das Dokument in den ReadModus bringen. Dies Sache hat nur einen Hacken, es bringt Notes zum Absturz, entweder ich nehm die Zeile
Set uidoc = workspace.ComposeDocument _
( "", "", "MainTopic" )
raus oder aber die Zeile
uidoc.EditMode = False
Beide zusammen wollen nicht, wenn ich eine weg lassen, dann gehts.
Gute Nacht
Ralph
-
Hi Ralph,
ich würde das uiDoc.EditMode = false rausnehmen. Du willst ja ein neues Dokument erzeugen. Vielleicht probierst Du einfach mal das mit dem Statusfeld aus, was ich zuletzt geschrieben hatte.
Meff ;)
-
Hi,
so was ähnlich, mit dem Statusfeld das Editieren verhindern, hab ich auch schon mal getestet. Das Feld nur im QueryModeChange riecht nicht aus, denn es gibt bekanntermaßen mehrere Wege ein Dokument im Editmodus zu öffnen und nicht immer wird dabei das QueryModeChange-Event angesprochen. Ich habs immer irgendwie geschafft das Dokument zu editieren und du weißt, User sind erfinderisch.
Das Resultat dieser Test war, ich hab Leser- und Autorenfelder eingebaut und schon liefs rund. Hast du schon mal daran gedacht.
Axel