Aktuelle Zeit: 16.07.2018 12:32

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Mit ComatePlus Kontrollkästchen in Word aktiv setzen
BeitragVerfasst: 19.01.2018 11:02 
Offline

Registriert: 18.01.2018 17:02
Hallo zusammen,

ich möchte gerne mit ComatePlus ein Kontrollkästchen in Word aktiv setzen.

Meine Suche ist bisher nicht von Erfolg gekrönt.

Für Excel habe ich das hier im Forum zum Auslesen gefunden:

Code:
ExcelObject\GetIntegerProperty("ActiveSheet\Shapes('Check Box 163')\ControlFormat\Value")


Das jetzt nur für Word und zum Setzen.

Vielleicht kann mit hier jemand ja unter die Arme greifen.


Gruß
Meier


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Mit ComatePlus Kontrollkästchen in Word aktiv setzen
BeitragVerfasst: 06.04.2018 08:59 
Offline

Registriert: 18.01.2018 17:02
Hallo zusammen,

hat denn keiner eine Idee?

Letztendlich muss ich in Word automatisiert Haken setzen. Wie immer das aussehen mag, ich bin für jede Idee dankbar.


Gruß.
Meier


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Mit ComatePlus Kontrollkästchen in Word aktiv setzen
BeitragVerfasst: 06.04.2018 09:24 
Offline
Benutzeravatar

Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9
erstell mal bitte ein Beispiel-DOC und lade es irgendwo hoch.

Grüße ... Peter

_________________
einfach ist schwierig


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Mit ComatePlus Kontrollkästchen in Word aktiv setzen
BeitragVerfasst: 06.04.2018 10:47 
Offline

Registriert: 18.01.2018 17:02
Hallo Peter,

vielen Dank für deine Rückmeldung. Ich habe noch Hoffnung. :bounce:

Ich habe nicht herausgefunden wie man eine Datei hochladen kann, aber vielleicht hilft das Bild schon mal:

https://imgur.com/a/zxSrg

Die Haken sollen von außen gesetzt werden, weil ich die Informationen in einem Purbasic-Programm habe und
ein Word-Export machen muss, in dem dann die Haken bereits gesetzt sind.

Gruß.
Meier


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Mit ComatePlus Kontrollkästchen in Word aktiv setzen
BeitragVerfasst: 06.04.2018 11:18 
Offline
Benutzeravatar

Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9
das Bild ist schon mal ein Anhaltspunkt.

Allerdings wäre die DOC-Datei schon extrem hilfreich.

Vielleicht hiermit? https://filehorst.de

Grüße ... Peter

_________________
einfach ist schwierig


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Mit ComatePlus Kontrollkästchen in Word aktiv setzen
BeitragVerfasst: 06.04.2018 13:08 
Offline

Registriert: 18.01.2018 17:02
Aha... Danke.

http://filehorst.de/d/ccywmaDu
http://filehorst.de/d/ccoobaix

Ich habe mal zwei Dateien hochgeladen. Mir ist es eigentlich egal, ob ich später das doc-Format manipuliere oder vorher das xml-Format.

Gruß.
Meier


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Mit ComatePlus Kontrollkästchen in Word aktiv setzen
BeitragVerfasst: 06.04.2018 15:38 
Offline
Benutzeravatar

Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9
:freak: jetzt weiß ich wieder, warum ich die Office-Produkte so liebe...

ok, anbei ein Code, der Dir hoffentlich ein wenig weiterhilft.

Anmerkungen:

* Seltsam ist, dass die Kontrollkästchen beide den gleichen Namen haben. Das sind auch andere Checkboxen, als wenn man sie mit den Entwicklertools in das Dokument einfügen würde. Da weißt Du sicherlich besser Bescheid als ich.

* Ich kann das geänderte Dokument auf meinem Rechner nicht speichern. Ich bekomme lediglich ein 'Befehl misslungen'. Das wird mit Sicherheit an diesem dusseligen Office Trust-Center liegen. Habe jetzt aber nicht den Nerv, mich da einzuarbeiten.

Code:
IncludePath "COMatePlus" ; <- Muss Du auf Deine Bedürfnisse anpassen!
XIncludeFile "COMatePlus.pbi"

EnableExplicit

#wdFormatXMLDocument=12                  ; XML document format.

Procedure ShowErrorIfAny()
 
  If COMate_GetLastErrorCode()
    Debug COMate_GetLastErrorDescription()
  EndIf
 
EndProcedure

Define.COMateObject     WordApplication
Define.COMateObject     WordDocument
Define.COMateEnumObject FormFields
Define.COMateObject     FormField

Define FormFieldName.s
Define FormFieldCheckBoxValue

Define.s SourceDoc = GetPathPart(ProgramFilename()) + "\setze_kontrollkästchen.docx" ; <- Muss Du auf Deine Bedürfnisse anpassen!
Define.s TargetDoc = GetPathPart(ProgramFilename()) + "\output.docx" ; <- Muss Du auf Deine Bedürfnisse anpassen!

WordApplication = COMate_CreateObject("Word.Application")

If WordApplication
 
  WordApplication\SetProperty("DisplayAlerts = #False")
 
  Debug "Open..."
  WordDocument = WordApplication\GetObjectProperty("Documents\Open('" + SourceDoc + "')")
  ShowErrorIfAny()
 
  Debug "Enumeration..."
  FormFields = WordDocument\CreateEnumeration("FormFields")
 
  If FormFields
   
    FormField = FormFields\GetNextObject()
   
    While FormField
     
      ; Namen auslesen
     
      FormFieldName = FormField\GetStringProperty("Name")
      Debug "FormFieldName:  " + FormFieldName
     
      ; Wert der Checkbox auslesen
      FormFieldCheckBoxValue = FormField\GetIntegerProperty("CheckBox\Value")
      Debug "FormFieldCheckBoxValue: " + FormFieldCheckBoxValue
     
      ; Neuen Wert setzen
      FormField\SetProperty("CheckBox\Value=#True") ; ... oder #False
      ShowErrorIfAny()   
     
      Debug "-----------------"
     
      FormField\Release()
      FormField = FormFields\GetNextObject()
     
    Wend
   
    FormFields\Release()
   
  EndIf
 
  ; schlägt bei mir fehl
  ;   Debug "ActiveDocument\SaveAs()..."
  ;   WordApplication\Invoke("ActiveDocument\SaveAs('" + TargetDoc + "')")
  ;   ShowErrorIfAny()
 
  ; schlägt bei mir fehl
  ;    Debug "ActiveDocument\SaveAs2()..."
  ;    WordApplication\Invoke("ActiveDocument\SaveAs2('" + TargetDoc + "', " + #wdFormatXMLDocument + " As Long)")
  ;    ShowErrorIfAny()
 
  Debug "Quit()..."
  WordApplication\Invoke("Quit(0)")
  ShowErrorIfAny()
 
  WordApplication\Release()
  ShowErrorIfAny()
 
  Debug "ende"
 
EndIf


Wie geschrieben: Der Code soll als Inspiration dienen. Vielleicht enthält er genau die Informationen, die Dir zur erfolgreichen Bearbeitung noch gefehlt haben.

Grüße ... Peter

_________________
einfach ist schwierig


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Mit ComatePlus Kontrollkästchen in Word aktiv setzen
BeitragVerfasst: 06.04.2018 18:07 
Offline

Registriert: 18.01.2018 17:02
Das geht genau in die Richtung woran ich gerade arbeite (ComatePlus). :D

Die Bennenung der beiden Kontrollkästchen soll natürlich unterschiedlich sein. Hier war ich ein bisschen schlampig. :mrgreen:

Leider bin ich jetzt erstmal verhindert. Am Dienstag bin ich wieder im Lande und brenne darauf mir das anzusehen.

Schönes Wochenende.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Mit ComatePlus Kontrollkästchen in Word aktiv setzen
BeitragVerfasst: 12.04.2018 12:41 
Offline

Registriert: 18.01.2018 17:02
Hallo Peter,

es klappt. :bounce:

Ich hatte das Dokument mit
Zitat:
WordApplication\Invoke("Documents\Open('" + SourceDoc + "')")
geöffnet und nicht wie du mit

Zitat:
WordDocument = WordApplication\GetObjectProperty("Documents\Open('" + SourceDoc + "')")
.

Danach habe ich versucht, die Formfields direkt anzusprechen, aber weiter mit WordApplication statt mit WordDocument. Mir ist der Unterschied auch noch nicht wirklich klar.
Ich habe leider keine Dokumentation zu CoMate gefunden. Hast du vielleicht noch Infos über eine Dokumentation?
Deine Schleife über FormFields macht, wo ich sie jetzt sehe, total Sinn. Ja, und dann war es ganz einfach.

Vielen vielen Dank.

Gruß.
Meier


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Mit ComatePlus Kontrollkästchen in Word aktiv setzen
BeitragVerfasst: 12.04.2018 12:58 
Offline
Benutzeravatar

Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9
Meier hat geschrieben:
es klappt.

schön! :D

Die Enumeration der FormFields musst Du ja über das Dokumenten-Objekt laufen lassen, welches Du per WordApplication\GetObjectProperty erhältst.

WordApplication\Invoke("Documents\Open... würde auch funktionieren. Allerdings musst Du dann die Enumeration über das ActiveDocument laufen lassen.

Führen halt mehrere Wege nach Rom...

Grüße ... Peter

_________________
einfach ist schwierig


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye