Das Notes Forum

Lotus Notes / Domino Sonstiges => OLE/COM-Programmierung => Thema gestartet von: C_T am 13.03.08 - 10:21:58

Titel: Mal wieder das Thema Export nach WORD
Beitrag von: C_T am 13.03.08 - 10:21:58
HI Leute

ich habe da mal wieder eine kleine Frage und bräuchte eure Unterstützung.

Ich habe einen Button, mit dem ich markierte DOkumente aus einer Ansicht in ein WordDokument exportieren kann. Dies klappt soweit auch ganz gut. Jedoch möchte ich in diesem Worddokument die Zeile mit dem "TEXT" mit dem Format "Überschrift 3" aus Word belegen, ausserdem möchte ich nachdem das WordDokument komplett gefüllt ist noch ein Inhaltsverzeichnis erstellen.

Das Mit dem Format müsste irgendwie mit "Style" gehen, jeodch hab ich das noch nicht hinbekommen,

das mit dem Inhaltsverzeichnis muss glaube ich mit "TableOfContents" gemacht werden!? Oder irre ich mich bei beidem Total?

Ich hoffe unter euch sind ein paar die sich mit dem Export nach Word besonders gut auskennen.

Hier der Code zum Exportieren der Dokumente:

Code
Sub Click(Source As Button)
	Dim workspace As New NotesUIWorkspace
	Dim session As New NotesSession
	Dim uidoc As NotesUIDocument
	Dim doc As NotesDocument
	Dim db As NotesDatabase
	Dim col As NotesDocumentCollection
	
	Dim Ins As Variant
	
	Set db = session.CurrentDatabase
	Set col = db.UnprocessedDocuments	
	

	Set WordApp = CreateObject("Word.Application")  
	Call WordApp.documents.add("c:\Word.dot")
	Set WordDoc = WordApp.activedocument	
	
	Set Ins=  WordDoc.Paragraphs(WordDoc.Paragraphs.Count).Range
	
	Set doc = col.GetFirstDocument
	Do Until doc Is Nothing
		Set uidoc = workspace.EditDocument(True, doc)
		uidoc.EditMode = True
		uidoc.AutoReload = False
		
		WordDoc.Paragraphs(WordDoc.Paragraphs.Count).Style = wdStyleHeading3         <-------------  Eigentlcih müsste das doch mit dieser Zeiel klappen oder?
		Call Ins.InsertAfter("TEXT: "+doc.TEST(0)+Chr$(10))
		
		Call WordDoc.ParagraphFormat.Style("Standard")

		Call uidoc.GotoField("Text")
		Call uidoc.SelectAll
		Call uidoc.Copy
		If Not Err = 4407 Then
			Err = 0
			Call Ins.InsertAfter("Text: "+Chr$(10))
			Set Past = WordDoc.Content
			Call Past.Collapse(wdCollapseEnd)
			Call Past.Paste
			Call Ins.InsertAfter(Chr$(10))
		End If
		
		Call Ins.InsertAfter(Chr$(12))
		uidoc.Close(True)		
		Set doc = col.GetNextDocument(doc)
	Loop
	
	Set WordDoc = WordApp.activedocument	
End Sub



Schonmal Vielen Dank für eure Hilfe

Gruß Christian T.
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: Axel am 13.03.08 - 10:45:32
Code
[codeWordDoc.Paragraphs(WordDoc.Paragraphs.Count).Style = wdStyleHeading3 ]
       

Wo setzt du den Wert für Count?


Ich habe das mal so gelöst

Wordapp.Selection.Style = wdStyleNormal

Hast du auch die wd-Konstanten definiert?

z.B.
Const wdStyleNormal = -1
Const wdStyleHeading3 = -4


Axel
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: C_T am 13.03.08 - 10:56:20
Das Count brauch ich ja definieren, denn das ist ja "ein Befehl"

und wieso muss ich den die wd sachen definieren? Ich dachte das wäre von Word vorgegeben.....
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: MadMetzger am 13.03.08 - 10:59:13
Aber woher soll Notes denn wissen, dass das Konstanten von Word sind? Deswegen musst du die Konstanten nochmal in Notes separat deklarieren.
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: Axel am 13.03.08 - 11:04:05
Count ist kein Befehl, sondern eine Eigenschaft. Sie liefert sie anzahl der Absätze in einem Dokument zurück.

Wenn du ein Absatzformat zuweisen willst, dann musst du angeben welchem Absatz.

Hier mal ein Beispiel aus der Word VBA-Hilfe:

Zitat
Dieses Beispiel weist allen Absätzen im aktiven Dokument abwechselnd die Formatvorlagen Überschrift 3 und Normal zu.

For i = 1 To ActiveDocument.Paragraphs.Count
    If i Mod 2 = 0 Then
        ActiveDocument.Paragraphs(i).Style = wdStyleNormal
    Else
        ActiveDocument.Paragraphs(i).Style = wdStyleHeading3
    End If
Next i

Axel
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: C_T am 13.03.08 - 11:10:55
OK Schonmal danke habe ich alles bis jetzt Verstanden und das mit dem Befehl war einfach nur mies ausgedrückt.

Das Beispiel hab ich mir natürlich auch schon angeguckt, jedoch komm ich damit einfach nicht weiter...

Wie muss ich den dann die Konstanten in Notes deklarieren mite dem wd teilen?

Wordapp.Selection.Style = wdStyleNormal

Hast du auch die wd-Konstanten definiert?

z.B.
Const wdStyleNormal = -1
Const wdStyleHeading3 = -4


Irgendwie kann ich mit dem "-1" und "-4" gar ncihts anfagen?

kannst du das genauer erörtern?

Christian

Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: MadMetzger am 13.03.08 - 11:28:04
Die Zahlen sind die tatsächlichen Werte hinter den Konstantennamen.

Irgendwo hier habe ich mal eine Notesdatenbank oder eine lss-Datei mit den Wordkonstanten gesehen, benutz mal die SuFu. Dann brauchst du die auch nicht selbst alle definieren...
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: C_T am 13.03.08 - 11:31:42
Ich habe da acuh eine gefunden, jedoch steht da sowas wie "wdStyleNormal" oder "wdStyleHeading3" nicht drin....

kannst du mir sagen woher du die Werte hsat??

Und sollte der rest meines Codes so laufen oder is da ach noch was falsch?
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: Axel am 13.03.08 - 11:32:18
Wie muss ich den dann die Konstanten in Notes deklarieren mite dem wd teilen?

So wie ich dir das in dem Beispiel geschrieben habe.

Const wdStyleNormal = -1

Irgendwie kann ich mit dem "-1" und "-4" gar ncihts anfagen?

kannst du das genauer erörtern?

In Word entspricht -1 der Konstante wdStyleNormal.

Guckst die hier: http://atnotes.de/index.php?topic=34333.0 (http://atnotes.de/index.php?topic=34333.0). Da kannst du dir eine Datenbank mit den entsprechenden Definitionen herunterladen. Oder du schaust im VBA-Editor von Word im Objektkatalog und suchst dir die wdStylexxx - Konstanten. Da findest du dann auch welcher Wert hinter einer Konstanten liegt.

Axel
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: C_T am 13.03.08 - 11:41:57
Hey Super soweit klappt es schonmal einwandfrei....


Wenn Ihr meinen zweiten Teil der Frage auch super beantworten könnt wäre das Spitze....

Wie kriege ich jetzt ein Inhaltsverzeichnis in das Dokument rein?
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: MadMetzger am 13.03.08 - 11:47:00
Ich weiß nicht genau, wie das geht, aber einen Anhaltspunkt kann das Aufzeichnen eines Makros von der Inhaltsverzeichniserzeugung bieten.

Das sagt mein Makro-Rekorder mit Word 2003:
Code
Sub Inhaltsverzeichnis()
    With ActiveDocument
        .TablesOfContents.Add Range:=Selection.Range, RightAlignPageNumbers:= _
            True, UseHeadingStyles:=True, UpperHeadingLevel:=1, _
            LowerHeadingLevel:=3, IncludePageNumbers:=True, AddedStyles:="", _
            UseHyperlinks:=True, HidePageNumbersInWeb:=True, UseOutlineLevels:= _
            True
        .TablesOfContents(1).TabLeader = wdTabLeaderDots
        .TablesOfContents.Format = wdIndexIndent
    End With
End Sub

Leider sehe ich mich auch nicht direkt in der Lage den Code nach LS zu portieren.

Fraglich ist für mich noch, wie du das Inhaltsverzeichnis dann an die richtige Stelle bekommst... Aber das kommt auf einen Versuch an.
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: C_T am 13.03.08 - 12:03:22
Ich denke das krieg ich schon hin hab mir das auch mal aufgenommen und dann schau ich mal und teste

jetzt habe ich aber direkt wieder 2 fragen....

und zwar

1. wie kriege ich text fett geschrieben? Ich habe folgendes ausprobiert...

Code
	
Set Ins =  WordDoc.Paragraphs(WordDoc.Paragraphs.Count).Range
Ins.Bold = True
Call Ins.InsertAfter("TEXT: ")
Ins.Bold = False



2. Wie kann ich den Text den ich aus einem RichText Feld (Notes) nach word "Paste" nochmal bearbeiten und z.b. da auch ein Format drauflegen?
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: Axel am 13.03.08 - 12:07:53
Mal aus dem Bauch heraus umgesetzt.

...
   Const wdTabLeaderDots = 1
   Const wdIndexIndent = 0
...
    With WordDoc
        .TablesOfContents.Add
        Range:=WordApp.Selection.Range,
        RightAlignPageNumbers:= True,
        UseHeadingStyles:=True,
        UpperHeadingLevel:=1,
        LowerHeadingLevel:=3
        IncludePageNumbers:=True,
        AddedStyles:="",
        UseHyperlinks:=True,
        HidePageNumbersInWeb:=True,
        UseOutlineLevels:= True
        .TablesOfContents(1).TabLeader = wdTabLeaderDots
        .TablesOfContents.Format = wdIndexIndent
    End With
...

Ich hab's nicht getestet ob's auch wirklich so funktioniert.


Axel
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: Axel am 13.03.08 - 12:13:35
1. wie kriege ich text fett geschrieben? Ich habe folgendes ausprobiert...

Code
	
Set Insert =  WordDoc.Paragraphs(WordDoc.Paragraphs.Count).Range
Insert.Bold = True
Call Insert.InsertAfter("Kategorie: ")
Insert.Bold = False



So z.B.

...
WordApp.Selection.Font.Bold = True   'Fett einschalten
WordApp.Selection.TypeText "Kategorie:"
WordApp.Selection.Font.Bold = False  'Fett ausschalten
...

Du kannst dir auch hier http://atnotes.de/index.php?topic=39875.0 (http://atnotes.de/index.php?topic=39875.0) noch ein paar Infos holen.



Axel
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: C_T am 13.03.08 - 13:13:57
Leider klappt das mit dem Bold ebend nicht so...

das merkwürdige ist jedoc, wenn ich das Bold mit Italic tausche schreibt er mir den Text Kursiv aber mit Fett klappt es nicht.....
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: Axel am 13.03.08 - 13:17:30
Was nutzt du denn für eine Schriftart?


Axel
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: C_T am 13.03.08 - 13:25:54
Arial

und ja habe auch schon versucht die kann Fett darstellen...
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: C_T am 13.03.08 - 15:51:18
So Ich habe den Code mehr oder weniger nochmals komplett über den Haufen geworfen. Anbei findet Ihr meinen neuen Code der bis jetzt auch super läuft.


Code
Sub Click(Source As Button)
	Dim workspace As New NotesUIWorkspace
	Dim session As New NotesSession
	Dim uidoc As NotesUIDocument
	Dim doc As NotesDocument
	Dim db As NotesDatabase
	Dim col As NotesDocumentCollection
	
	Dim Ins asVariant
	
	Set db = session.CurrentDatabase
	Set col = db.UnprocessedDocuments	
	
	On Error Resume Next
	
	Const wdStyleNormal = -1
	Const wdStyleHeading3 = -4	
	
	Set WordApp = CreateObject("Word.Application")  
	Call WordApp.documents.add("c:\WORD.dot")
	Set WordDoc = WordApp.activedocument	
	
	Set Ins =  WordApp.Selection
	
	Set doc = col.GetFirstDocument
	Do Until doc Is Nothing
		Set uidoc = workspace.EditDocument(True, doc)
		uidoc.EditMode = True
		
		With Ins
			.Style = wdStyleHeading3
			.TypeText "TEXT: " 
			.TypeText doc.TEST(0) + Chr$(10)
			.Style = wdStyleNormal
		End With

		Err = 0
		Call uidoc.GotoField("TEXT")
		Call uidoc.SelectAll
		Call uidoc.Copy
		If Not Err = 4407 Then
			With Ins
				.Font.Bold = True
				.TypeText "TEXT: "+ Chr$(10)
				.Font.Bold = False
				.Paste 
			End With
		End If
		
		Ins.TypeText Chr$(12)
		
		uidoc.Close(True)		
		Set doc = col.GetNextDocument(doc)
	Loop
	
	

	Set WordDoc = WordApp.activedocument	
End Sub


Jetzt bleiben mir immernoch fragen über bzw. aufgaben die ich erledigen möchte.

1. Weiß jemand von euch wie an den Anfang des Dokumentes springen kann mit dem Cursor????

2. Inhaltsverzeichnis erstellen (Krieg ich schon irgendwie selbst hin)

3. Wieder an den anfange des Dokuments springen (siehe 1)



Vielen Dank schonmal


P.S.

Nimmt das Forum noch spenden an? Ihr habt mir schon so oft geholfen, ich will mich revanchieren.
Schreibt mir einfach dazu ne PN

CU
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: klaussal am 13.03.08 - 15:57:13
Zitat
Nimmt das Forum noch spenden an?

JA:


http://atnotes.de/index.php?topic=20132.0 (http://atnotes.de/index.php?topic=20132.0)

 :) :) :)
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: C_T am 13.03.08 - 16:04:29
@Klaus(s)

Natürlich liest du nur das wichtigeste was????  ;D ;D ;D


Naj wie dem auch sei  Hier die Lösung auf meine eigene Frage

Code
		
Set Ins =  WordApp.Selection
With 	Ins
  .StartOf(wdStory)
  .TypeText "Dies ist ein TEst auf der 1. Seite...." + Chr$(12)
End With
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: klaussal am 13.03.08 - 16:07:05
Von der Kombi LoNo <-> Word habe ich keine Ahnung. Deshalb halte ich mich da raus.
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: C_T am 13.03.08 - 16:32:31
War ja nicht bös gemeint ich hoffe das kahm jetzt nicht so rüber...
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: C_T am 26.03.08 - 13:44:34
So hi, da bin ich mal wieder....

Erstmal Frohe Ostern nochmal nachträglich an alle.

Aber jetzt mal wieder zum unschönen des Tages, Mein Problem...  ;D  :D

Ich habe vor aus einem Feld (TEST1) welches ich in meiner Maske(doc) habe alle Attachments zu extrahieren, zu speichern und per link in das aus meinen voherigen Posts einzufügen.

Leider habe ich schon beim extrahieren Probleme vielleciht kann mir einer (oder mehrere) von euch helfen??? *liebguck*
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: MadMetzger am 26.03.08 - 13:48:41
Wo liegen denn deine Probleme?
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: m3 am 26.03.08 - 13:52:47
Zitat
Leider habe ich schon beim extrahieren Probleme

Meine Kristallkugel ist ebenso noch nicht - im Gegensatz zu den Glocken - aus Rom zurück.

Bitte sei daher etwas spezifischer.
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: ata am 26.03.08 - 14:00:27
... ich denke der Beitrag sollte nach Companions und OLE verschoben werden

Toni
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: Axel am 26.03.08 - 14:04:07
Das Codeschnipsel sieht soweit mal ganz gut aus, aber eben nur das Schnipsel.

Leider habe ich schon beim extrahieren Probleme vielleciht kann mir einer (oder mehrere) von euch helfen??? *liebguck*

Leider kann ich nicht hellsehen und meine Kristallkugel ist im Osterurlaub eingeschneit, so dass du notgedrungen, wenn du Hilfe haben willst, mehr Infos geben musst.

*nochlieberguck*


Du kennst doch das hier oft strapazierte Sprichwort:

Mehr Input -> mehr Output.


Axel
 
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: C_T am 27.03.08 - 08:29:55
HI

SO sry dachte es wär genug input, aber naja jeder kann sich irren....

Also nach meiner ansicht sollte ja der Code
Code
....CODE

Dim rtitem As Variant
Set rtitem = doc.GetFirstItem( "TEST1" )
If ( rtitem.Type = RICHTEXT ) Then
  Forall obj In rtitem.EmbeddedObjects
      Call obj.ExtractFile( "c:\test\" & obj.Name )
  End Forall
End If

....CODE

 die Attachments aus dem Feld ("TEST1") als Datei in den Ordner "c:\test" speichern. leider macht der das nicht.

Das Feld ist definitiv ein RichTextFeld und da drin steht text und sind folgende dateitypen hinterlegt:

*.txt
*.doc
*.xls

der debugger zeigt an das der code bis in die kleinste schleife reingeht, jedoch sehe ich auf meiner C Platte keine daten...
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: Axel am 27.03.08 - 08:44:46
Ändere mal deine Dim - Anweisung ab.

....CODE

Dim rtitem As NotesRichtextItem

Set rtitem = doc.GetFirstItem( "Problem" )
If ( rtitem.Type = RICHTEXT ) Then
  Forall o In rtitem.EmbeddedObjects
    If ( o.Type = EMBED_ATTACHMENT ) Then
      Call o.ExtractFile( "c:\test\" & o.Name )
    End If
  End Forall
End If

....CODE

Ansonsten kann ich keine Unstimmigkeiten entdecken.

Bekommst du eine Fehlermeldung?


Axel
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: C_T am 27.03.08 - 08:56:01
Nein leider bringt das auch nciht mehr...
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: klaussal am 27.03.08 - 09:04:37
Das Doc, das du da bearbeitest, ist schon abgespeichert ?

Was steht lt. Debugger in o.Name ?
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: C_T am 27.03.08 - 09:12:18
Hm merkwürdig

im  debugger kann ich unter Variablen kein o finden, jedoch geht er bis zu der zeile

"     Call o.ExtractFile( "c:\test\" & o.Name )"

doch er geht nuir eimal in die Forall schleife, obwohl 4 dokumente in dem rtfeld eingefügt sind...
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: Axel am 27.03.08 - 09:17:12
Füge mal in die Schleife die Zeile

Msgbox o.Name

ein.

Dann müsste er dir die Namen der Anhänge anzeigen.


Axel
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: klaussal am 27.03.08 - 09:24:48
Folgender Code (nicht schön) funktioniert !

Code
Sub Click(Source As Button)
	Dim rtitem As NotesRichtextItem
	Dim doc As NotesDocument
	Dim ws As New NotesUIWorkSpace
	Dim uidoc As NotesUIDocument
	Set uidoc = ws.currentDocument
	
	
	Set doc = uidoc.document
	
	Set rtitem = doc.GetFirstItem( "rt" )
	If ( rtitem.Type = RICHTEXT ) Then
		Forall o In rtitem.EmbeddedObjects
			If ( o.Type = EMBED_ATTACHMENT ) Then
				Call o.ExtractFile( "c:\austausch\" & o.Name )
			End If
		End Forall
	End If
End Sub

Deshalb wiederhole ich meine Frage:
Ist das Dokument bereits gespeichert ?
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: C_T am 27.03.08 - 11:01:20
So ich habe die Textbox eingefügt und diese wird laut debugger zwar ausgeführt, jedoch nicht angezeigt....


Des weiteren ja das DOkument ist gespeichert. Ich rufe diesen Code aus einer Ansicht auf und bearbeite alle markierten Dokumente... Siehe weiter oben...(immernoch selbes Projekt)

Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: klaussal am 27.03.08 - 11:07:43
Dann bitte mal den ganzen Code posten.
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: ata am 27.03.08 - 11:41:50
... das hört sich mehr als dubios an - was heist:

Zitat
So ich habe die Textbox eingefügt und diese wird laut debugger zwar ausgeführt, jedoch nicht angezeigt

Wenn sie ausgeführt wird, dann wird sie auch angezeigt - oder läuft das ganze als Background-Server-Agent - dann stehen die Namen im Log des Servers...

Toni
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: klaussal am 27.03.08 - 11:51:46
Zitat
dann stehen die Namen im Log des Servers...

... und dort würde man dann auch die Dateien finden...
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: C_T am 27.03.08 - 11:57:27
Hier ein Code Ausschnitt

Code
Sub Click(Source As Button)
	Dim workspace As New NotesUIWorkspace
	Dim session As New NotesSession
	Dim uidoc As NotesUIDocument
	Dim doc As NotesDocument
	Dim db As NotesDatabase
	Dim col As NotesDocumentCollection
	
	Dim Ins As Variant
	
	Set db = session.CurrentDatabase
	
	On Error Resume Next
				
	Const wdStyleNormal = -1
	Const wdStyleHeading3 = -4	
			
				
	Set WordApp = CreateObject("Word.Application")  
	Call WordApp.documents.add("c:\TEST.dot")
	Set WordDoc = WordApp.activedocument	
				
	Set Ins =  WordApp.Selection
				
	Dim view As NotesView
	Set view = db.GetView("aView")
	Set doc = view.GetFirstDocument
				
	Do Until doc Is Nothing
	                Set uidoc = workspace.EditDocument(True, doc)
		uidoc.EditMode = True
		uidoc.AutoReload = False
						
		With Ins 
		                .Style = wdStyleHeading3
			.TypeText "TEST1: " 
			.TypeText doc.TEST1(0) + Chr$(10)
			.Style = wdStyleNormal
		End With

			
		Dim rtitem As NotesRichTextItem
'...set value of doc...
		Set rtitem = doc.GetFirstItem( "FELD" )
		If ( rtitem.Type = RICHTEXT ) Then
			Forall obj In rtitem.EmbeddedObjects
				Messagebox(Cstr(obj.Name))
				Call obj.ExtractFile( "c:\test\" & obj.Name )
			End Forall
		End If
						
		Err = 0
		Call uidoc.GotoField("FELD")
		Call uidoc.SelectAll
		Call uidoc.Copy
		If Not Err = 4407 Then
			With Ins 
				.Font.Bold = True
				.TypeText "FELD: "+ Chr$(10)
				.Font.Bold = False
				.Paste 
				.TypeText Chr$(10) + Chr$(10)
			End With
		End If
		Ins.TypeText Chr$(12)
											
		uidoc.Close(True)		
		Set doc = view.GetNextDocument(doc)
		
						
	Loop
					
					
									
	WordApp.Documents(1).saveas(flag3)				
					
	End Sub


also im debugger geht die "Aktive Zeile" auf die Messagebox, jedoch wird diese nicht angezeigt....
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: Axel am 27.03.08 - 12:12:33
also im debugger geht die "Aktive Zeile" auf die Messagebox, jedoch wird diese nicht angezeigt....

Was heisst das? Hast du dann auch noch mal einen Schritt ausgeführt?


Axel
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: C_T am 27.03.08 - 12:45:53
Ums nochmal zu verständlichen,
ich bin in den debugger gegangenund habe jeden einzelnen Schritt durchgehen lassen von dem teil mit dem extrahieren der attachments.
Dabei ist die aktive zeile natürlich auch auf die zeile mit der messagebox gekommen, jedoch wurde keine angezeigt. ausserdem habe ich auch keinen fehler bekommen.
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: C_T am 27.03.08 - 12:58:04
HI Leute

Schande auf mein Haupt.....

Bei dem Errorhandling welches jetzt drin ist kann auch kein fehler kommen.

So nachdem ich das Errorhandling einmal etwas geändert habe, bekomme ich folgende Fehlermeldungen:

Type mismatch
FOR loop not initializied


Hier nochmal der Code


Code
						
Dim rtitem As NotesRichTextItem
'...set value of doc...
Set rtitem = doc.GetFirstItem( "TEXT" )
If ( rtitem.Type = RICHTEXT ) Then
  Forall obj In rtitem.EmbeddedObjects    
      Messagebox(Cstr(obj.Name))
      Call obj.ExtractFile( "c:\test\" & obj.Name )   
  End Forall
End If


Vielleciht könnt Ihr mir jetzt besser helfen
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: m3 am 27.03.08 - 13:05:38
1) Laut meiner Designerhilfe (V6.5) will Forall ein array, list, oder eine collection.

2) Ich würd mal überprüfen, ob rtitem.EmbeddedObjects überhaupt ein array oder nicht etwa empty zurückliefert, weil das Dokument keine Anhänge hat.
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: Axel am 27.03.08 - 13:07:15
Kann es sein, das in dem entsprechenden Dokument einfach keine Anhänge gespeichert seind?


Axel
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: klaussal am 27.03.08 - 13:08:26
@Axel,

es muss so sein, weil ich (wie geschrieben) diese Mimik getestet habe und es funzt.
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: Axel am 27.03.08 - 13:25:32
Ich habe mir mal eine Funktion gebastelt mit der man abfragen kann, ob das Dokument überhaupt Anhänge beinhaltet.


Code
Function xHasDocAttachments(doc As NotesDocument) As Integer
	
	Dim vEval As Variant
	vEval = Evaluate("@Attachments", doc)
	If vEval(0) = 0 Then 
		xHasDocAttachments = False
	Else
		xHasDocAttachments = True
	End If
	
End Function


Axel
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: C_T am 27.03.08 - 16:02:07
Hey Axel,

Super Vielen DAnk schonmal
wollte gerade danach fragen wie ich gucke ob ich anhänge habe....

kann man diese Prüfung auch irgendwie nur auf ein bestimmtes Feld beziehen???
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: Axel am 27.03.08 - 16:24:37
kann man diese Prüfung auch irgendwie nur auf ein bestimmtes Feld beziehen???

Mit den mir bekannten Mittlen nicht.

Du kannst höchstens mal versuchen die Rückgabe von rtitem.EmbeddedObjects auf Empty zu prüfen.
...
If ( rtitem.Type = RICHTEXT ) Then
If Not IsEmpty(rtitem.EmbeddedObjects) Then
     Forall o In rtitem.EmbeddedObjects
       If ( o.Type = EMBED_ATTACHMENT ) Then
         Messagebox(Cstr(o.Name))
         Call o.ExtractFile( "c:\test\" & o.Name )
       End If
     End Forall
  End If
End If
...

Ob das allerdings so funktioniert kann ich dir nicht sagen. Ich hab's nicht probiert.


Axel
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: ata am 27.03.08 - 19:46:08
... sollte eigentlich funktionieren...

Toni
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: C_T am 03.04.08 - 09:38:53
So müsste eignetlich jetzt soweit alles laufen, jedoch habe ich jetzt beim feintuning ein kleines Problem....


Und zwar starte ich mein Word Export mit einer Wordvorlage


Code
Call WordApp.documents.add("c:\WORD.dot")


Kann ich die Datei irgendwie in die Datenbank selbst hinterlegen und abrufen oder kann ich einfahc nachfragne ob die Datei in dem Pfad liegt der angegeben wurde und dann dementsprechend eine Fehlermeldung und eine erneute Eingabeaufforderung starten?

Die Sachen mit dem hinterlegen der Datei wäre mir das liebste.... Kann mir da wer helfen?

VIELEN DANK


Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: MadMetzger am 03.04.08 - 09:41:46
Du kannst die Vorlage in einem Profildokument als Dateianhand hinterlegen und dann in einen bestimmten Pfad, zB das Temp-Verzeichnis des Rechners vor deiner Aktion lösen.
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: C_T am 03.04.08 - 09:54:52
Kann du mir sagen wie ich das Temp verzeichnis des rechners anspreche?

und weißt du zufällig gerade aus dem FF einen Codeschnipsel um diese Vorlage anschließend aus dem Temp ordner zu löschen?
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: MadMetzger am 03.04.08 - 10:09:33
Schau dir das hier (http://atnotes.de/index.php?topic=14597.0) mal an...
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: C_T am 03.04.08 - 14:08:50
So erstmal vielen, vielen, vielen Dank an alle die mir geholfen haben.

Ich weiß ich manchmal zu wenig Input gegeben oder komische Fragen gestellt. Doch Ich habs nur durch eure Hilfe alles

soweit hingekriegt wie ichs wollte.

Nochmals Vielen Dank an alle und dieses Tolle Forum.
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: C_T am 09.04.08 - 08:45:50
So liebe Notesgötter,

jetzt abe ich nochmal ne Frage und ich hoffe ihr könnt mir erneut so gut mit rat beiseite stehen.

Es geht darum  dass ich für eine Funktion 2 Datein innerhalb der DB brauche. Ich habe die beiden Datein in ein Profildokument gespeichert, kann aber nur eine ein Feld ansprechen, das eine wird immer als leer angezeigt...

Vielen DANK

Code
Dim RTVorlage As NotesRichTextItem
Dim RTF1 As NotesRichTextItem
Dim RTF2 As NotesRichTextItem
Dim NP As String
Dim Dat1 As String
Dim Dat2 As String
Dim ProfDoc As Variant

Set ProfDoc = db.GetProfileDocument("mProf")
Set RTF1= ProfDoc.getFirstitem("Dat1")
Set RTF2= ProfDoc.getFirstItem("Dat2")
NP = session.GetEnvironmentString("Directory",True)			

			
Forall D1 In Dat1.EmbeddedObjects
    Call D1.ExtractFile( NP& "\" & D1.source)
    Dat1 = cstr(D1.source)
End Forall
				
Forall D2 In Dat2.EmbeddedObjects
    Call D2.ExtractFile( NP& "\" & D2.source)
    Dat2 = cstr(D2.source)
End Forall
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: Axel am 09.04.08 - 08:53:59
Es sind aber beides RTF-Felder und in beiden sind die Dateien definitiv vorhanden? Das Dokument wurde auch gespeichert?

Warum machst du die Variable profiledoc zu einem Variant-Typ und nicht zum Typ NotesDocument? Wo sind die DIM - Anweisungen für die beiden RTF-Felder?


Axel
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: C_T am 09.04.08 - 09:13:07
Die DIm anweisugnen nachgepflegt! Waren voher auch vorhanden nur vergessen hier reinzukopieren....

Und ja definittiv ist in beiden feldern eine datei vorhanden zumindest habe ich sie halt eingefügt. und das Profildokument ist auch gespeichert.

Und ich definiere es als variant weil ich des öfteren Probleme hatte als ich es als NotesDocument deklariert habe... mag daran liegen das es ein "Profildokument" ist...
Titel: Re: Mal wieder das Thema Export nach WORD
Beitrag von: Axel am 09.04.08 - 09:43:57
Hast du mal den Client neugestartet, nach dem du die Dateien angehängt hast? Profildokumente werden nämlich gecacht.

Ich persönlich würde das nicht mit Profildokumenten regeln sondern mit normalen Dokumenten, die nur von berechtigten Personen geändert werden dürfen.

Axel