Всем привет!
Бывает такая ситуация - не заполняются шаблоны Excel.
Вот здесь ообсуждался такой вопрос: "Не заполняются шаблоны Microsoft Office"
https://www.sapforum.pro/forum/viewtopic.php?f=13&t=96394, а также и в этой теме были вопросы, что, бывает, не работает ФМ 'zww_openform' на конфигурациях win10+office16.
В выше указанном сообщении я указал свое частичное решение проблемы.
И делюсь им тут:
На одном из компов (Win 10, Office 2016, SapGui 7400, патч 14) - выводится не заполненный шаблон Excel.
Я определил, что не создаются OLE-объекты (а именно DOCS) вот в этом куске:
Code:
*&---------------------------------------------------------------------*
*& Form OpenForm
*&---------------------------------------------------------------------*
FORM OpenForm
.......
.......
.......
Call method of App 'Workbooks' = Docs.
Call method of Docs 'Open'
EXPORTING
#1 = <FILE_TEMP>. "FILE_NAME.
Call method of App 'ActiveWorkbook' = Item.
.......
.......
.......
Не знаю почему, поскольку на других компах с такой же конфигурацией (Win 10, Office 2016, SapGui 7400, патч 14) - все работает, грешу на McAfee, а может и что-то другое.
А вот с DEBUG_MODE = 'X' - работает нормально.
Я подумал - почему?
Посмотрел на различия создания объекта Excel.Application и увидел, что с DEBUG_MODE = 'X' устанавливается видимость Visible = 1.
ОК. Почему бы не включить видимость (а потом ее отключить) в режиме DEBUG_MODE = ''?
И вот что у меня вышло - и после этого все работает.
Code:
.......
.......
.......
Call method of App 'Workbooks' = Docs.
Call method of Docs 'Open'
EXPORTING
#1 = <FILE_TEMP>. "FILE_NAME.
CALL FUNCTION 'FLUSH'.
IF Docs IS INITIAL AND DEBUG_MODE IS INITIAL.
free_object docs.
Set property of App 'Visible' = 1.
CALL FUNCTION 'FLUSH'.
Call method of App 'Workbooks' = Docs.
Call method of Docs 'Open'
EXPORTING
#1 = <FILE_TEMP>. "FILE_NAME.
CALL FUNCTION 'FLUSH'.
Set property of App 'Visible' = 0.
CALL FUNCTION 'FLUSH'.
ENDIF.
Call method of App 'ActiveWorkbook' = Item.
.......
.......
.......