Autor Thema: Anhang einfügen  (Gelesen 3005 mal)

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Anhang einfügen
« 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
Windows XP
Notes 6.5

Offline Wirsing

  • Senior Mitglied
  • ****
  • Beiträge: 283
  • Geschlecht: Männlich
    • METZ CONNECT
Re: Anhang einfügen
« Antwort #1 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?

« Letzte Änderung: 18.04.06 - 11:42:48 von Wirsing »
6 Lotus Domino Server 9.0.1(FP5-7) auf Windows 2008R2 Server
ca. 450 Clients mit 8.5.x/9.0.1

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re: Anhang einfügen
« Antwort #2 am: 18.04.06 - 11:42:50 »
ja, hab ich.
Windows XP
Notes 6.5

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re: Anhang einfügen
« Antwort #3 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.
Windows XP
Notes 6.5

Offline Untitled

  • Senior Mitglied
  • ****
  • Beiträge: 364
    • Musiker24.ch - Musiker und Bands finden
Re: Anhang einfügen
« Antwort #4 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

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re: Anhang einfügen
« Antwort #5 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.


Windows XP
Notes 6.5

Offline Untitled

  • Senior Mitglied
  • ****
  • Beiträge: 364
    • Musiker24.ch - Musiker und Bands finden
Re: Anhang einfügen
« Antwort #6 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.

Offline Wirsing

  • Senior Mitglied
  • ****
  • Beiträge: 283
  • Geschlecht: Männlich
    • METZ CONNECT
Re: Anhang einfügen
« Antwort #7 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
6 Lotus Domino Server 9.0.1(FP5-7) auf Windows 2008R2 Server
ca. 450 Clients mit 8.5.x/9.0.1

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re: Anhang einfügen
« Antwort #8 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?
Windows XP
Notes 6.5

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re: Anhang einfügen
« Antwort #9 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

« Letzte Änderung: 18.04.06 - 13:53:24 von Selin »
Windows XP
Notes 6.5

Offline gossifu

  • Senior Mitglied
  • ****
  • Beiträge: 352
  • Geschlecht: Männlich
  • Dummheit schafft Freizeit
Re: Anhang einfügen
« Antwort #10 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
Immer lustig und vergnügt, bis der A.... im Sarge liegt. ;-)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz