Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: mgeidl am 28.04.11 - 11:09:48

Titel: Anhang direkt in der Maske
Beitrag 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
Titel: Re: Anhang direkt in der Maske
Beitrag von: Peter Klett am 28.04.11 - 11:13:52
Hinterleg den Anhang in einem Einstellungsdokument und kopiere ihn beim Erstellen der Dokumente in ein Richtextfeld
Titel: Re: Anhang direkt in der Maske
Beitrag von: koehlerbv am 28.04.11 - 11:16:44
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
Titel: Re: Anhang direkt in der Maske
Beitrag von: mgeidl am 28.04.11 - 11:23:14
und das Einstellungsdokument ist ein normales Dokument? Bin im Script noch in den Kinderschuhen ......

Danke jedenfalls für den Tipp

LG
Marietta
Titel: Re: Anhang direkt in der Maske
Beitrag von: Peter Klett am 28.04.11 - 11:25:09
Ja
Titel: Re: Anhang direkt in der Maske
Beitrag von: mgeidl am 03.05.11 - 10:16:09
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
Titel: Re: Anhang direkt in der Maske
Beitrag von: Peter Klett am 03.05.11 - 10:30:36
Es funktioniert wunderbar, aber Du kannst es nicht aufrufen. Hm, erklär' Dein Problem bitte nochmal
Titel: Re: Anhang direkt in der Maske
Beitrag von: mgeidl am 03.05.11 - 10:35:39
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



Titel: Re: Anhang direkt in der Maske
Beitrag von: DerAndre am 03.05.11 - 11:12:52
Hi.

Wenn Du das Script 1:1 übernimmst versuchst Du, das neue Dokument in der Mailbatenbank anzulegen und nicht in der Personaldatenbank.
Titel: Re: Anhang direkt in der Maske
Beitrag von: Peter Klett am 03.05.11 - 11:25:35
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.