JACE, ACTIVEX und WORD

Nutzung, Komponenten, .NET

Moderator: Moderatoren

Antworten
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

JACE, ACTIVEX und WORD

Beitrag von Rudolf »

Hallo Leute,
ich suche verzweifelt eine Möglichkeit aus einem Wordformular die Variablen rauszuholen. Ich bin soweit, dass ich die Bookmarks anzeigen lassen kann, aber ich habe keine Ahnung wie ich zum Inhalt der Variablen komme. Anbei mal der Code wie ich die Bookmarks anzeigen lassen kann. Das Wordformular kann man unter www.c-tec.at/download/test.doc runterladen falls es jemand versuchen will.
Grüsse
Rudolf

--------------- mein PRG ------------------------------

//
// Copyright (c) 1997-2001 JAZZAge Software SARL http://www.jazzagesoft.com
//
// MS Word ActiveX Client
//
// The sample below shows how to:
// - launch Word and have it load a .DOC file.
// - retrieve and modify named Bookmarks (text and font)
// - save the modified document to a new location
//
// Warning: to run the sample, you will need Word97 or Word2000.
//

#include "Xbp.ch"

#include "d:\alaska\jace30_neu\Include\JACE30XPP.ch"
#include "d:\alaska\jace30_neu\Samples\Xbase++\Word.CH"

//-------------------------------------------------------------------------------------------------------------

PROCEDURE Main
LOCAL Val
LOCAL oWord
LOCAL pUnk
LOCAL Visible
LOCAL iDoc
LOCAL parcount
LOCAL path
LOCAL savepath
LOCAL i,count

? "Word Bookmarks"

// Connect Xbase++ to Word
oWord:= JAObject():new()
oWord:Connect(JAXPPCREATEACTIVEXOBJECT("ProgID:Word.Application"))

// Attach an exception codeblock to the Word wrapping class
oWord:ExceptionCodeBlock:={|nCode,cSource,cDescription,cHelpFile,nHelpContext|QOut("oWord Exception nCode="+STR(nCode)+" cSource="+cSource+" cDescription="+cDescription+" cHelpFile="+cHelpFile+" nHelpContext="+STR(nHelpContext)) }

<oWord:Visible := .T.>

path:="h:\event\word\test.doc"
oDocument:= JAObject():new()
oDocument:Connect(<oWord:Documents:Open(path)>)


// Inspecting the Bookmarks collection
count:=<oDocument:Bookmarks:Count>
JAXPPDEBUGWRITELN("<oDocument:Bookmarks:Count>="+STR(count))
? "<oDocument:Bookmarks:Count>="+STR(count)
FOR i:=1 TO count
? "<oDocument:Bookmarks["+STR(i)+"]:Name>="+<oDocument:Bookmarks:Name>
NEXT
inkey(0)

? <oDocument:Bookmarks["Dropdown10"]:Range:Text>
? <oDocument:Bookmarks[1]:Range:Text>
? <oDocument:Bookmarks[1]:value>

inkey(0)

? <oDocument:Bookmarks[1]:select()>

inkey(0)

// Close Word
<oWord:Quit()>

// Disconnect the wrapping instances: required
oDocument:Disconnect()
oWord:Disconnect()

RETURN







----------------Code aus JACE-----------------------

// Bookmark:
//
// Methods:
// HRESULT Name([out,retval] *BSTR pReturn) (WordBookmark:GetName)
// HRESULT Range([out,retval] **Range pReturn) (WordBookmark:GetRange)
// HRESULT Empty([out,retval] *BOOL pReturn) (WordBookmark:GetEmpty)
// HRESULT Start([out,retval] *I4 pReturn) (WordBookmark:GetStart)
// HRESULT Start([in] I4 Par0) (WordBookmark:PutStart)
// HRESULT End([out,retval] *I4 pReturn) (WordBookmark:GetEnd)
// HRESULT End([in] I4 Par0) (WordBookmark:PutEnd)
// HRESULT Column([out,retval] *BOOL pReturn) (WordBookmark:GetColumn)
// HRESULT StoryType([out,retval] *WdStoryType pReturn) (WordBookmark:GetStoryType)
// HRESULT Application([out,retval] **Application pReturn) (WordBookmark:GetApplication)
// HRESULT Creator([out,retval] *I4 pReturn) (WordBookmark:GetCreator)
// HRESULT Parent([out,retval] *DISPATCH pReturn) (WordBookmark:GetParent)
// HRESULT Select() (WordBookmark:Select)
// HRESULT Delete() (WordBookmark:Delete)
// HRESULT Copy([in] BSTR Name, [out,retval] **Bookmark pReturn) (WordBookmark:Copy)
//
// Bookmarks: (Collection)
//
// Methods:
// HRESULT _NewEnum([out,retval] *UNKNOWN pReturn) (WordBookmarks:Get_NewEnum)
// HRESULT Count([out,retval] *I4 pReturn) (WordBookmarks:GetCount)
// HRESULT DefaultSorting([out,retval] *WdBookmarkSortBy pReturn) (WordBookmarks:GetDefaultSorting)
// HRESULT DefaultSorting([in] WdBookmarkSortBy Par0) (WordBookmarks:PutDefaultSorting)
// HRESULT ShowHidden([out,retval] *BOOL pReturn) (WordBookmarks:GetShowHidden)
// HRESULT ShowHidden([in] BOOL Par0) (WordBookmarks:PutShowHidden)
// HRESULT Application([out,retval] **Application pReturn) (WordBookmarks:GetApplication)
// HRESULT Creator([out,retval] *I4 pReturn) (WordBookmarks:GetCreator)
// HRESULT Parent([out,retval] *DISPATCH pReturn) (WordBookmarks:GetParent)
// HRESULT Item([in] *VARIANT Index, [out,retval] **Bookmark pReturn) (WordBookmarks:_Item)
// HRESULT Add([in] BSTR Name, [in opt] *VARIANT Range, [out,retval] **Bookmark pReturn) (WordBookmarks:Add)
// HRESULT Exists([in] BSTR Name, [out,retval] *BOOL pReturn) (WordBookmarks:Exists)
//
// Variable:
//
// Methods:
// HRESULT Application([out,retval] **Application pReturn) (WordVariable:GetApplication)
// HRESULT Creator([out,retval] *I4 pReturn) (WordVariable:GetCreator)
// HRESULT Parent([out,retval] *DISPATCH pReturn) (WordVariable:GetParent)
// HRESULT Name([out,retval] *BSTR pReturn) (WordVariable:GetName)
// HRESULT Value([out,retval] *BSTR pReturn) (WordVariable:GetValue)
// HRESULT Value([in] BSTR Par0) (WordVariable:PutValue)
// HRESULT Index([out,retval] *I4 pReturn) (WordVariable:GetIndex)
// HRESULT Delete() (WordVariable:Delete)
//
// Variables: (Collection)
//
// Methods:
// HRESULT _NewEnum([out,retval] *UNKNOWN pReturn) (WordVariables:Get_NewEnum)
// HRESULT Count([out,retval] *I4 pReturn) (WordVariables:GetCount)
// HRESULT Application([out,retval] **Application pReturn) (WordVariables:GetApplication)
// HRESULT Creator([out,retval] *I4 pReturn) (WordVariables:GetCreator)
// HRESULT Parent([out,retval] *DISPATCH pReturn) (WordVariables:GetParent)
// HRESULT Item([in] *VARIANT Index, [out,retval] **Variable pReturn) (WordVariables:_Item)
// HRESULT Add([in] BSTR Name, [in opt] *VARIANT Value, [out,retval] **Variable pReturn) (WordVariables:Add)
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo Rudolf,

bei den ActiveX Beispielen ist eines, bei dem in Word ein FAX-Formular ausgefüllt wird. Ob das jetzt hilft weiß ich aber nicht.
Gruß
Hubert
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Beitrag von Rudolf »

Hallo Hubert,
danke für die schnelle Antwort. Ausfüllen von Feldern ist kein Problem, das geht mit den sog. Ranges. Also Bereichen aus denen man was holt oder reinschreibt. Reinschreiben funktioniert, aber ich stecke kurz vorm Ziel beim Auslesen einer Range.
Beispiel beim schreiben einer Range:

<oDocument:Bookmarks["Bookmark2"]:Range:Text:="New BookMark2">

Grüsse
Rudolf
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo Rudolf,

schön zu hören, dass du es bald geschafft hast, :thumbright:
Man weis nie ob man es mal braucht. Ich freue mich schon auf deine Lösung.
Gruß
Hubert
Antworten