Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: cyperbob am 04.09.08 - 15:30:44
-
Hallo Foren-Gemeinde,
ich entwickele z.Zt. eine LN-Db zur Geschäftsreiseplanung und -vorkalkulation. Die Anträge für die Geschäftsreisen werden mittels Word-Formularen gestellt.
Nun stellt sich mir die Frage, ob es möglich ist, die einzeln Formular-Felder abzufragen und die Einträge in eine Maske zu übertragen. Ich habe das Forum schon durchsucht, aber nicht passendes gefunden.
Vielen Dank im voraus.
Grüße
RC
-
Hi RC (Seltsamer Vorname)
Habe einfach schnell mal was gecoded ohne gross zu testen. Könnte vielleicht etwas in diese Richtung sein.
Sub Test()
Dim Session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Set db = Session.CurrentDatabase
Set doc = New NotesDocument(db)
doc.Form = "Test"
FFValuesToNotesDoc "C:\Temp\Test.doc", doc
doc.Save False, False
End Sub
Sub FFValuesToNotesDoc(strFilePath As String, docNotes As NotesDocument)
Dim wrd As Variant
Dim doc As Variant
Dim objField As FormField
Set wrd = CreateObject("Word.Application")
With wrd
Set doc = .Documents.Open(strFilePath)
Forall objField In doc.FormFields
doc.ReplaceItemValue objField.Name, objField.Range.Text
Next objField
doc.Close False
End With
wrd.Quit
End Sub
Gruss
Remo
-
Hallo Remo,
vielen Dank für die Antwort und den Beispiel-Code. Ich denke das der Code in die Richtung führt die mein Problem löst.
Eine Frage hätte ich noch.
Ist bekannt, wie man einzelne Word Formularfelder anspricht?
vielen Dank im voraus.
Viele Grüße und schönes Wochenende
Rolf
-
Hi,
Die Anträge für die Geschäftsreisen werden mittels Word-Formularen gestellt.
Warum machst Du das nicht direkt in LN ? Da können direkt auch die Genehmigungen als Workflow usw. abgebildete werden.
Gruß
Martin
-
Hi Rolf
Würde sagen das wäre dann so etwas anstelle der Forall Schleife.
doc.FormFields("FeldName").Range.Text
Also Nummer oder Name (obwohl man bei Index eher Nummer erwartet). Ansonsten gibt es noch die Möglichkeit das über die Textmarken (Bookmarks) zu finden.
Gruss
Remo
-
Hallo
vielen Dank für Deine Tips und lösungen. Ich probiere es mal aus
Vielen vielen Dank
Gruß
Rolf
-
Hallo nochmal,
hier habe ich eine Lösung gefunden:
Sub Click(Source As Button)
Dim ws As NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim WordDocument As Variant
Dim WordApplication As Variant
Set ws = New NotesUIWorkspace
Set uidoc = ws.CurrentDocument
'Auswahl des Formulars
Dim files As Variant
files = ws.OpenFileDialog(True, "File List", _
"", "c:")
Dim messagelist As String
Forall filelist In files
messagelist = Trim$(messagelist) & filelist
End Forall
Messagebox messagelist
Set WordDocument= GetObject(messagelist,"Word.Document") 'Dokumet öffnen
Set WordApplication = WordDocument.Application 'Applikation zum Dokument
WordApplication.visible=True 'Applikation sichtbar machen
Call uidoc.FieldSetText( "pkleft",WordDocument.FormFields(4).Result)
Call uidoc.FieldSetText( "Vorname",WordDocument.FormFields(3).Result)
Call uidoc.FieldSetText( "Name",WordDocument.FormFields(2).Result)
Call uidoc.FieldSetText( "Name",WordDocument.FormFields(n+1).Result)....usw
Call uidoc.Save 'NotesDoc speichern
Call WordDocument.Close() 'nur aktuelles Dokument wird geschlossen
Set WordDocument = Nothing
If WordApplication.Documents.Count = 0 Then
Call WordApplication.Quit() ' geöffnete Word-Anwendung wird geschlossen
Set WordApplication = Nothing
End If
End Sub
viele Grüße
Rolf
-
Hi Rolf
Freut mich Dir helfen zu können.
Gruss
Remo