Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Cannot get BOOKMARK object in MS WORD via OLE Automation

Former Member
0 Kudos

Hello! I have a problem. Cannot Get bookmark object. guru Please help me. code below:


PROGRAM ZZHR_OLE2_SUBROUTINS.
TYPE-POOLS: OLE2, CNTL.
DATA: WORD_OBJ type OLE2_OBJECT,
      SEL_OBJ type OLE2_OBJECT,
      APP_OBJ type OLE2_object,
      ACT_OBJ type OLE2_object,
      ACTWINDOW_OBJ type OLE2_object,
      BOOKMARKS_OBJ type OLE2_object,
      BOOKMARK_OBJ type OLE2_object,
      RANGE_OBJ type OLE2_OBJECT.


FORM ZHRUA_ORDER_T8_ITC USING APP type CNTL_HANDLE.
FIELD-SYMBOLS: <FS_DATA> type ANY TABLE.
data: MACRO_TAB type ZHR_S_MACRO_TAB occurs 0 WITH HEADER LINE.
ASSIGN ('(ZHRUA_ORDER_T8_ITC)MACRO_TAB[]') TO <fs_data>.
*ASSIGN ('(SAPLIPW4)MCHA-BWTAR') TO <FS>.
IF <fs_data> IS ASSIGNED.
  MACRO_TAB[] = <fs_data>.
ENDIF.

loop at MACRO_TAB.
translate   MACRO_TAB-PARAMETER1 to upper case.
shift MACRO_TAB-PARAMETER1 LEFT DELETING LEADING space.
WORD_OBJ = APP-OBJ.
GET PROPERTY OF WORD_OBJ 'Application' = APP_OBJ NO FLUSH.
 CALL METHOD cl_gui_cfw=>FLUSH.
check sy-subrc eq 0.
GET PROPERTY OF APP_OBJ 'ActiveDocument' = ACT_OBJ  NO FLUSH.
 CALL METHOD cl_gui_cfw=>FLUSH.
check sy-subrc eq 0.
GET PROPERTY OF ACT_OBJ  'Bookmarks'      = BOOKMARKS_OBJ NO FLUSH.
 CALL METHOD cl_gui_cfw=>FLUSH.
check sy-subrc eq 0.
*get PROPERTY OF BOOKMARKS_OBJ 'Item' = BOOKMARK_OBJ NO FLUSH EXPORTING #1 = MACRO_TAB-PARAMETER1 .
call method of BOOKMARKS_OBJ 'Item'  = BOOKMARK_OBJ  NO FLUSH." EXPORTING #1 = MACRO_TAB-PARAMETER1.
 CALL METHOD cl_gui_cfw=>FLUSH.
check sy-subrc eq 0.
call method of BOOKMARK_OBJ 'Select' NO FLUSH.
 CALL METHOD cl_gui_cfw=>FLUSH.
check sy-subrc eq 0.
get PROPERTY OF WORD_OBJ 'ActiveWindow' = ACTWINDOW_OBJ NO FLUSH.
 CALL METHOD cl_gui_cfw=>FLUSH.
check sy-subrc eq 0.
GET PROPERTY OF ACTWINDOW_OBJ 'Selection' = SEL_OBJ NO FLUSH.
 CALL METHOD cl_gui_cfw=>FLUSH.
check sy-subrc eq 0.

call METHOD of SEL_OBJ 'Delete'NO FLUSH  EXPORTING #1 = 1 #2 = 1.
 CALL METHOD cl_gui_cfw=>FLUSH.
endloop.
endform.



4 REPLIES 4

Former Member
0 Kudos

call method of BOOKMARKS_OBJ 'Item'  = BOOKMARK_OBJ  NO FLUSH." EXPORTING #1 = MACRO_TAB-PARAMETER1.
 CALL METHOD cl_gui_cfw=>FLUSH.

after this DUMP with error: message X Error caling method

and i tryed like this


*get PROPERTY OF BOOKMARKS_OBJ 'Item' = BOOKMARK_OBJ NO FLUSH EXPORTING #1 = MACRO_TAB-PARAMETER1 .

and also error dump: message X Error get property

to many

.cl_gui_cfw=>FLUSH..

for checking what automation request is wrong...

Edited by: Mikhail Sidorenko on Dec 30, 2009 9:56 AM

Former Member
0 Kudos

thats a right code:


FIELD-SYMBOLS: <FS_DATA> type ANY TABLE.
data: MACRO_TAB type ZHR_S_MACRO_TAB occurs 0 WITH HEADER LINE.
ASSIGN ('(ZHRUA_ORDER_T8_ITC)MACRO_TAB[]') TO <fs_data>.
*ASSIGN ('(SAPLIPW4)MCHA-BWTAR') TO <FS>.
IF <fs_data> IS ASSIGNED.
  MACRO_TAB[] = <fs_data>.
ENDIF.

loop at MACRO_TAB.
translate   MACRO_TAB-PARAMETER1 to upper case.
shift MACRO_TAB-PARAMETER1 LEFT DELETING LEADING space.
WORD_OBJ = APP-OBJ.
GET PROPERTY OF WORD_OBJ 'Application' = APP_OBJ NO FLUSH.
* CALL METHOD cl_gui_cfw=>FLUSH.
check sy-subrc eq 0.
GET PROPERTY OF APP_OBJ 'ActiveDocument' = ACT_OBJ  NO FLUSH.
* CALL METHOD cl_gui_cfw=>FLUSH.
check sy-subrc eq 0.


Call method of ACT_OBJ 'Bookmarks' = Bookmark_obj     EXPORTING  #1 = MACRO_TAB-PARAMETER1.
*CALL METHOD cl_gui_cfw=>FLUSH.
check Bookmark_obj-handle is not INITIAL.

call method of BOOKMARK_OBJ 'Select' NO FLUSH.
*CALL METHOD cl_gui_cfw=>FLUSH.
get PROPERTY OF WORD_OBJ 'ActiveWindow' = ACTWINDOW_OBJ NO FLUSH.
*CALL METHOD cl_gui_cfw=>FLUSH.
check sy-subrc eq 0.
GET PROPERTY OF ACTWINDOW_OBJ 'Selection' = SEL_OBJ NO FLUSH.
*CALL METHOD cl_gui_cfw=>FLUSH.
check sy-subrc eq 0.
CALL FUNCTION 'FLUSH'
 EXCEPTIONS
   CNTL_SYSTEM_ERROR       = 1
   CNTL_ERROR              = 2
   OTHERS                  = 3          .

GET PROPERTY OF ACTWINDOW_OBJ 'Selection' = SEL_OBJ .
call METHOD of SEL_OBJ 'Delete'   EXPORTING #1 = 1  #2 = 1.

Former Member
0 Kudos

it's working!!!

0 Kudos

Hi Mikhail,

I am having same kind of requirment. I need to create word documents by passing the data. Can you give me the step by step approach?

Regards,