SAPфорум.RU
https://www.sapboard.ru/forum/

ZWWW - ФМ для выгрузки данных в WORD, EXCEL
https://www.sapboard.ru/forum/viewtopic.php?f=13&t=4880
Страница 154 из 161

Автор:  r [ Пт, янв 17 2020, 12:45 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

Удалил все закладки и создал заново с правильным выделением строк через меню, но поведение первой страницы не изменилось, она так же остается "битой" если не добавить перед ней разрыв страницы.

Автор:  Parazit [ Пт, янв 17 2020, 18:50 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

r написал(а):
Удалил все закладки и создал заново с правильным выделением строк через меню, но поведение первой страницы не изменилось, она так же остается "битой" если не добавить перед ней разрыв страницы.

Мои примеры работают?

p.s.
Пришлите мне шаблон и содержимое IT_VALUE (стандартная выгрузка в текст из отладки) на мыло misterxyz@mail.ru

Автор:  hanna85 [ Пн, янв 20 2020, 10:14 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

Добрый день, подскажите пож. при переходе на SAP HANA модуль будет работать?

Автор:  Parazit [ Пн, янв 20 2020, 13:15 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

hanna85 написал(а):
Добрый день, подскажите пож. при переходе на SAP HANA модуль будет работать?

Работает.

Автор:  Chusik [ Пн, янв 27 2020, 17:49 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

Добрый день!

Не создаётся объект ole в макросе CreateMSApplication:
Create object App AppStr. <--- тут sy-subrc = 2

Проблема возникает на такой конфигурации:
win10pro, office 2016, sap gui 7500.2.4.1141

Эта же программа нормально отрабатывает на другом ноутбуке на такой конфигурации:
win10pro, office 2016, sap gui 7500.1.0.1133

Тестовые программы, аналогично не отрабатывают на первой конфигурации и отрабатывают на второй.
Версия zwww - 3.03, никаких модификаций не делалось.

Пробовал включать параметр WITHOUT_OLE (с параметром WITHOUT_OLE = 'X' отчёт не выгружается и на второй конфигурации тоже), разные значения OPTIMIZE.

Есть подозрение, что проблема системная, но может есть мысли, что ещё можно попробовать/проверить?

Автор:  Parazit [ Вт, янв 28 2020, 12:14 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

Chusik написал(а):
Добрый день!

Не создаётся объект ole в макросе CreateMSApplication:
Create object App AppStr. <--- тут sy-subrc = 2

Проблема возникает на такой конфигурации:
win10pro, office 2016, sap gui 7500.2.4.1141

Эта же программа нормально отрабатывает на другом ноутбуке на такой конфигурации:
win10pro, office 2016, sap gui 7500.1.0.1133

Тестовые программы, аналогично не отрабатывают на первой конфигурации и отрабатывают на второй.
Версия zwww - 3.03, никаких модификаций не делалось.

Пробовал включать параметр WITHOUT_OLE (с параметром WITHOUT_OLE = 'X' отчёт не выгружается и на второй конфигурации тоже), разные значения OPTIMIZE.

Есть подозрение, что проблема системная, но может есть мысли, что ещё можно попробовать/проверить?

Из приведённой инфы следует, что дело в версии SAP GUI. Периодически у SAP бывают кривые версии, лечится либо патчем, либо откатом на стабильную. Про SAP GUI 7500.1.0.1133 знаю, что работает нормально. Сам использую 7200.3.17.1077 Build 1411960 под Win7, проблем пока нет при работе с любыми версиями SAP.
У меня 7500.2.4.1141 пока нет, попробовать не на чем. Можете проверить его на другой конфигурации, чтобы убедиться, что дело в нём?

Автор:  r [ Ср, янв 29 2020, 12:26 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

Большое автору спасибо за инструмент и поддержку!

Автор:  Saperx [ Ср, фев 05 2020, 08:37 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

Всем привет, возникла следующая проблемка.
Есть программа с выгрузкой в Excel, если запускать её из системы напрямую - всё ок.
Также данная программа может быть запущена по RFC, под тех. пользователем с типом "сервис". Под ним возникает проблемка - excel не выгружается. Причём даже сообщение выдаётся, что мол " N байтов перенесено", но при этом ничего не происходит. Находил в этой теме что была похожая проблема с проставлением флага sy-oncom, но протестировать это не могу, т.к. у этого тех пользователя нет полномочий на отладку, а если пытаюсь работать с этой программой по трастовому соединению(под своим пользователем) - всё также выгружается корректно.
Есть подозрение что это связано с необходимостью запуска скрипта на машине пользователя, можете посоветовать, в каком направлении лучше копать?
При трассировке нашёл, что еще идет проверка следующего объекта полномочий, под трастовым проходит успешно, под сервисным - ошибка. Но почему объект S_develop, разве у пользователя должны быть полномочия на этот объект?
Code:
Знач. полномочий
OBJTYPE   : DEBUG
ACTVT     : 02
DEVCLASS  :
OBJNAME   :
P_GROUP   :
type      : RF
name      : Z*
reason3   : X
contextid : 00136000BBEC9FA19C091EDA91FADE15228D437A
Объект полномочий
Объект полномочий           : S_DEVELOP
SY-SUBRC                    : 4 ( Нет полномочий )
Программа                   : Z*
Строка                      : 2 662
Актуальная транзакция       :
Число ЗначПолном            : 9


UPDATE: Для теста создали диалогового пользователя с такими же полномочиями - всё работает... Т.е. проблема в типе пользователя.
UPDATE2: Пока поправил так, добавил проверку на версию гуи для сервисного пользователя в методе initparams, может кому-то тоже пригодится
Code:
  SELECT SINGLE ustyp
    INTO  l_ustyp
    FROM usr02
    WHERE bname = sy-uname.
  IF sy-subrc = 0 AND l_ustyp <> 'A'.
    "не диалог. пользователь в фоне
*    сервисный пользователь тоже может быть в gui
*    проверяем для сервисного, доступен ли нам gui
    IF l_ustyp = 'S'.
      DATA: VERSION_TABLE TYPE FILETABLE,
            RC            TYPE I.

      cl_gui_frontend_services=>get_gui_version( CHANGING version_table = version_table
                                                          rc = rc
                                                 EXCEPTIONS others = 7 ).
      IF rc is not initial or sy-subrc <> 0.
        close_form = 'X'. "не выдаем сообщение
      ENDIF.
    ELSE.
      close_form = 'X'. "не выдаем сообщение
    ENDIF.
  ENDIF.

Автор:  jk3 [ Ср, май 27 2020, 21:19 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

@Parazit
Как вывести в Word вместо параметра [1] пробел ?

Такое ощущение, что где-то во внутренностях ZWWW_OPENFORM все концевые пробелы таблицы it_values удаляются.

Автор:  Parazit [ Ср, май 27 2020, 22:09 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

jk3 написал(а):
@Parazit
Как вывести в Word вместо параметра [1] пробел ?

Такое ощущение, что где-то во внутренностях ZWWW_OPENFORM все концевые пробелы таблицы it_values удаляются.

Да, концевые похоже теряются, что, впрочем, вполне обычное явление для ABAP.
Однако лидирующие пробелы сохраняются, можно этим воспользоваться.

Автор:  jk3 [ Чт, май 28 2020, 09:28 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

Parazit написал:
Однако лидирующие пробелы сохраняются, можно этим воспользоваться.

Каким образом?

Например, у меня в шаблоне:
"[1]Текст"
и по флагу или нужно, или не нужно выводить нумерацию вместо параметра.

Я как положено в параметр записываю строку с концевым пробелом `2.1. `.
В итоге получаю после точки отсутствие пробела:
"2.1.Текст"

Если я в шаблоне вставлю пробел:
"[1] Текст"
то в варианте, когда нумерация не нужна, будет лишний пробел между кавычкой и текстом вот так:
" Текст".

В общем, выкрутился вставкой в abap-строку символа неразрывного пробела через Alt+0160.
Но это извращение.

Может быть подскажите где в коде ZWWW надо подправить, чтобы концевые пробелы не съедались?

Автор:  NickS [ Чт, май 28 2020, 15:05 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

Цитата:
У меня 7500.2.4.1141 пока нет, попробовать не на чем. Можете проверить его на другой конфигурации, чтобы убедиться, что дело в нём?

Так на всякий случай - проверил на 7500.2.4.1141, после макроса OLE есть. Офис 2013. WIN10 корпоративная.

Автор:  lnxk [ Вс, июн 21 2020, 20:05 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

jk3 написал(а):
Может быть подскажите где в коде ZWWW надо подправить, чтобы концевые пробелы не съедались?


Дело не в ZWWW это такая особенность сапа обрезать концевые пробелы. Видимо это происходит из-за того, что в параметре VALUE тип STRING. Попробуйте сделать так
Code:
value = |{ variable_with_text } |

или передать пробел в обратных кавычках
Code:
value = `Test `

Автор:  Kettle [ Пн, авг 24 2020, 14:59 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

Добрый день.
Столкнулся с проблемой. Запускаю zwww_openform. Формируется документ word. В it_values есть несколько записей с val_type = 'D', удаляются ненужные закладки. Так же есть макрос, в котором присутствует подсчет количества страниц в документе( типа "Данное соглашение составлено на n( эн ) страницах"). Уже перепробовал кучу способов определения количества страниц в макросе, никак верно не считает. После удаления ненужных закладок их становится меньше. Получается пишет на двух, вместо одной, например. Такое впечатление, что удаление закладок происходит позже. Имена удаляемых закладок имеют вид: del_***. Имя закладки для макроса - Z_M. По алфавиту должно быть ок. Если это один документ, который остается открытым, проблема решается отложенным на пару секунд запуском в другом макросе этого самого с нумерацией страниц. Но есть прога для массового формирования кучи документов, где устанавливается параметр closee_form. В этом случае макрос, конечно же, совсем не работает. Может кто сталкивался, есть варианты?

Автор:  Parazit [ Пн, авг 24 2020, 16:42 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

Kettle написал(а):
...
Такое впечатление, что удаление закладок происходит позже. Имена удаляемых закладок имеют вид: del_***. Имя закладки для макроса - Z_M. По алфавиту должно быть ок.
...

Удаление именованных областей (закладок), использованных в качестве шаблонов (VAL_TYPE=V) или напрямую удаляемых (VAL_TYPE=D), всегда производится после заполнения всей формы. Алфавитный порядок их имён никак не учитывается, что логично, так как они используются при заполнении других областей (закладок) в порядке их имён.

А как пишете количество, цифрами или прописью?

upd:
Я нашёл в Word-е стандартную возможность отображать количество страниц. Нужно вставить поле NUMPAGES. Там даже какие-то прописи есть. Однако обновляется оно только при печати или предварительном просмотре, либо вручную: Ctrl+A, F9. В интернете есть примеры автоматического обновления полей при помощи макроса на событие открытия документа:
Code:
Sub AutoOpen()
'Автообновление всех полей документа при его открытии
Dim aStory As Range
Dim aField As Field
Dim myTOC As TableOfContents
For Each aStory In ActiveDocument.StoryRanges
  For Each aField In aStory.Fields
    aField.Update
  Next aField
Next aStory
For Each myTOC In ActiveDocument.TablesOfContents
   myTOC.Update
Next myTOC
End Sub

Страница 154 из 161 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/