Autor Thema: Einlesen von Word-Formular-Felder  (Gelesen 5353 mal)

Offline cyperbob

  • Frischling
  • *
  • Beiträge: 10
Einlesen von Word-Formular-Felder
« 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


Offline Fedaykin

  • Aktives Mitglied
  • ***
  • Beiträge: 229
  • Geschlecht: Männlich
  • Ya Hya Chouhada!
Re: Einlesen von Word-Formular-Felder
« Antwort #1 am: 04.09.08 - 21:59:33 »
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

« Letzte Änderung: 05.09.08 - 07:05:19 von Fedaykin »
Ich sage Euch: "Man muss noch Chaos in sich haben, um einen tanzenden Stern gebären zu können."

Offline cyperbob

  • Frischling
  • *
  • Beiträge: 10
Re: Einlesen von Word-Formular-Felder
« Antwort #2 am: 05.09.08 - 09:38:36 »
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

Offline Neopi

  • Frischling
  • *
  • Beiträge: 20
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Einlesen von Word-Formular-Felder
« Antwort #3 am: 05.09.08 - 16:13:32 »
Hi,
Zitat
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
Verkompliziere das Einfache,
vereinfache das komplizierte
und Du lernst jeden Tag dazu.

Offline Fedaykin

  • Aktives Mitglied
  • ***
  • Beiträge: 229
  • Geschlecht: Männlich
  • Ya Hya Chouhada!
Re: Einlesen von Word-Formular-Felder
« Antwort #4 am: 05.09.08 - 16:34:38 »
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

« Letzte Änderung: 05.09.08 - 16:37:48 von Fedaykin »
Ich sage Euch: "Man muss noch Chaos in sich haben, um einen tanzenden Stern gebären zu können."

Offline cyperbob

  • Frischling
  • *
  • Beiträge: 10
Re: Einlesen von Word-Formular-Felder
« Antwort #5 am: 08.09.08 - 06:46:36 »
Hallo

vielen Dank für Deine Tips und lösungen. Ich probiere es mal aus
Vielen vielen Dank

Gruß

Rolf

Offline cyperbob

  • Frischling
  • *
  • Beiträge: 10
Re: Einlesen von Word-Formular-Felder
« Antwort #6 am: 09.09.08 - 08:30:09 »
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

Offline Fedaykin

  • Aktives Mitglied
  • ***
  • Beiträge: 229
  • Geschlecht: Männlich
  • Ya Hya Chouhada!
Re: Einlesen von Word-Formular-Felder
« Antwort #7 am: 09.09.08 - 18:07:35 »
Hi Rolf

Freut mich Dir helfen zu können.

Gruss
Remo
Ich sage Euch: "Man muss noch Chaos in sich haben, um einen tanzenden Stern gebären zu können."

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz