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

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

Автор:  moi_n_eau [ Вт, май 30 2017, 18:19 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

:D Как полезно писать на форуме, напишешь и сразу понимаешь как сделать.
Выделила весь текст в колонтитуле и всё отлично заработало. До этого просто закладку ставила в колонтитуле.

Автор:  aar [ Пт, июн 02 2017, 10:51 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

Доброе утро.

Есть ли возможность использовать один макрос из нескольких документов, но чтобы он был в одном файле, чтобы не править макросы во всех документах? Возможно, в идеале, параметризировать его.

Спасибо.

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

aar написал(а):
Доброе утро.

Есть ли возможность использовать один макрос из нескольких документов, но чтобы он был в одном файле, чтобы не править макросы во всех документах? Возможно, в идеале, параметризировать его.

Спасибо.

Как оказалось, есть! :)

Я попробовал на своём примере ZWWW_SAMPLE_INVOICE.xls. Вытащил из него макрос форматирования объединённых ячеек MergeCellsAutofit, поместил его в отдельный файл Excel и сохранил как надстройку Excel (*.xla) с именем "Func.xla".
В шаблоне ZWWW_SAMPLE_INVOICE.xls изменил вызов макроса, вместо
Code:
  Call MergeCellsAutofit(Range("Область_формата"))"
написал
Code:
  Run "'" + Application.ThisWorkbook.Path + "\Func.xla'!MergeCellsAutofit", Range("Область_формата")


А при вызове ФМ передаю файл с общими макросами "FUNC.xla" через таблицу IT_FILES.
В результате он выгружается вместе с шаблоном и доступен для вызова его макросов.
Code:
  wa_Files-File_Name = 'Func.xla'.
  wa_Files-File_Data = ... "двоичный файл типа xstring
  Insert wa_Files into table lt_Files.

  Call function 'ZLCL_OPENFORM'
    exporting
      Source_Name = lv_File_Name
    tables
      it_Values   = lt_Val[]
      it_Files    = lt_Files[].

Я проверял на ФМ 'ZLCL_OPENFORM', поэтому измененный шаблон ZWWW_SAMPLE_INVOICE.xls и файл общих макросов FUNC.xla у меня брались с локального компьютера. Вы можете сохранить файл общих макросов так же, как шаблон, в Web-хранилище (тр.SMW0), или любом другом, и стандартными функциями считывать его и преобразовывать в тип xstring для передачи через параметр it_Files.

Автор:  Igor_34_rus [ Пн, июн 05 2017, 17:36 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

Для, вывода динамической картинки в выходной документ, по совету который прочитал в этой ветке, выгружаю рисунок во временную папку и вставляю её в документ.
При печати из web dynpro, разумеется это не работает.

Программа использует "JAR".

Подскажите как можно вставить картинку для web dynpro?

Я так понимаю, что можно вставить её и макрос для вставки картинки в тот же JAR, и запустить его?

Автор:  Akafellas [ Вт, июн 06 2017, 11:17 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

Добрый день!
zwww_openform ver2.90
при выгрузке больше 100 строк в it_values
переменная в шаблоне заполняется только 1 раз, т.е заголовок в шаблоне не дублируется и соответственно не заполняется повторно.
Это при загрузке через макрос.
Если указать optimize = 9999999, всё отрабатывает как надо.

Автор:  Parazit [ Вт, июн 06 2017, 11:36 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

Igor_34_rus написал(а):
Для, вывода динамической картинки в выходной документ, по совету который прочитал в этой ветке, выгружаю рисунок во временную папку и вставляю её в документ.
При печати из web dynpro, разумеется это не работает.

Программа использует "JAR".

Подскажите как можно вставить картинку для web dynpro?

Я так понимаю, что можно вставить её и макрос для вставки картинки в тот же JAR, и запустить его?

Посмотрите пример ZWWW_MANY_LIST, обратите внимание на параметр IT_FILES и вызываемый макрос 'LoadPhoto'.

Автор:  Parazit [ Вт, июн 06 2017, 11:55 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

Akafellas написал(а):
Добрый день!
zwww_openform ver2.90
при выгрузке больше 100 строк в it_values
переменная в шаблоне заполняется только 1 раз, т.е заголовок в шаблоне не дублируется и соответственно не заполняется повторно.
Это при загрузке через макрос.
Если указать optimize = 9999999, всё отрабатывает как надо.

Вообще через макрос должно работать аналогично. Мой код не изменялся?
Можете прислать шаблон и содержимое IT_VALUES для проблемного случая при заданном OPTIMIZE=0. А если сможете, то и текстовый файл, выгружаемый для макроса - поймать в отладке, пока не удалился. (мыло: misterxyz (сбк) mail (тчк) ru)
А вообще, конечно, лучше обновить версию.

Автор:  Igor_34_rus [ Ср, июн 07 2017, 11:00 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

Parazit написал:
Igor_34_rus написал(а):
Для, вывода динамической картинки в выходной документ, по совету который прочитал в этой ветке, выгружаю рисунок во временную папку и вставляю её в документ.
При печати из web dynpro, разумеется это не работает.

Программа использует "JAR".

Подскажите как можно вставить картинку для web dynpro?

Я так понимаю, что можно вставить её и макрос для вставки картинки в тот же JAR, и запустить его?

Посмотрите пример ZWWW_MANY_LIST, обратите внимание на параметр IT_FILES и вызываемый макрос 'LoadPhoto'.

Спасибо, разобрался.

Но получается в каждый шаблон нужно вставлять макрос. А он может меняться.
Для SAP GUI я сделал выгрузку и вызов своего макроса, сразу после Вашего, через расширение.
Можно сделать тоже самое в JAR?
Или возможно приложить файл с макросом и вызвать его средствами Вашей библиотеки? (что-то вроде <ИмяФайла%ИмяМакроса>, судя по коду метода "RunUserMacros", он так не умеет, но легко реализуется)

Автор:  Parazit [ Ср, июн 07 2017, 13:14 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

Igor_34_rus написал(а):
...Спасибо, разобрался.

Но получается в каждый шаблон нужно вставлять макрос. А он может меняться.
Для SAP GUI я сделал выгрузку и вызов своего макроса, сразу после Вашего, через расширение.
Можно сделать тоже самое в JAR?
Или возможно приложить файл с макросом и вызвать его средствами Вашей библиотеки? (что-то вроде <ИмяФайла%ИмяМакроса>, судя по коду метода "RunUserMacros", он так не умеет, но легко реализуется)

Приём, который я описал (через it_Files), а также упаковка в Java-программу (*.jar), были изначально сделаны для вывода в Web Dynpro. То есть, если отчёт работает в SAP GUI, то он точно также, без каких-то особых ухищрений, должен работать в Web Dynpro (Web GUI, BSP).
Проблема у Вас возникла потому, что Вы изменили (расширили) мой код, тем самым нарушив концепцию.
Насколько я понял, целью было создать общую библиотеку часто употребимых макросов и, в случае их доработки, не изменять кучу шаблонов. Это возможно реализовать не ломая код, а используя существующий механизм. Пример я как раз описал несколькими постами выше: viewtopic.php?p=564594#p564594 . То есть можно создать один общий файл для макросов (например, *.xla), реализующих какие-то сложные функции, а в самих шаблонах создать простейшие макросы, вызывающие общий макрос.

Автор:  Igor_34_rus [ Ср, июн 07 2017, 15:57 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

Parazit написал:
Igor_34_rus написал(а):
...Спасибо, разобрался.

Но получается в каждый шаблон нужно вставлять макрос. А он может меняться.
Для SAP GUI я сделал выгрузку и вызов своего макроса, сразу после Вашего, через расширение.
Можно сделать тоже самое в JAR?
Или возможно приложить файл с макросом и вызвать его средствами Вашей библиотеки? (что-то вроде <ИмяФайла%ИмяМакроса>, судя по коду метода "RunUserMacros", он так не умеет, но легко реализуется)

Приём, который я описал (через it_Files), а также упаковка в Java-программу (*.jar), были изначально сделаны для вывода в Web Dynpro. То есть, если отчёт работает в SAP GUI, то он точно также, без каких-то особых ухищрений, должен работать в Web Dynpro (Web GUI, BSP).
Проблема у Вас возникла потому, что Вы изменили (расширили) мой код, тем самым нарушив концепцию.
Насколько я понял, целью было создать общую библиотеку часто употребимых макросов и, в случае их доработки, не изменять кучу шаблонов. Это возможно реализовать не ломая код, а используя существующий механизм. Пример я как раз описал несколькими постами выше: viewtopic.php?p=564594#p564594 . То есть можно создать один общий файл для макросов (например, *.xla), реализующих какие-то сложные функции, а в самих шаблонах создать простейшие макросы, вызывающие общий макрос.

Да, но в моём случае придётся переделывать шаблоны, часть из них без поддержки макросов.
Смысл своего макроса как раз в том, чтобы не трогать шаблоны.
Не будите добавлять вызов внешнего макроса в библиотеку?

Автор:  Ark555 [ Вт, июн 13 2017, 10:43 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

Добрый день. Заранее извиняюсь за неумение пользоваться поиском, но есть ли пример выгрузки картинки через ZWWW гр. ф-й, например, фотографии.

Автор:  Parazit [ Вт, июн 13 2017, 11:18 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

Ark555 написал(а):
Добрый день. Заранее извиняюсь за неумение пользоваться поиском, но есть ли пример выгрузки картинки через ZWWW гр. ф-й, например, фотографии.

Программа ZWWW_MANY_LIST. На алгоритм не обращайте внимания, смотрите содержимое IT_VALUES перед вызовом ФМ. Для упрощения анализа уменьшите количество выбираемых записей на селекционном экране до 2-3, там по умолчанию 1000.

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

Parazit написал:
Ark555 написал(а):
Добрый день. Заранее извиняюсь за неумение пользоваться поиском, но есть ли пример выгрузки картинки через ZWWW гр. ф-й, например, фотографии.

Программа ZWWW_MANY_LIST. На алгоритм не обращайте внимания, смотрите содержимое IT_VALUES перед вызовом ФМ. Для упрощения анализа уменьшите количество выбираемых записей на селекционном экране до 2-3, там по умолчанию 1000.


А если у меня есть путь к файлу мне обязательно заполнять табличку it_PhotoFiles. Ведь макрос LoadPhoto и так загрузит этот файл в шаблон?

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

Ark555 написал(а):
Parazit написал:
...
Программа ZWWW_MANY_LIST. На алгоритм не обращайте внимания, смотрите содержимое IT_VALUES перед вызовом ФМ. Для упрощения анализа уменьшите количество выбираемых записей на селекционном экране до 2-3, там по умолчанию 1000.


А если у меня есть путь к файлу мне обязательно заполнять табличку it_PhotoFiles. Ведь макрос LoadPhoto и так загрузит этот файл в шаблон?

Нет, не обязателен, но желателен. Параметр IT_FILES создан для облегчения выгрузки дополнительных файлов, например, фотографий. Главная его особенность в том, что файлы выгружаются в тот же каталог, куда и шаблон, причём и в случаях работы через Web (Web Dynpro, Web GUI, BSP) или Java GUI. То есть, если однажды клиент захочет, чтобы отчёты работали из Web (а я с таким сталкивался), то у вас будет меньше проблем с переделкой отчетов.

Автор:  ssv10 [ Сб, июн 24 2017, 16:44 ]
Заголовок сообщения:  ZWWW - ФМ для выгрузки данных в WORD, EXCEL

Подскажите, пожалуйста, как правильно реализовать подитоги.
Клиент хочет видеть в таблице суммы в разрезе видов документа.
В шаблоне у меня строка с именем lines, никаких группировок или подитогов нет.

Хожу по выбранным позициям и заполняю поля:
Code:
    setline 'lines' l_cnt '[belnr]' '' <line>-belnr.
    setline 'lines' l_cnt '[blart]' '' <line>-blart.
    setline 'lines' l_cnt '[bldat]' '' <line>-bldat.
    setline 'lines' l_cnt '[bwwrt]' '' <line>-bwwrt.
    setline 'lines' l_cnt '[hwaer]' '' <line>-hwaer.
    setline 'lines' l_cnt '[augbl]' '' <line>-augbl.
    setline 'lines' l_cnt '[augdt]' '' <line>-augdt.



Как изменить код так, чтобы подитоги по bwwrt в разрезе blart появились в шаблоне?

Смотрела пример - программу ZWWW_MANY_LIST, в которой есть строки с типом V
SetLine NameList 'User' Num '' 'V' 'Function'.
SetLine NameList 'User' Num '[DEPARTMENT]' '' it_Usr-DEPARTMENT.
Пробовала добавлять у себя строку, но тогда в экселе просто пустая строка выводится.

Code:
      setline 'lines' l_cnt '' 'V' 'blart'.
      setline 'lines' l_cnt '[blart]' '' l_blart.
      setline 'lines' l_cnt '[bwwrt]' '' l_bwwrt.

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