Umfrage

Mehrere Datensätze nach Word exortieren

Import
0 (0%)
Export
6 (100%)

Stimmen insgesamt: 5

Autor Thema: Exort von Datenaus Lotus Notes nach Word  (Gelesen 12610 mal)

Offline kkleima1

  • Frischling
  • *
  • Beiträge: 8
  • Ich liebe dieses Forum!
Exort von Datenaus Lotus Notes nach Word
« am: 09.03.05 - 00:03:47 »
Da bei uns Lotus Notes 5.0.11 installiert ist, versuche ich nun mehrere Datensätze aus Lotus Notes per NotesSQL in ein Word- Document zu exortieren, finde aber keine richtige Lösung für das Problem. Ansonsten würde mir noch ein MySQL Server zur Verfügung stehen.
Vielleicht hat ja einer eine Lösung für mich.


Klaus
« Letzte Änderung: 09.03.05 - 00:06:34 von kkleima1 »

Offline ln-tg

  • Frischling
  • *
  • Beiträge: 14
Re: Exort von Datenaus Lotus Notes nach Word
« Antwort #1 am: 09.03.05 - 07:49:22 »
Warum willst du über NotesSQL nach Word exportieren? Ein Stream in eine Textdatei mit einem Print der Werte und dem anschliessenden Öffnen der Datei in Word geht einfach. Oder ein Agenten, der ein Wordobjekt öffnet und dann mit VBA's TypeText die Daten exportieren.

Thomas

Offline kkleima1

  • Frischling
  • *
  • Beiträge: 8
  • Ich liebe dieses Forum!
Re: Exort von Datenaus Lotus Notes nach Word
« Antwort #2 am: 09.03.05 - 15:55:12 »
Vielen Dank für deinen Input, aber hast Du evtl. auch einen Ansatz für solch ein Script?

Offline thoge

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 533
  • Geschlecht: Männlich
Re: Exort von Datenaus Lotus Notes nach Word
« Antwort #3 am: 09.03.05 - 18:01:28 »
s 6.5.5 w2k3 5
c 6.5.5 wxpp 180

Offline MartinG

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.802
  • Geschlecht: Männlich
Re: Exort von Datenaus Lotus Notes nach Word
« Antwort #4 am: 09.03.05 - 18:04:29 »
Für den Wordexport gibts eine Unmenge an Beispielen im Internet, zwei davon setze ich ein. Eines ist meine ich aus Eknoris Schatzkiste und eines aus der Sandbox...

Würde auf jeden Fall auch keine Zwischenschritte einbauen, man kommt eigentlich bei "normalen" Dokumenten problemlos nach MS Word (und ich bin kein Programmierer). Was IMHO nicht geht sind Richttext-Felder, bzw. vermutlich gehen die auch über irgendeinen "Bärentrick"...
Martin
Wir leben zwar alle unter dem gleichen Himmel, aber wir haben nicht den gleichen Horizont.
KONRAD ADENAUER

Offline thoge

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 533
  • Geschlecht: Männlich
Re: Exort von Datenaus Lotus Notes nach Word
« Antwort #5 am: 09.03.05 - 18:11:37 »
Hier noch ein Beispiel eines Scriptes, den ich in meiner persönlichen Adressdatenbank einsetze, um einen Geschäftsbrief zu erstellen (Auswahl einer Adresse -> Agent aufrufen in Aktionsleiste).

Als Lib nutze ich "libWord" aus o.a. Link. (an dieser Stelle besten Dank an Axel)

Code
Sub Initialize
	
	Dim session As New NotesSession
	Dim db As NotesDatabase
	Dim doc As NotesDocument 
	Dim collection As NotesDocumentCollection
	Dim cWord As cWord
	Dim strVorlage As String
	Dim strTemp As String
	
	Set db = session.CurrentDatabase	
	Set collection = db.UnprocessedDocuments
	Set doc = collection.GetFirstDocument
	
	strVorlage = "C:\Vorlagen\zNotes\z_br_g.dot"
	
'Neue Instanz der Klasse cWord
	Set cWord = New cWord
	
'Neues Dokument auf Basis der Vorlage erstellen. 
	Call cWord.CreateNewDoc(strVorlage)
	
'Einfügen der Daten in entsprechende Formularfelder
	Call cWord.InsertAtTM("Anrede", doc.Anrede(0))
	Call cWord.InsertAtTM("Firmenname", doc.Firmenname(0))
	Call cWord.InsertAtTM("Strasse", doc.OfficeStreetAddress(0))
	Call cWord.InsertAtTM("Firmenadresse", doc.Firmenadresse(0))
	Call cWord.InsertAtTM("Land", doc.Land(0))
	Call cWord.InsertAtTM("Briefanrede", doc.Briefanrede(0))
	
	
'Ausführen eines Makros in Worddokument
	Call cWord.ActivateWord ' Word in den Vordergrund
	
	Delete cWord
	
	
End Sub

Wie gesagt, dass ist nur ein kleines Beispiel, funzt aber wunderbar.

HTH

Thomas
« Letzte Änderung: 09.03.05 - 18:23:00 von thoge »
s 6.5.5 w2k3 5
c 6.5.5 wxpp 180

Offline kkleima1

  • Frischling
  • *
  • Beiträge: 8
  • Ich liebe dieses Forum!
Re: Exort von Datenaus Lotus Notes nach Word
« Antwort #6 am: 09.03.05 - 18:24:40 »
Vielen Dank erst einmal für Eure Hilfe, aber das ist immer noch nicht das was ich suche.
Beispiel: Verschiedene User stellen in einer DB zum Beispiel eine Anforderung von IT- Material. Nun will ich diese Anforderungen (z.B. 3) in ein Wordformblatt exportieren.
Mit einem Datensatz funktioniert das ja auch hervorragend, aber mehrer Lotus Notes Datensätze in eine einzige Wordvorlage zu exortieren bekomme ich einfach nicht hin. Alles was ich bisher hier gefunden habe exportiert immer nur einen Datensatz in ein Word- Dokument.

Offline thoge

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 533
  • Geschlecht: Männlich
Re: Exort von Datenaus Lotus Notes nach Word
« Antwort #7 am: 09.03.05 - 18:40:39 »
Hallo Klaus,

aber auch das ist möglich mit der o.a. Lib.

Ich nutze da die Serienbrieffunktion mit der ausgewählte Datensätzokumente einer Ansicht dann in ein einziges Worddokument (vergleichbar mit Etikettendruck) gepumpt werden.

Man muss sich in der lib ein bisschen einarbeiten, die zu erzielenden Ergebnisse sind jedoch sehr gut. Die Mühe lohnt sich auf jeden Fall.

HTH

Thomas
« Letzte Änderung: 09.03.05 - 18:49:34 von thoge »
s 6.5.5 w2k3 5
c 6.5.5 wxpp 180

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Exort von Datenaus Lotus Notes nach Word
« Antwort #8 am: 09.03.05 - 18:46:27 »
Das "Ich schaffe es nicht" ist auch eine schlechte Aufforderung zur Hilfe: WO sollen wir denn helfen ? WO hast Du ein Problem - es ist doch ziemlich egal, ob ein Dokument (nicht Datensatz - sowas gibt es in Notes nicht) oder mehrere die Daten liefern.

Mehr Input - mehr Output. Das alte Spiel.

Bernhard

Offline kkleima1

  • Frischling
  • *
  • Beiträge: 8
  • Ich liebe dieses Forum!
Re: Exort von Datenaus Lotus Notes nach Word
« Antwort #9 am: 09.03.05 - 18:57:57 »
Hallo Thomas u. Bernhard. Vielen Dank für die Hilfe, aber es ist nicht das man es nicht schafft, sondern dass man manchmal halt etwas auf der Leitung steht, und da sind aspekte von aussen ganz nutzbar.
Thomas das mit dem Serienbrief funktioniert ja auch einwandfrei, aber anscheinend stehe ich trotzdem auf der Leitung. Mehrere Dokument aus Lotus Notes in ein und dasselbe Formblatt in Word zu exportieren. da hänge ich halt.

Offline MartinG

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.802
  • Geschlecht: Männlich
Re: Exort von Datenaus Lotus Notes nach Word
« Antwort #10 am: 09.03.05 - 19:13:28 »
Zitat
Mehrere Dokument aus Lotus Notes in ein und dasselbe Formblatt in Word zu exportieren. da hänge ich halt. 

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...
Martin
Wir leben zwar alle unter dem gleichen Himmel, aber wir haben nicht den gleichen Horizont.
KONRAD ADENAUER

Offline kkleima1

  • Frischling
  • *
  • Beiträge: 8
  • Ich liebe dieses Forum!
Re: Exort von Datenaus Lotus Notes nach Word
« Antwort #11 am: 09.03.05 - 19:37:43 »
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

Offline thoge

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 533
  • Geschlecht: Männlich
Re: Exort von Datenaus Lotus Notes nach Word
« Antwort #12 am: 09.03.05 - 19:45:50 »
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

HTH

Thomas
s 6.5.5 w2k3 5
c 6.5.5 wxpp 180

Offline kkleima1

  • Frischling
  • *
  • Beiträge: 8
  • Ich liebe dieses Forum!
Re: Exort von Datenaus Lotus Notes nach Word
« Antwort #13 am: 09.03.05 - 20:03:52 »
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

Offline kkleima1

  • Frischling
  • *
  • Beiträge: 8
  • Ich liebe dieses Forum!
Re: Exort von Datenaus Lotus Notes nach Word
« Antwort #14 am: 09.03.05 - 21:14:41 »
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 ????

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Exort von Datenaus Lotus Notes nach Word
« Antwort #15 am: 09.03.05 - 21:49:20 »
NotesUIWorkspace.PicklistCollection

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Exort von Datenaus Lotus Notes nach Word
« Antwort #16 am: 09.03.05 - 22:59:02 »
NotesUIWorkspace.PicklistCollection

Ähm, oder einfacher bzw. intuitiver für den Anwender:

Lass den User in einer View Dokumente markieren. Diese arbeitest Du dann entsprechend ab.
Siehe NotesDatabase.UnprocessedDocuments

Allerdings sind dort dann die Dokumente unsortiert. Um diese dann noch sortiert zu bekommen, bevor die mit dem Export loslegst, kannst Du z.B.
  • die Collection abarbeiten und den entsprechenden (zu sortierenden) Feldwert auslesen in ein Array, z.B. strDocArray(intCount) = doc.Feld(0) & doc.UniversalID
  • Dann sortierst Du das Array mit einer ArraySort-Routine (gibts auch hier im Forum)
  • nun dimmst Du Dir ein NotesDocument-Array - z.B. Redim docArrayFinal(coll.Count - 1) as Variant
  • jetzt eine ForAll - Schleife über das Feldwert-Array strDocArray
  • In der Forall setzt Du dann docArrayFinal(intCount) = db.GetDocumentByUNID(Right$(i, 32))

Nur mal grob aufgezeigt....  ::)

Nimm zum Sortieren der DocCollection aber *nicht* die im Web verfügbaren Routinen, da dort meist mit NotesDocumentCollection.AddDocument gearbeitet wird, was aber nicht zuverlässig funktioniert (falsche Reihenfolge!).
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Exort von Datenaus Lotus Notes nach Word
« Antwort #17 am: 10.03.05 - 09:08:24 »
Hi,

welche Office (bzw. Word)-Version setzt du denn ein.

Ich frage deshalb, weil ich vor kurzem in eine ganz böse Falle getappt bin. Ich habe in unserer Adressdatenbank eine Serienbrief- und eine Etiketten-funktion eingebaut. Die Steuerdatei erstelle ich dabei genau wie im Script von thoge in Antwort #12.

Wir hatten solange Office 2000 im einsatz und da war alles in Butter, aber nach dem Update auf Office 2003, kam es gerade beim Etikettendruck bei Adressen mit Umlauten zu recht seltsamen Effekten. Teilweise ware chinesische Schriftzeichen dabei.

Nach einigen Versuchen habe ich die Erstellung der Steuerdatei komplett auf andere Beine stellen müssen. Ich habe nun ein Worddokumentmit einer zweizeiligen Tabellen, die für jedes Feld eine Spalte hat. in der ersten Zeile stehen die Feldnamen, die dann in das Serienbrief-Dokument eingefügt werden. Ab der zweiten Zeile füge ich dann die Daten aus Notes ein.

Von Zelle zu Zelle springe in mit 
Const wdCell = 12
Set objWord = CreateObject("Word.Application")
objWord.Selection.MoveRight(wdCell)

Wenn ich diese Anweisung in der letzten Spalte der letzten Zeile ausführe, wird eine neue Tabellenzeile angehängt. Das Ganze speichere ich dann als Word-Dokument ab.

Damit funktioniert der Seriendruck dann auch sauber mit Umlauten.


Axel


Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Exort von Datenaus Lotus Notes nach Word
« Antwort #18 am: 10.03.05 - 10:03:37 »
Hmmm, einmal mehr Zeichensatzprobleme ........... tja ....
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline MartinG

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.802
  • Geschlecht: Männlich
Re: Exort von Datenaus Lotus Notes nach Word
« Antwort #19 am: 10.03.05 - 10:11:44 »
...und blauäugig wie ich bin, dachte ich das dieses Thema inzwischen auf Windows Maschinen Geschichte ist.
Martin
Wir leben zwar alle unter dem gleichen Himmel, aber wir haben nicht den gleichen Horizont.
KONRAD ADENAUER

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz