Supportnet Computer
Planet of Tech

Supportnet / Forum / SW-Sonstige

Drucken icnl. Anhänge, geht das?





Frage

Hallo an alle Lotus Notes Freunde, Ich möchte alle markierten Mails vom Post Eingang incl. Anhänge wie zum Beispiel Word Dokumente auf ein schlag Drucken! Geht das? Gruss Niko

Antwort 1 von logic

Hi,

von Haus aus: nein.

Du könntest höchstens z.B. die Anhänge per Script in ein Temp-Verzeichnis lösen und von dort aus bearbeiten, also z.B. in der jew. Anwendung starten und dann drucken - ggf. in Verbindung mit API.

Logic

Antwort 2 von Niko

Oh je,
ein Script!

Danke für die Antwort, aber leider kann ich keine Scripte schreiben!
Kannst Du mir helfen?

Wenn ja, währe echt Super von dir!

Gruss
Niko

Antwort 3 von logic

Hast Du den Notes Designer und kennst Du Dich mit Notes-Datenbank-Entwicklung aus?
Wenn nein: dann hat es leider keinen Zweck, sorry. Selbst mancher fortgeschrittener Notes-Entwickler hat damit noch Probleme.

Einen Copy&Paste fähigen Code gibt es nicht. Muss immer angepasst werden...

Logic

Antwort 4 von Niko

Hallo Logic,

Ich habe den Notes Designer und bin aber kein Profi für Notes-Datenbank-Entwicklung!
Kannst Du mit dieser Information was anfagen?

Gruss
Niko

Antwort 5 von logic

Hi Niko,

sorry, dann wirst Du leider keine Chance haben.
Das ganze ist nicht ganz trivial, und Programmierkenntnisse sollte man dazu echt haben.

Logic

Antwort 6 von Niko

Hallo Logic,

Danke trotzdem!

Niko

Antwort 7 von logic

Kein Problem.

Wenn es Dir reicht, dass alle Anhänge ausgewählter Mails nur in ein Verzeichnis gelöst werden sollen, kannst Du dieses copy&paste-fähige Script nehmen.

Dazu in der Inbox einen neuen Button anlegen.

Dann in Declarations reinkopieren:
Type BROWSEINFO
	hOwner As Long
	pidlRoot As Long
	pszDisplayName As String
	lpszTitle As String
	ulFlags As Long
	lpfn As Long
	lParam As Long
	iImage As Long
End Type
Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (Byval pidl As Long, Byval pszPath As String) As Long
Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long


Direkt reinkopieren (wird Function):
Function BrowseFolder (path As String, windowtitle As String) As String
	
	Dim X As Long, bi As BROWSEINFO, dwIList As Long
	Dim wPos As Integer
	Dim cam2 As String
	
	bi.pszDisplayName = path
	bi.hOwner = hWndAccessApp
	bi.lpszTitle = title
	bi.ulFlags = BIF_RETURNONLYFSDIRS
	
	dwIList = SHBrowseForFolder (bi)
	cam2 = Space$(512)
	X = SHGetPathFromIDList(Byval dwIList, Byval cam2)
	
	If X Then
		wPos = Instr (cam2, Chr(0))
		BrowseFolder = Left$ (cam2, wPos - 1)
	Else
		BrowseFolder = ""
	End If
	
End Function


Eigentliches Script:
Sub Click(Source As Button)
Dim ws As New NotesUIWorkspace
Dim session As New NotesSession
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Dim rtitem As Variant
Dim folder As String
folder = BrowseFolder ("","")
Set db = session.CurrentDatabase
Set collection = db.UnprocessedDocuments
Set doc = collection.GetFirstDocument

While Not (doc Is Nothing)

Set rtitem = doc.GetFirstItem( "Inhalt" ) 'Hier das entsprechende RT-Feld angeben
If ( rtitem.Type = RICHTEXT ) Then
Forall o In rtitem.EmbeddedObjects
Call o.ExtractFile( folder+"\" & o.Name )
End Forall
End If
Set doc = collection.GetNextDocument(doc)
Wend
End Sub


Logic

Antwort 8 von Niko

Hallo Logic,
erst mal Vielen Dank für die Hilfe!!

Leider habe ein Problem damit!
Was meinst Du damit:
"Dazu in der Inbox einen neuen Button anlegen."
Wie erstelle ich ein Button in der Inbox?

Ich Nerve wa?

Gruss
Niko

Antwort 9 von logic

Hi Niko,

sorry, aber nur den Designer zu haben reicht leider nicht. Du würdest jetzt wirklich gefärden, dass danach gar nichts mehr geht.

Ich empfehle:
- gutes Buch zu Notes Programmierung besorgen
- Designer-Hilfe (F1 wenn Designer offen)
- evtl. eine Schulung besuchen

$Inbox ist ein Ordner, dort kann über das Menü ein Button hinzugefügt werden.

TMC

Antwort 10 von logic

ups das war zu schnell

TMC.org oder so ähnlich (hab jetzt den link nicht mehr exakt parat) hatte da auch mal eine Anleitung.

Logic