Текущее время: Пт, мар 29 2024, 01:58

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: XML-шаблонизатор для Word, Excel и PDF
СообщениеДобавлено: Чт, дек 10 2015, 14:00 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, фев 14 2011, 07:26
Сообщения: 80
Откуда: Альфа Центавра
Пол: Мужской
Добрый день
Предлагаю вашему вниманию AOK 1.3 (ABAP office kit)
https://github.com/modekz/aok/

В 2-х словах нечто среднее между CALL TRANSFORMATION и шаблонизаторами в WEB.



Поддерживаемые форматы:
MS Word:
  • XML-Документ | XML-Документ 2003 (ZCL_AOK_TEXT=>C_WORD_XML)
  • Документ Word | Документ Word с поддержкой макросов (ZCL_AOK_TEXT=>C_WORD_DOCX)

MS Excel
  • Таблица XML 2003 (ZCL_AOK_TEXT=>C_EXCEL_XML_2003)
  • Книга Excel | Книга Excel с поддержкой макросов (ZCL_AOK_XLSX)

PDF
  • .xdp файлы Adobe LiveCycle Designer (ZCL_AOK_TEXT=>C_PDF)



Плюсы:
  • Генерация отчетов без OLE
    -Можно выполнять отчет в фоне, прикреплять к письму, создавать отчеты на Linux или Mac без установки MS Office
    -Скорость не зависит от presentation server
  • Разделение логики генерации отчета от основного кода.
    -Простой интерфейс (немного кода)
    -На вход подаем лишь структуру, объект или таблицу которая соответствует шаблону. Нет setter-ов (вроде cell->set_bold) или каких-либо специфичных методов. Существует только единственный метод объединения данных с шаблоном (ZIF_AOK->MERGE), остальные методы лишь получают результат: ZIF_AOK->DOWNLOAD, ZIF_AOK->SEND, ZIF_AOK->SHOW(показ в окне SAP), ZIF_AOK->SAVE(RETURN XSTRING)
  • Поддержка как простых (I, P, N, data reference …) так и составных (structure, table, object) типов. Те вывод дат, времени, чисел, таблиц (с подитогоами) и структур
  • Использование шаблона.
    -Использование привычных редакторов MS Office и Adobe Live CycleDesigner
    -Понятность документа, видно входные параметры ABAP и где они находятся в шаблоне
    -В шаблонах происходит подмена определённых xml тэгеов без генерирования всего документа, те можно подготовить диаграммы и сводные таблицы заранее с полным сохранением исходного форматирования

Минусы:
  • Сложность в окончательной “доводке” шаблона (Придется править xml “вручную” REPLACE-ом | REGEX-ом или использовать OLE


Последний раз редактировалось matik Вт, дек 22 2015, 09:23, всего редактировалось 5 раз(а).

Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XML шаблонизатор для Word, Excel и pdf
СообщениеДобавлено: Пт, дек 11 2015, 08:09 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, фев 14 2011, 07:26
Сообщения: 80
Откуда: Альфа Центавра
Пол: Мужской
В PROG ZAOK_INDEX исправлен
p_user TYPE syuname
для совместимости со старыми версиями. (github обновлен)


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XML шаблонизатор для Word, Excel и pdf
СообщениеДобавлено: Пт, янв 15 2016, 08:08 
Начинающий
Начинающий

Зарегистрирован:
Чт, янв 19 2012, 21:00
Сообщения: 7
Каким образом можно сделать автоматические расширение ширины строк в excel(в фоне)? Нашёл код, где делается автоматическое расширение высоты ячейки, но не получается по аналогии сделать ширину.
Code:
method ROW_WRITE_XML.
DATA:
l_new_row TYPE char10.

" To text
int_2_text im_new_row l_new_row.

" Write attributes
CONCATENATE ch_sheet_data `<row`
` r="` l_new_row `"` INTO ch_sheet_data.

" if im_row->customheight = 1 then height = im_row->ht
IF im_row->ht IS NOT INITIAL AND im_row->customheight IS NOT INITIAL.
CONCATENATE ch_sheet_data
` customHeight="` im_row->customheight `"`
` ht="` im_row->ht `"` INTO ch_sheet_data.
ENDIF.

" ht = 0
IF im_row->hidden IS NOT INITIAL.
CONCATENATE ch_sheet_data
` hidden="` im_row->hidden `"` INTO ch_sheet_data.
ENDIF.

" + sign
IF im_row->outlinelevel IS NOT INITIAL.
CONCATENATE ch_sheet_data
` outlinelevel="` im_row->outlinelevel `"` INTO ch_sheet_data.
ENDIF.

" Closing >
CONCATENATE ch_sheet_data `>` INTO ch_sheet_data.
ENDMETHOD. "row_write_xml


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XML шаблонизатор для Word, Excel и pdf
СообщениеДобавлено: Вт, янв 26 2016, 14:33 
Ассистент
Ассистент

Зарегистрирован:
Пн, дек 02 2013, 09:42
Сообщения: 33
Сделал шаблон, задача вывести по очереди все структуры, с таблицами полей для этой структуры .
Изображение
Предполагал, что место с которого начинается таблица/повторения к "{ROOT", но почему-то дублируется/повторяется и предшествующая строка "3.3.3 Структуры." .

То есть выглядит так:
Изображение
а должно было быть так:
Изображение

я что-то не так сделал?


---------------------------------------------------
Решил. Что бы заработала эта конструкция, необходимо перед копируемым участком документа вставить таблицу. Можно пустую, с прозрачными рёбрами.
(пытался обернуть в таблицу содержимое, не работает)


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XML шаблонизатор для Word, Excel и pdf
СообщениеДобавлено: Пт, фев 12 2016, 20:15 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, фев 14 2011, 07:26
Сообщения: 80
Откуда: Альфа Центавра
Пол: Мужской
спасибо что установили разработку
извиняюсь что поздно отвечаю, но лучше поздно чем никогда

если правильно понял, шаблон может выглядить как-то так
Изображение
вместо синих линий на рисунке их нужно стереть, но таблица в WORD-е должна остоватся одна

сами данные могут выглядеть так
Code:
  TYPES:
   BEGIN OF ty_comp,
     nn       TYPE i,
     fld_name TYPE string,
     fld_len  TYPE i,
   END OF ty_comp,

   BEGIN OF ty_root,
     name   TYPE string,
     text   TYPE string,
     t      TYPE STANDARD TABLE OF ty_comp WITH DEFAULT KEY,
     footer TYPE string,  " для примера
   END OF ty_root.

  DATA:
   lt_root TYPE STANDARD TABLE OF ty_root.

то есть R это таблица lt_root (которая идет на вход методу merge)
для каждого описания 1 структуры 1 строка (lt_root)
поле T это таблица с описанием полей текущей стуктуры

Есть пожий пример
SE38->ZAOK_INDEX->3-й пример (вложенные блоки)
Результат->Шаблон

если есть вопросы присылайте шаблон на email modekz@gmail.com
постараюсь оперативно ответить


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XML шаблонизатор для Word, Excel и pdf
СообщениеДобавлено: Пт, фев 12 2016, 21:05 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, фев 14 2011, 07:26
Сообщения: 80
Откуда: Альфа Центавра
Пол: Мужской
hzx99 написал(а):
Нашёл код, где делается автоматическое расширение высоты ячейки

не совсем так, в шаблоне (XLSX) для сохранения исходного форматирования для строк запоминаются:
  • высота
  • вложенность группировки (плюсик для показа и скрытия (outlineLevel))
  • скрывать ли строку
  • слияние ячеек (merged cells)
  • именованные диапазоны (VBA range), итп
ROW_WRITE_XML пишет атрибуты тэга row

hzx99 написал(а):
Каким образом можно сделать автоматические расширение ширины строк в excel

  • Можно вычислять приблизительно ширину и писать в REGEX-ом в xl\worksheets\sheet1.xml (сложновато и не очень точно)
  • Можно запустить макрос в xlsm (Открыть шаблон и запустить Application.RUN "ИМЯ_МАКРОСА"), но вроде вы говорили в фоне
  • Самый простой вариант представляется мне, создать сводную таблицу на основе исходных данных (в сводных таблицах пу ширина столбцов расширяется автоматом)
    Положить каждый столбец таблицы в строки сводной таблицы (без столбцов!)
    может звучит это странно, но людей обычно устраивает такой подход (можно добавить несколько группировок, срезов и фильтров для красоты и показать 2-й клик)
    те зачастую окончательную доводку таблиц ИМХО делать через сводные таблицы

пример для сводных таблиц
SE38->ZAOK_INDEX->8-й пример Сводные таблицы и списки (Excel .xlsx)
Результат->Шаблон


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XML шаблонизатор для Word, Excel и pdf
СообщениеДобавлено: Ср, ноя 08 2017, 09:39 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, мар 31 2010, 07:59
Сообщения: 56
Добрый день
Установил программу
Теперь ошибка сыпятся
INTF ZIF_AOK " Base interface for generating reports
INTF ZIF_FILE_INFO " Info about file template
INTF ZIF_SCREEN_EVENT

Отсутствует

Что то я не правильно делаю? кажется.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XML шаблонизатор для Word, Excel и pdf
СообщениеДобавлено: Пт, ноя 10 2017, 05:33 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, фев 14 2011, 07:26
Сообщения: 80
Откуда: Альфа Центавра
Пол: Мужской
Салем
возможно не стоит плагин для saplink для интерфейса.
Если что пиши на скайп. (скинул в личку)


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XML шаблонизатор для Word, Excel и pdf  Тема решена
СообщениеДобавлено: Пн, ноя 13 2017, 13:24 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, дек 20 2007, 18:21
Сообщения: 1613
Вместо саплинк лучше использовать abapgit. См. пост в этом форуме.

_________________
я твой сап эфай внедрял
BAdI-позитив
Взять немножечко абопу, сунь туда кошачью *опу, RFC лапки, БТ старой бабки, на медленном базиснике переносить, тестовое окружение материть, снимать SAT пенку, биться головой о стенку, охапка тайм-шитов, отчет готов!


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB