Desctop Office Integration / Word / Kopfzeile
Posted: Thu Sep 21, 2006 11:05 am
Hallo,
ich habe ein Worddokument aus dem Business Dokument Service „Inplace“ erzeugt und möchte über OLE/2 Befehle das Dokument formatieren.
Das Einfügen eines Textes, Leerzeile oder von Formatanweisungen war nach einigen Recherchen und Tests kein Problem.
Nun möchte ich eine Kopfzeile offnen, Text ergänzen und die Kopfzeile schließen.
Hier mein Coding:
*** Ermittlung des Allg. Handle für OLE/2 Funktionsaufrufe
word_doc->get_general_handle( ).
**************************************************************
METHOD get_general_handle .
DATA:
l_error LIKE LINE OF errors.
CHECK NOT doc IS INITIAL.
IF handle IS INITIAL.
* Handle des aktiven Dokuments
CALL METHOD doc->get_document_handle
EXPORTING
no_flush = abap_true
IMPORTING
error = l_error
handle = handle.
APPEND l_error TO errors.
l_error->raise_message( 'E' ).
ENDIF.
active_document = handle-obj.
* Handle der Applikation
GET PROPERTY OF active_document 'Application' = application .
CHECK sy-subrc = 0.
* Handle von "Selection"
GET PROPERTY OF application 'Selection' = selection.
CHECK sy-subrc = 0.
*
ENDMETHOD.
**************************************************************
*** Kopfzeile
word_doc->set_header_line( ).
**************************************************************
* VB-Befehl zum Öffnen Kopfzeile / Einfügen Text / Schließen Kopfzeile
*ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
*Selection.TypeText Text:="abc"
*ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
**************************************************************
* Handle der Activ Windows
GET PROPERTY OF application 'ActiveWindow' = active_window.
CHECK sy-subrc = 0.
* Handle der Activ Pane
GET PROPERTY OF active_window 'Activepane' = active_pane.
CHECK sy-subrc = 0.
* Handle der View
GET PROPERTY OF active_pane 'View' = view.
CHECK sy-subrc = 0.
**************************************************************
1. Lösungsansatz:
* Kopffenster öffnen
CALL METHOD OF active_document 'ViewHeader'.
* Text einfügen
CALL METHOD OF selection 'TypeText'
EXPORTING
#1 = 'ABC'.
* Kopffenster wieder schließen
CALL METHOD OF active_document 'CloseViewHeaderFooter'.
2. Lösungsansatz:
* Kopffenster öffnen
CALL METHOD OF view 'ViewHeader'.
* Text einfügen
CALL METHOD OF selection 'TypeText'
EXPORTING
#1 = 'ABC'.
* Kopffenster wieder schließen
CALL METHOD OF view 'CloseViewHeaderFooter'.
3. Lösungsansatz:
* Kopffenster öffnen
SET PROPERTY OF view 'SeekView' = 'CurrentPageHeader'.
* Text einfügen
CALL METHOD OF selection 'TypeText'
EXPORTING
#1 = 'ABC'.
* Kopffenster wieder schließen
SET PROPERTY OF view 'SeekView' = 'CloseViewHeaderFooter'.
**************************************************************
Keiner der drei Lösungsansätze funktioniert. Das entsprechende Handle ist kein Problem, das ist vorhanden. Nur der richtige Befehl oder Befehlsabfolge fehlt.
Wer kann mir hier weiterhelfen?
Gruß Mike
ich habe ein Worddokument aus dem Business Dokument Service „Inplace“ erzeugt und möchte über OLE/2 Befehle das Dokument formatieren.
Das Einfügen eines Textes, Leerzeile oder von Formatanweisungen war nach einigen Recherchen und Tests kein Problem.
Nun möchte ich eine Kopfzeile offnen, Text ergänzen und die Kopfzeile schließen.
Hier mein Coding:
*** Ermittlung des Allg. Handle für OLE/2 Funktionsaufrufe
word_doc->get_general_handle( ).
**************************************************************
METHOD get_general_handle .
DATA:
l_error LIKE LINE OF errors.
CHECK NOT doc IS INITIAL.
IF handle IS INITIAL.
* Handle des aktiven Dokuments
CALL METHOD doc->get_document_handle
EXPORTING
no_flush = abap_true
IMPORTING
error = l_error
handle = handle.
APPEND l_error TO errors.
l_error->raise_message( 'E' ).
ENDIF.
active_document = handle-obj.
* Handle der Applikation
GET PROPERTY OF active_document 'Application' = application .
CHECK sy-subrc = 0.
* Handle von "Selection"
GET PROPERTY OF application 'Selection' = selection.
CHECK sy-subrc = 0.
*
ENDMETHOD.
**************************************************************
*** Kopfzeile
word_doc->set_header_line( ).
**************************************************************
* VB-Befehl zum Öffnen Kopfzeile / Einfügen Text / Schließen Kopfzeile
*ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
*Selection.TypeText Text:="abc"
*ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
**************************************************************
* Handle der Activ Windows
GET PROPERTY OF application 'ActiveWindow' = active_window.
CHECK sy-subrc = 0.
* Handle der Activ Pane
GET PROPERTY OF active_window 'Activepane' = active_pane.
CHECK sy-subrc = 0.
* Handle der View
GET PROPERTY OF active_pane 'View' = view.
CHECK sy-subrc = 0.
**************************************************************
1. Lösungsansatz:
* Kopffenster öffnen
CALL METHOD OF active_document 'ViewHeader'.
* Text einfügen
CALL METHOD OF selection 'TypeText'
EXPORTING
#1 = 'ABC'.
* Kopffenster wieder schließen
CALL METHOD OF active_document 'CloseViewHeaderFooter'.
2. Lösungsansatz:
* Kopffenster öffnen
CALL METHOD OF view 'ViewHeader'.
* Text einfügen
CALL METHOD OF selection 'TypeText'
EXPORTING
#1 = 'ABC'.
* Kopffenster wieder schließen
CALL METHOD OF view 'CloseViewHeaderFooter'.
3. Lösungsansatz:
* Kopffenster öffnen
SET PROPERTY OF view 'SeekView' = 'CurrentPageHeader'.
* Text einfügen
CALL METHOD OF selection 'TypeText'
EXPORTING
#1 = 'ABC'.
* Kopffenster wieder schließen
SET PROPERTY OF view 'SeekView' = 'CloseViewHeaderFooter'.
**************************************************************
Keiner der drei Lösungsansätze funktioniert. Das entsprechende Handle ist kein Problem, das ist vorhanden. Nur der richtige Befehl oder Befehlsabfolge fehlt.
Wer kann mir hier weiterhelfen?
Gruß Mike