Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: mgeidl am 28.04.11 - 11:09:48
-
Hallo zusammen,
ich hab mal eine Frage: ich hab eine Maske für eine Personalanforderung. In dieser Maske hab ich direkt drinnen einen Anhang erstellt. Wenn man nun ein Dokument mit dieser Maske erstellt und einen Doppelklick auf den Anhang macht, kann man diesen nur Öffnen, aber nicht bearbeiten :-( Und mit Öffnen werden die Änderungen ja nicht gespeichert.
Kennt da jemand eine Möglichkeit?
LG
Marietta
-
Hinterleg den Anhang in einem Einstellungsdokument und kopiere ihn beim Erstellen der Dokumente in ein Richtextfeld
-
Genau, das ist das allgemein übliche Vorgehen.
Ist das Attachment in der Maske gespeichert, dann steckt es ja im Design. Und logischerweise ist da nichts mit "Bearbeiten" ... ;)
Bernhard
-
und das Einstellungsdokument ist ein normales Dokument? Bin im Script noch in den Kinderschuhen ......
Danke jedenfalls für den Tipp
LG
Marietta
-
Ja
-
so, jetzt hab ich das ganze mal in einen agenten reingepackt. der agent wird mittels schaltfläche (neue anforderung - @ToolsRunMacro) aufgerufen und es funktioniert wunderbar.
allerdings steh ich jetz vor dem nächsten problem: in unserer mailschablone haben wir in der inbox sämtliche anträge drinnen. ich kann dort das @Toolsrunmacro aber net aufrufen, weil´s ja eine andere db is. für jede idee wär ich dankbar :-)
LG
Marietta
-
Es funktioniert wunderbar, aber Du kannst es nicht aufrufen. Hm, erklär' Dein Problem bitte nochmal
-
in der Datenbank selbst funktioniert es wunderbar.
da gibt´s eine aktion "neue Personalanforderung" und die ruft den Agenten mit u.a. Script auf
Nun soll die aktion "neue Personalanforderung" aber als aktion in die Inbox der Mailschablone - dort kann ich das aber nicht so machen :-((
Hoffe, jetzt is es verständlicher ....
LG
Sub Initialize
Dim workspace As New notesuiworkspace
Dim anforderung As notesdocument
Dim anhang As notesdocument
Dim typ As Variant
Dim collection As notesdocumentcollection
Dim options(4) As Variant
options(0)="Mitarbeiter"
options(1)="Leiharbeiter"
options(2)="Ferienarbeiter"
options(3)="geringfügig beschäftigt"
typ = workspace.Prompt (PROMPT_OKCANCELLIST, "Type wählen", "Bitte wählen Sie den Type der Anforderung", options(0), options)
If Not typ="" Then
Set anforderung=workspace.currentdatabase.Database.CreateDocument
Call anforderung.ReplaceItemValue("Form","Personalanforderung")
Call anforderung.ReplaceItemValue("was",typ)
Set collection=workspace.currentdatabase.Database.Search("select form='Anhang' & Anhangart='"+typ+"'",Nothing,1)
If collection.count=1 Then
Set anhang=collection.GetFirstDocument
Dim data As NotesRichTextItem
Dim body As New NotesRichTextItem(anforderung,"Body_MA")
Set data=anhang.GetFirstItem("Anhang")
Set body=anforderung.getfirstitem("Body_MA")
Call body.AppendRTItem(data)
Call body.Update
End If
Call workspace.EditDocument(True,anforderung)
End If
End Sub
-
Hi.
Wenn Du das Script 1:1 übernimmst versuchst Du, das neue Dokument in der Mailbatenbank anzulegen und nicht in der Personaldatenbank.
-
Wie Andre schon geschrieben hat, bist Du einfach nur in der falschen Datenbank.
1. Tipp
Definiere saubere Variablen. Anstelle von mehrfacher Verwendung von
workspace.currentdatabase.Database
setze die in eine eigene Variable
Dim db As NotesDatabase
Set db = workspace.currentdatabase.Database
Wenn Du dann die db mal ändern musst, brauchst Du das nur ein einziges mal im Script tun
2. Tipp
Verwende nicht die CurrentDatabase vom workspace, denn das ist bei der Aktion in der Maildatenbank eben diese und nicht die Anforderungsdatenbank.
Setze stattdessen die db in Abhängigkeit des Agenten (ohne nachzuschauen über CurrentAgent (wohl in NotesSession) und Parent des Agenten). Dann ist die Datenbank immer die, in der der Agent gespeichert ist.