Domino 9 und frühere Versionen > Administration & Userprobleme

Exort von Datenaus Lotus Notes nach Word

<< < (3/5) > >>

MartinG:

--- Zitat --- Mehrere Dokument aus Lotus Notes in ein und dasselbe Formblatt in Word zu exportieren. da hänge ich halt. 
--- Ende Zitat ---

Das ist immer noch zuwenig Input, obwohl mein KnowHow vermutlich nicht ausreicht Dir zu helfen kann ich mit 99% Wahrscheinlichkeit sagen das Dir hier so keiner helfen kann.

Poste mal Deinen Code, Deine Aktionen etc...

kkleima1:
Also hier noch einmal eine genauere Beschreibung meines Problemes.

Ich habe mit Hilfe von NotesSQL eine Verbindung zu einer Word- Dokumentvorlage eingerichtet. Dieses Word Document habe ich als Serienbrief deklariert und meine Auswahlfelder aus der Notes DB eingefügt. Merge ich nun den Datensatz, so erhalte ich auch alle Einträge aus dem NotesDoc. So weit hervorragend. Jetzt muss ich aber mehrere Notes Dokumente in diesen "Serienbrief" einfügen. Zur Zeit erhalte ich für jedes Word-Dokument eine Wordvorlage.
Die Verbindung von NotesSQL erfüllt hierbei eigentlich die slebe Funktion wie Thomas sein Script.
Wie bekomme ich aber mehrere NotesDoc in ein Word-Doc ???


Klaus

thoge:
Hallo Klaus,

wir haben eine Word-Vorlage aufgebaut mit mehreren Abschnitten.

Das Worddokument habe ich mal als Bild angehängt.

Folgender Code füllt das ganze dann:


--- Code: ---Sub Initialize

Dim session As New NotesSession
Dim workspace As New NotesUIWorkspace
Dim db As NotesDatabase 'The current database
Dim view As NotesView
Dim varValue As Variant
Dim varFile As Variant
Dim strVorlage As String
Dim strSteuerdatei As String
Dim strPfad As String
Dim strHeader As String
Dim strBriefAnrede As String
Dim strAnrede As String
Dim iFileNum As Integer
Dim idx As Integer
Dim cSeriendruck As cSeriendruck2K

Dim entry As NotesViewEntry
Dim vc As NotesViewEntryCollection

On Error Goto ErrHandler

Set db = session.CurrentDatabase
Set view = db.GetView("AnR")
Set vc = view.AllEntries


'Pfad und Steuerdatei
strPfad = "C:\Vorlagen\ZNotes\"
If Right$(strPfad, 1) <> "\" Then strPfad = strPfad & "\"
strSteuerdatei = strPfad & "adressen.doc"

strVorlage = "C:\Vorlagen\zNotes\Adressenliste.dot"

'Header für Steuerdatei
strHeader =  "Funktion""" + "," + """Unterfunktion"""+ "," + """Gewerk1"""+ "," + """Gewerk2""" + "," + """Person""" +_
","+ """Projekt""" + "," + """Projektnummer"""_
+ "," +"""Firmenname""" + "," +"""Abteilung""" + "," + """Firmenadresse""" + "," + """Telefon"""+ ","  + """Handy""" + "," _
+ """Fax"""+ "," +"""eMail"

'Erzeugen der Steuerdatei und Schreiben des Headers
iFileNum = Freefile()
Open strSteuerdatei For Output As iFileNum
Write #iFileNum, strHeader

'Einfügen der "Datensätze" in Steuerdatei
Dim i As Integer
Dim varfunk1 As String
Dim varsubfunk1 As String

Set entry = vc.GetNthEntry(1)
Set doc = entry.Document
varfunk1 = Strright(doc.Funktion(0)," ")
varsubfunk1 = doc.Funktion2(0)


For i=1 To vc.count
Set entry = vc.GetNthEntry(i)
Set doc = entry.Document


Dim varfunk As String
Dim varfunk2 As String

Dim varsubfunk As String
Dim varsubfunk2 As String

varfunk2 = Strright(doc.Funktion(0)," ")

If i = 1 Then
varfunk=varfunk1
Elseif varfunk1 = varfunk2 Then
varfunk = ""
Else
varfunk1 = varfunk2
varfunk = varfunk2
End If
varsubfunk2 = doc.Funktion2(0)

If i = 1 And varsubfunk="" Or  varsubfunk="-" Or varsubfunk1 = varsubfunk2 Then
varsubfunk=""
Else
varsubfunk1 = varsubfunk2
varsubfunk = varsubfunk2
End If

Dim varproj As String
varproj = Right$( doc.Projekt(0),Len(doc.Projekt(0))-(Len(doc.Projektnummer(0))+1))

Dim vargew As Variant
Dim vargewstr As String
Dim total As Integer

vargew =doc.GetItemValue( "Gewerk" )

If vargew(0)= "" Then
vargewstr=""
Else
total=0
Forall a In vargew
If vargewstr = "" Then
vargewstr=Cstr(vargew(total))
total = total +1
Else
vargewstr=vargewstr & ", " & Cstr(vargew(total))
total = total +1
End If
End Forall
End If

Write #iFileNum, varfunk,varsubfunk, doc.Gewerk1(0),vargewstr, doc.Ansprechpartner(0)_
,varproj,doc.Projektnummer(0),doc.Unternehmen(0), doc.Abteilung(0),doc.U_Adresse(0), doc.A_Telefon(0)_
,doc.A_Handy(0), doc.A_Fax(0),  doc.A_eMail(0)

vargewstr = ""

Next

Close #iFileNum  'Schließen der Steuerdatei


Set cSeriendruck = New cSeriendruck2K   'Neue Instanz der Klasse cSeriendruck

Call cSeriendruck.OpenDoc(strVorlage)  'Öffnen der Serienbriefvorlage
Call cSeriendruck.Merge(strSteuerdatei) 'Verbinden mit Steuerdatei, erzeugt ein neues Dokument
Call cSeriendruck.ActivateWord  'Word in den Vordergrund bringen
Call cSeriendruck.CloseDoc(strVorlage)   'Schließen der Vorlage
Delete cSeriendruck

Exit Sub

ErrHandler:
If Err = 76 Then
Messagebox "Die Serienbrief-Datei kann nicht erstellt werden." + Chr$(13) + "Das Verzeichnis " + Strleftback(dlgdoc.xSteuerdatei(0),"\") +_
" ist nicht vorhanden" , 16, "Fehler"
Else
Messagebox "Die Serienbrief-Datei konnte nicht erstellt werden." + Chr$(13) + "Fehler: " + Str$(Err) + " -> '" + Error$ + _
"' in Zeile " + Str$(Erl) , 16, "Fehler"
End If

'Aufräumen
Close #iFileNum
If Not (cSeriendruck Is Nothing) Then Delete cSeriendruck  'Wenn eine Instanz der Klasse vorhanden, löschen
Exit Sub         

End Sub
--- Ende Code ---

HTH

Thomas

kkleima1:
Vieln Dank Thomas, das sieht genau so aus, wie ich es haben will. Werdes es umgehend umschreiben und ausprobieren. Ich lasse es Dich dann wissen, ob es funktioniert.

Klaus

kkleima1:
Hallo Thomas,

Habe nun das Script auf uns umgestellt und jetzt etwas was ich nicht beachtet habe. Das Script exportiert die Documente aus Lotus Notes der Reihe nach in Word. Jetzt muss ich aber eine Auswahl treffen, denn für eine Bestellung muss ich z.B. Doc Nr. 5,8 u.13 auswählen.
Hat jemand dazu eine Lösung ????

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln