Autor Thema: Attachment in Feld einfügen ohne zu speichern  (Gelesen 3170 mal)

Offline Bille

  • Senior Mitglied
  • ****
  • Beiträge: 258
  • Geschlecht: Weiblich
  • Ich kam, sah und ... staunte!
Attachment in Feld einfügen ohne zu speichern
« am: 30.08.09 - 12:21:02 »
Hallo,

ich möchte in einem neuen Dokument über den OpenFileDialog ein Verzeichnis anbieten, aus dem der Benutzer eine Datei auswählen kann, die dann in ein Feld angehängt wird.
Praktisch genauso, als wenn der Benutzer selbst "Datei - anhängen" aufruft.

Der Auswahldialog für das Verzeichnis erscheint, jedoch wird die ausgewählte Datei nicht in das RichText-Feld geschrieben. Hängt das damit zusammen, dass hier das Dokument zuvor gespeichert werden muss?
Dies möchte ich jedoch nicht, da u. U. der Benutzer seine Eingaben wieder verwirft und dann trotzdem ein Dokument erstellt werden würde.

Wie kann ich das Problem sonst noch angehen?

Hier mein Script im PostOpen:
Code
		Dim Dateinamen As Variant
		Dateinamen = ws.OpenFileDialog (True,"Dateiauswahl", "Excel|*.xls", "V:\AbteilungXY\Organisation\......")		
		Dim doc As notesdocument
		Set doc = Source.Document 
		Dim RTFeld As NotesRichTextItem
		Set RTFeld = New NotesRichTextItem( doc, "Details")
		
		If  Isempty(DateiNamen)  Then
			Exit Sub
		End If
		
		Forall Datei In DateiNamen
			Set Details = RTFeld.EmbedObject(EMBED_ATTACHMENT, "", Datei)		
		End Forall
	

Gruß
Bille
Experience is the name
everyone gives to his mistakes.
                                             (Oscar Wilde)

Offline HH

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
Re: Attachment in Feld einfügen ohne zu speichern
« Antwort #1 am: 30.08.09 - 18:30:16 »
Ein RTFeld.update unmittelbar vor dem öffnen des neuen Dokuments könnte helfen.

Hubert

Offline Bille

  • Senior Mitglied
  • ****
  • Beiträge: 258
  • Geschlecht: Weiblich
  • Ich kam, sah und ... staunte!
Re: Attachment in Feld einfügen ohne zu speichern
« Antwort #2 am: 31.08.09 - 15:32:52 »
Hallo!

Unmittelbar vor dem Öffnen des neuen Dokuments heißt ja dann wohl "QueryOpen", oder?

Ich habe hier folgende Zeilen eingefügt:

Code
	Dim RTFeld As NotesRichTextItem
	Set RTFeld = source.Document.GetFirstItem ("Details")
	Call RTFeld.Update ()

Das ruft allerdings ein "Object variable not set" hervor, da Notes das Notesdokument nicht findet/finden kann.

Wie muss ich vorgehen, damit das mit dem RTFeld.Update funktioniert?

Bille
Experience is the name
everyone gives to his mistakes.
                                             (Oscar Wilde)

Offline HH

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
Re: Attachment in Feld einfügen ohne zu speichern
« Antwort #3 am: 01.09.09 - 10:58:23 »
Sorry, ich hatte überlesen, dass der Code im Postopen ausgeführt wird. Vom Ansatz her würde ich das in der Aktion programmieren, mit der du das neue Dokument erstellst.

Hubert

Offline jo@chim

  • Aktives Mitglied
  • ***
  • Beiträge: 246
  • Geschlecht: Männlich
Re: Attachment in Feld einfügen ohne zu speichern
« Antwort #4 am: 03.09.09 - 13:03:23 »
Hallo Bille,
ich habe das Problem so gelöst:

Code
Dim ws As New NotesUIWorkspace
Dim doc As NotesDocument
'Dem Frontend ein Backend-Objekt zuweisen:
Set doc = Source.Document
'Datei auswählen und anhängen oder was auch immer im RT-Feld anstellen:
'...
'Speicherabfrage des Frontend-Dokuments ausschalten
'(Du benötigst ein Feld "SaveOptions" in der Maske!)
Call Source.fieldsettext("SaveOptions","0")
'Frontend-Dokument schliessen
Call Source.close	
'Backend-Dokument speichern
Call doc.save(True,False)
'Backend wieder im Edit-Modus öffnen
Call ws.EditDocument(True,doc)
'Gespeichertes Backend-Dokument löschen
Call doc.Remove(True)

Et voila: Du hast in einem "neuen" Frontend eine Datei angehängt...
Gruss,
Achim
-------------------
IBM Certified Advanced Application Developer Lotus Notes and Domino 7

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz