Habe nun noch ein kleines Errorhandling ergänzt und eine Abfrage eingebaut, ob sich Cursor in einem Richtextfeld befindet.
Werde ich gelegentlich noch in Best Practices Artikel aufnehmen.
Sub Click(Source As Button)
On Error Goto errHandler
Dim uiws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim vFilepath As Variant
Dim strFilepath As String
Dim strEndung As String
Set db = session.CurrentDatabase
Set uidoc = uiws.CurrentDocument
Set doc = uidoc.Document
'Abfrage ob Cursor in Richtextfeld
Dim rti As Variant
Set rti = doc.GetFirstItem(uidoc.CurrentField )
If ( rti.Type <> RICHTEXT ) Then
Msgbox "Bitte setzen Sie den Cursor in ein Richtextfeld," & Chr(10) & "um ein Bild einzufügen.",64 , db.title
Exit Sub
End If
SkipRTAbfrage:
vFilepath = uiws.OpenFileDialog( True, db.Title, "Supported Images|*.cgm;*.jpg;*.bmp;*.gif;*.jpeg", "X:\")
If Isempty(vFilepath) Then Exit Sub ' Script verlassen falls User keine Datei auswählt
Forall ImageList In vFilepath ' Durch die augewählten Dateien loopen
strFilepath = ImageList
'Hole die Dateiendung in den String, dabei mit LowerCase auf Kleinschreibung umgestellt
strEndung = Lcase$(Right$(strFilepath, 3))
Select Case strEndung
Case "gif":
Call uidoc.Import("GIF Image",strFilepath)
Case "jpg":
Call uidoc.Import("JPEG Image",strFilepath)
Case "cgm":
Call uidoc.Import("CGM Image",strFilepath)
Case "peg":
Call uidoc.Import("JPEG Image",strFilepath)
Case "pcx":
Call uidoc.Import("PCX Image",strFilepath)
Case "bmp":
Call uidoc.Import("BMP Image",strFilepath)
End Select
End Forall
exitScript:
Exit Sub
errHandler:
Select Case Err
Case 91
Resume SkipRTAbfrage
Case Else
Msgbox "Es ist ein Fehler aufgetreten." & Chr(10) & Chr(10) _
& "Fehlermeldung: " & Error$ & Chr(10) _
& "Fehlernummer: " & Err & Chr(10) _
& "Codezeile: " & Erl & Chr(10) _
,64,"Error"
Resume exitScript
End Select
End Sub
sorry, noch was zum ursprünglichen Thema ;)
Statt:
vFilepath = uiws.OpenFileDialog( True, db.Title, "Supported Images|*.cgm;*.jpg;*.bmp;*.gif;*.jpeg", "x:\")
die Einträge abtrennen mit:
vFilepath = uiws.OpenFileDialog( True, db.Title, "cgm-Bild|*.cgm|JPG-Bild|*.jpg;*.jpeg|BMP-Bild|*.bmp|GIF-Bild|*.gif", "x:\")
dann dürfte es auch mit dem Filter funktionieren (funzt jedenfalls bei mir mit Notes 5.07)
Gruß
sloe