Age: 170 Joined: 04 Oct 2007 Posts: 1218 Location: Санкт-Петербург
Posted: Wed Feb 20, 2008 1:39 pm Post subject:
Командой Run
Создаете макрос в WinWord файле:
Code:
Sub Exec_from_sap()
MsgBox "Hello SAP!"
End Sub
Code:
REPORT z_winword_macro MESSAGE-ID sy.
*Working directory such as SapWorkDir
PARAMETERS: p_file LIKE rlgrap-filename
DEFAULT 'c:\Temp\word1.doc'.
INCLUDE ole2incl.
INCLUDE docsincl.
DATA: h_word TYPE ole2_object,
h_docs TYPE ole2_object,
h_doc TYPE ole2_object.
START-OF-SELECTION.
* Create Word Application object
IF h_word-header = space OR h_word-handle EQ -1.
CREATE OBJECT h_word 'WORD.APPLICATION'.
IF sy-subrc NE 0.
MESSAGE i002 WITH sy-msgli.
ELSE.
SET PROPERTY OF h_word 'VISIBLE' = 1.
ENDIF.
ENDIF.
* Get Documents collection as property of Application object
GET PROPERTY OF h_word 'DOCUMENTS' = h_docs.
* Open a word file
CALL METHOD OF h_docs 'OPEN' = h_doc
EXPORTING #1 = p_file.
* Execute Macros
CALL METHOD OF h_word 'Run'
EXPORTING #1 = 'Exec_from_sap'. "Macros name
CALL FUNCTION 'FLUSH'.
* Terminate Word
CALL METHOD OF h_word 'QUIT' EXPORTING #1 = 0.
Age: 40 Joined: 28 Jul 2009 Posts: 4 Location: Украина
Posted: Tue Jul 28, 2009 6:18 pm Post subject:
Доброго времени суток!
Столкнулся с проблемой, когда есть необходимость выполнять разные макросы, допустим, по разным кнопкам интерфейса в R3, в одном и том же документе Word. При использовании функции execute_winword, а также при использовании create object app 'word.aplication' документ открывается в новом окне, т.е. если не закрывать документ, то откроется еще одно окно Word с этим же документом и т.д.(Microsoft Word 2003). Необходимо добится результата, когда при нажатии кнопок интерфейса документ был в одном и том же окне MS Word и выполнялись макросы.
Age: 40 Joined: 28 Jul 2009 Posts: 4 Location: Украина
Posted: Fri Aug 14, 2009 12:19 pm Post subject:
vga wrote:
Анализировать код возврата промежуточных операций. Если ошибочный - открыть приложение заново. Как такой алгоритм?
Алгоритм подходит, только вот реализовать пока не удается! Подскажите пожалуйста, как можно проверить запущен ли Word, и какой документ в нем открыт, и если открыто несколько - то активировать нужный!
Age: 170 Joined: 04 Oct 2007 Posts: 1218 Location: Санкт-Петербург
Posted: Fri Aug 14, 2009 1:34 pm Post subject:
wolfzp wrote:
Алгоритм подходит, только вот реализовать пока не удается! Подскажите пожалуйста, как можно проверить запущен ли Word, и какой документ в нем открыт, и если открыто несколько - то активировать нужный!
Можно проверить наличие WINWORD в процессах на клиенте, выполнив консольную команду tasklist.exe с выводом результата в файл и последующим чтением и анализом файла.
Для, проверки какой файл открыт, думаю нужно писать какую-то клиентскую приблуду.
А активация (видимо вы хотите из абапа подключиться к запущенной сессии и управлять открытым файлом) точно невозможна.
Age: 40 Joined: 28 Jul 2009 Posts: 4 Location: Украина
Posted: Tue Aug 18, 2009 4:06 pm Post subject:
vga wrote:
wolfzp wrote:
Алгоритм подходит, только вот реализовать пока не удается! Подскажите пожалуйста, как можно проверить запущен ли Word, и какой документ в нем открыт, и если открыто несколько - то активировать нужный!
Можно проверить наличие WINWORD в процессах на клиенте, выполнив консольную команду tasklist.exe с выводом результата в файл и последующим чтением и анализом файла.
Для, проверки какой файл открыт, думаю нужно писать какую-то клиентскую приблуду.
А активация (видимо вы хотите из абапа подключиться к запущенной сессии и управлять открытым файлом) точно невозможна.
Спасибо огромное за помощь! Очень признателен, буду писать, если что-то удачное получится - выложу
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG. SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG. Every effort is made to ensure content integrity. Use information on this site at your own risk.