Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Tibo am 13.03.08 - 08:02:37

Titel: Datei anhängen per Button??
Beitrag von: Tibo am 13.03.08 - 08:02:37
Hallo zusammen!

Ich habe folgendes Problem: Um es den Anwendern einfacher zu gestallten, soll es möglich sein, durch die Betätigung eines Buttons ein Dialogfenster des Explorers anzuzeigen, um sich dann eine Datei auszuwählen.

Ich habe bereits folgenden Code geschrieben:

Code
Sub Click(Source As Button)
	Dim ws As New NotesUIWorkspace
	Dim s As New NotesSession
	Dim db As NotesDatabase
	Dim uidoc As NotesUIDocument
	Dim newuidoc As NotesUIDocument
	Dim doc As NotesDocument
	Dim anhang As NotesRichTextItem
	Dim datei As Variant
	
	'Für Fehlerbehandlung: Name des aktuellen Objektes
	Const constrObjectName = "frmEingabe"
	
	'Aufruf der Fehlerbehandlung
	On Error Goto ErrHandler
	
	
	Set uidoc = ws.CurrentDocument
	Set db = s.CurrentDatabase
	Set doc = uidoc.Document
	
	
	'Anhang vorhanden?
	If doc.HasEmbedded Then
		Msgbox "Sie haben bereits ein PDF ausgewählt", 48, "Fehler"
		Exit Sub
	End If
	
	'neues Dokument?
	If doc.IsNewNote Then
		Set anhang = New NotesRichTextItem(doc, "posAhang")
	Else
		Set anhang = doc.GetFirstItem("posAnhang")
	End If
	
	
	'Dateidialog öffnen
	datei = ws.OpenFileDialog(False)
	'Abbruch, falls keine Datei ausgewählt wurde
	If Isempty(datei) Then
		Exit Sub
	End If
	
	Call uidoc.GotoField("posAnhang")
	
	If anhang.type = 1 Then
		Call anhang.EmbedObject(EMBED_ATTACHMENT, "", datei(0))
		Call anhang.Update
		doc.SaveOptions = "0"
		Call uidoc.Close(True)
		Set NewUIDoc = ws.EditDocument(True, doc)
		Delete uidoc 'Referenz auf das alte Frontend-Dokument löschen
		Set Doc = NewUIDoc.Document
		Call doc.RemoveItem("SaveOptions")
	End If
	
	
Ende:
	Exit Sub
	
ErrHandler:
	Call pdfOutputError(constrObjectName, Err, Erl(), Error())
	Resume Ende
	
End Sub

Doch leider funktioniert der leider nicht. Kann mir da jemand weiterhelfen?

Gruß Tibo
Titel: Re: Datei anhängen per Button??
Beitrag von: DerAndre am 13.03.08 - 08:08:50
Wie immer die gleiche Frage.
Was funktioniert nicht.
Ohne Fehlerbeschreibung bringt das nicht viel...
Titel: Re: Datei anhängen per Button??
Beitrag von: Tibo am 13.03.08 - 08:16:28
Sorry  ;)

Im Code läuft er bis zu der Stelle:

Code
If anhang.type = 1 Then

Ab:

Code
Call anhang.EmbedObject(EMBED_ATTACHMENT, "", datei(0))

mach er nichts mehr.
Titel: Re: Datei anhängen per Button??
Beitrag von: MadMetzger am 13.03.08 - 08:18:12
Was heißt macht nichts mehr? Kommt eine Fehlermeldung, oder wie? Schonmal mit dem Debugger geschaut?
Titel: Re: Datei anhängen per Button??
Beitrag von: Axel am 13.03.08 - 08:46:27
Auf die Schnelle ist mir ein Schreibfehler aufgefallen:

...
'neues Dokument?
   If doc.IsNewNote Then
      Set anhang = New NotesRichTextItem(doc, "posAhang")
   Else
      Set anhang = doc.GetFirstItem("posAnhang")
   End If
...


Tritt der Fehler nur bei neuen Dokumenten oder auch bei bestehenden auf? RTF-Felder reagieren manchmal etwas seltsam wenn das Dokument noch nicht gespeichert wurde.

Axel



Titel: Re: Datei anhängen per Button??
Beitrag von: gossifu am 13.03.08 - 09:16:25
Außerdem wird das Dokument nicht mit dem Anhang gespeichert.
Es gibt kein Save. Da bleibt dann auch der Anhang nicht drin.

Vielleicht kann man das auch mit Formula lösen:

Mit
Code
@Attachmentnames 

die Namen der evtl. vorhandenen Anhänge auslesen und auf die Dateiendung .pdf prüfen und wenn das alles korrekt ist mit
Code
@Command( [EditInsertFileAttachment] ; Datei ; Komprimieren )
ohne Angabe des Dateinamens aufrufen. Dann sieht amn auch gleich den Anhang, ohne speichern, schließen und öffnen.

mfg

Kjeld
Titel: Re: Datei anhängen per Button??
Beitrag von: Tibo am 13.03.08 - 09:36:53
Also, mit macht nicht mehr mein ich, dass der Code nur bis zu dieser Stelle läuft und dann einfach abbricht.

Leider hat es nicht an den Schreibfehler gelegen @Axel
trotzdem Danke!

@gossifu mit Formeln hab ich es auch schon verscuht, weiß leider nur nicht, wie ich dabei das Dialogfeld zur Auswahl der Datei aufrufe...
Titel: Re: Datei anhängen per Button??
Beitrag von: DerAndre am 13.03.08 - 09:40:51
Fehlermeldung? Du hast ja einen Errorhandler drin. Also sollte doch auch was ausgegeben werden.
Wenn nicht, ersetzt den Funktionsaufruf durch einen lokalen Errorhandler.
Titel: Re: Datei anhängen per Button??
Beitrag von: Axel am 13.03.08 - 09:44:23
...mit Formeln hab ich es auch schon verscuht, weiß leider nur nicht, wie ich dabei das Dialogfeld zur Auswahl der Datei aufrufe...

So:

@Command( [EditInsertFileAttachment]

Und um ganz sicher zu gehen, dass du im richtigen Feld bist, setzt du noch ein

@Command([EditGotoField]; "NamedesRTFFeldes");

davor.


Axel
Titel: Re: Datei anhängen per Button??
Beitrag von: Tibo am 13.03.08 - 10:36:39
Danke Axel, hat alles super geklappt!

Gruß Tibo
Titel: Re: Datei anhängen per Button??
Beitrag von: LN4ever am 13.03.08 - 11:12:46
Und wenn das Feld nur Anhänge aufnehmen soll, dann kann man sich den Zinnober  mit Buttons sparen, die im Web dann nicht funktionieren und einfach ein RICHTEXTLITE-Feld daraus machen, in dem man vorgibt, daß nur Dateianhänge ausgewählt werden können. Dann ist die Schaltfläche direkt am Feld da und funktioniert auch im Web.

Nutze die Bordmittel, wo immer es geht.

Gruß

Norbert
Titel: Re: Datei anhängen per Button??
Beitrag von: gossifu am 13.03.08 - 15:35:38
@Norbert: Ja, man sollte öfter mal direkt vor seine Füße sehen.
Warum einfach, wenns auch kompliziert geht.;)

mfg

Kjeld