Type | Template | Report |
---|---|---|
Excel | Template | Report |
Html | Template | Report |
Word | Template | Report |
Adobe PDF | Template | Report |
xtt->MERGE( IV_BLOCK_NAME = ‘R’ IS_BLOCK =
{"TITLE"=>"Document title", "TEXT"=>"Just string", "INT"=>3, "BOTTOM"=>"bottom"}
).
Самый простой способ отправить простые данные в отчет - передать их в структуре (или в атрибутах объекта)
" Document structure
BEGIN OF ts_root,
title TYPE char15,
text TYPE string,
int TYPE i,
bottom TYPE string, " Any field could be REF TO, STRUCTURE or TABLE
END OF ts_root.
Данные могут выглядеть так:
ls_root-title = 'Document title'.
ls_root-text = 'Just string'.
ls_root-int = 3.
ls_root-bottom = 'bottom'.
Шаблон в Excel, Word или pdf может выглядеть так:
Basic example
Title: {R-TITLE}
Just put markers where you want
Just string {R-TEXT}
Integer {R-INT}
Bottom: {R-BOTTOM}
Если объединить структуру с данными ls_root отчет может выглядеть так
Basic example
Title: Document title
Just put markers where you want
Just string Just string
Integer 3
Bottom: bottom ***
Библиотека XTT
Код для вывода данной структуры в шаблон может выглядеть так:
NEW zcl_xtt_excel_xlsx( NEW zcl_xtt_file_smw0( ) )->merge( ls_root )->download( ).
* Код библиотеки совместим с версией ABAP 7.02. Новый синтаксис используется в демонстративных целях
1) ZCL_XTT_EXCEL_XLSX можно заменить на 1 из классов потомков ZCL_XTT
2) Вместо ZCL_XTT_FILE_SMW0 на любой из следующих
3) Метод MERGE( ) можно вызывать не сколько раз, для разных меток. По умолчанию ‘R’
4) Метод DOWNLOAD( ) имеет опциональные параметры для выгрузки отчета. Для прочих действий можно воспользоваться одним из методов:
Все форматирование текста внутри {} остается неизменным.
В word зачастую, блок который выглядит одинаково может состоять из нескольких с одинаковым форматированием.
Обязательно проверьте всю орфографию в WORD нажав F7, так как некоторые символы {};= приводят к орфографическим ошибкам и соответственно к разным XML блокам внутри документа.
Для исключение подобного случая нужно скопировать блок с {} в notepad, скопировать в нем и вставить обратно
Теперь если в Word будет подобное фоматирование (Классы ZCL_XTT_WORD_DOCX и ZCL_XTT_WORD_XML)
форматирование будет аналогично 1-й части текста