Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Selin am 18.04.06 - 11:24:40

Titel: Anhang einfügen
Beitrag von: Selin am 18.04.06 - 11:24:40
Hallo Zusammen,

ich habe im Forum hier: http://atnotes.de/index.php?topic=20135.0

ein Script gefunden zum einfügen eines Anhangs in ein Dokument.

Sub Click(Source As Button)
   
   Const RTITEM_NAME$ = "Anhang"
   Const FULL_PATH$ = "C:\hallo.dot"
   
   Dim session As New NotesSession
   Dim uiws As New NotesUIWorkspace
   Dim db As NotesDatabase
   Dim rtitem As Variant
   Dim doc As NotesDocument
      
   Set db = Session.CurrentDatabase
   Set uiws = New NotesUIWorkspace
   Set doc = uiws.Currentdocument.Document
   
   Set rtitem = doc.GetFirstItem(RTITEM_NAME)
   
   If Not rtitem.Type = RICHTEXT Then
      Msgbox "Das Feld <" & RTITEM_NAME & "> ist kein Richtextfeld !", 48, "Fehler !"
      Exit Sub
   End If
   
   Call rtitem.AddNewLine( 1 )
   Call rtitem.EmbedObject ( EMBED_ATTACHMENT, "", FULL_PATH)
   Call doc.Save(True, True)
   
End Sub

Ab dem 1. Call funktioniert es bei mir nicht. "Object variable not set"

Woran kann das liegen?

Danke + Grüsse
Selin
Titel: Re: Anhang einfügen
Beitrag von: Wirsing am 18.04.06 - 11:34:24
Hast Du ein Feld, welches "Anhang" heisst und vom Typ RichText ist in Deinem Dokument?

Wann ruft Du diese Aktion auf?
In einem zum bearbeiten geöffneten Dokument?

Titel: Re: Anhang einfügen
Beitrag von: Selin am 18.04.06 - 11:42:50
ja, hab ich.
Titel: Re: Anhang einfügen
Beitrag von: Selin am 18.04.06 - 11:44:03
die zweite Frage habe ich übersehen.

Zitat
In einem zum bearbeiten geöffneten Dokument?

ja.
Ich habe eine Schaltfläche auf der Maske.
Beim Klicken soll die Datei "hallo.dot" in das RTFeld eingefügt werden.
Titel: Re: Anhang einfügen
Beitrag von: Untitled am 18.04.06 - 11:48:27
Also er stürzt bereits beim "Call rtitem.AddNewLine( 1 )" ab?

Dann wette ich, du hast das Dokument noch nicht gespeichert, bevor du diese Aktion auslöst  ;D
Titel: Re: Anhang einfügen
Beitrag von: Selin am 18.04.06 - 11:52:18
Zitat
Dann wette ich, du hast das Dokument noch nicht gespeichert, bevor du diese Aktion auslöst

Stimmt.
Aber es kann ja auch sein, dass der User zwar ein neues Dokument öffnet und dann den Anhang über den Knopf einfügt, dann aber feststellt, das er das Dokument ohne zu speichern verlassen möchte.


Titel: Re: Anhang einfügen
Beitrag von: Untitled am 18.04.06 - 11:54:29
Kann sein, ist aber von Notes aus leider technisch nicht möglich.

Du kannst lediglich das Dokument zwar abspeichern, Attachments einfügen usw. und falls der Benutzer nicht über den "Speichern"-Button das Dokument verlässt, es wieder löschen.
Titel: Re: Anhang einfügen
Beitrag von: Wirsing am 18.04.06 - 11:56:58
Ist das also bei einem neuen Dokument, welches noch nicht gespeichert wurde?
Denn dann kommt bei mir auch ne Fehlermeldung - aber bereits bei

...
 If Not rtitem.Type = RICHTEXT Then
...

Denn in einem neuen Dokument gibt es noch keine Felder.
Da funktioniert
...
Set rtitem = doc.GetFirstItem(RTITEM_NAME)
...
einfach nicht.

Du müsstest in diesem Fall ein RichTextItem erstellen (doc.CreateRichtTextItem(RTITEM_NAME)).

Grüsse

Holger
Titel: Re: Anhang einfügen
Beitrag von: Selin am 18.04.06 - 12:10:50
Danke. Hat funktioniert aber leider klappt das, was ich vorhatte wieder nicht.
Der User soll die Möglichkeit haben, den Anhag zu bearbeiten und die Änderungen zurückzuschreiben.
Hier wird mir beim Doppelklick auf den Anhnag wieder nur das Speichern und Öffnen angeboten.
Nicht aber das Bearbeiten

Habt ihr da eine Idee, wie ich es am besten machen könnte?
Titel: Re: Anhang einfügen
Beitrag von: Selin am 18.04.06 - 13:50:33
habs hiermit auch schon versucht.

http://atnotes.de/index.php?topic=29779.0

Sub Click(Source As Button)
   Dim session As New NotesSession
   Set db = session.CurrentDatabase
   Set doc = New NotesDocument( db )
   Set rtitem = New NotesRichTextItem( doc, "Anhang" )
   Set object = rtitem.EmbedObject _
   ( EMBED_ATTACHMENT, "", "C:\hallo.dot")
   doc.Form = "Dokument"
   doc.Subject = "Neues Dokument"
   Call doc.Save( True, True )
End Sub



Hier wird mir der Anhang aber erst nach dem Speichern/Schließen und erneutem Öffnen angezeigt.
Habs auch schon mit Aktualisieren versucht.

Edit: Habe gerade gesehen, dass er ein neues Dok anlegt. Also kann er mir das auf dem aktuellen gar nicht anzeigen  :-\
Muss es anders versuchen....

Danke + Grüsse
Selin

Titel: Re: Anhang einfügen
Beitrag von: gossifu am 18.04.06 - 14:39:43
Hallo,

ich würde das Script so beginnen
Code
Sub Click(Source As Button)
   
   Const RTITEM_NAME$ = "Anhang"
   Const FULL_PATH$ = "C:\hallo.dot"
   
   Dim session As New NotesSession
   Dim uiws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim db As NotesDatabase
   Dim rtitem As Variant
   Dim doc As NotesDocument
      
   Set db = Session.CurrentDatabase
   Set uiws = New NotesUIWorkspace
   Set uidoc = uiws.CurrentDocument
   Set doc = uidoc.Document

...

um dann am Ende das Dokument in der selben Instanz nochmal aufzurufen:
...
Code
   Set uidoc = uiws.EditDocument(True,doc,False,"",True,False)

End Sub


mfg

Kjeld