Текущее время: Вт, июн 19 2018, 06:48

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


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


ВНИМАНИЕ!

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



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

Зарегистрирован:
Пн, фев 14 2011, 08:26
Сообщения: 66
Откуда: Альфа Центавра
Пол: Мужской
Доброго времени суток
Предлагаю вашему вниманию 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, 10:23, всего редактировалось 5 раз(а).

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

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


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

Зарегистрирован:
Чт, янв 19 2012, 22: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, 15:33 
Ассистент
Ассистент

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

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

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


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


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

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

если правильно понял, шаблон может выглядить как-то так
Изображение
вместо синих линий на рисунке их нужно стереть, но таблица в 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, 22:05 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, фев 14 2011, 08:26
Сообщения: 66
Откуда: Альфа Центавра
Пол: Мужской
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, 10:39 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, мар 31 2010, 08: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, 06:33 
Младший специалист
Младший специалист
Аватара пользователя

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


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

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

_________________
я твой сап эфай внедрял
BAdI-позитив


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

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


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

Сейчас этот форум просматривают: Google [Bot]


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

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