Type | Template | Report |
---|---|---|
Excel | Template | Report |
Word | Template | Report |
Word | Template | Report |
Word XML | Template | Report |
Adobe PDF | Template | Report |
xtt->MERGE( IV_BLOCK_NAME = ‘R’ IS_BLOCK =
{"TITLE"=>"Test icons", "T"=>[{"ID"=>"@00@", "NAME"=>"ICON_DUMMY", "IMG"=>"REF UNSUPPORTED", "RAW"=>""}, {"ID"=>"@01@", "NAME"=>"ICON_CHECKED", "IMG"=>"REF UNSUPPORTED", "RAW"=>""}, {"ID"=>"@02@", "NAME"=>"ICON_INCOMPLETE", "IMG"=>"REF UNSUPPORTED", "RAW"=>""}, {"ID"=>"@03@", "NAME"=>"ICON_FAILURE", "IMG"=>"REF UNSUPPORTED", "RAW"=>""}, {"ID"=>"@04@", "NAME"=>"ICON_POSITIVE", "IMG"=>"REF UNSUPPORTED", "RAW"=>""}, {"ID"=>"@05@", "NAME"=>"ICON_NEGATIVE", "IMG"=>"REF UNSUPPORTED", "RAW"=>""}, {"ID"=>"@06@", "NAME"=>"ICON_LOCKED", "IMG"=>"REF UNSUPPORTED", "RAW"=>""}, {"ID"=>"@07@", "NAME"=>"ICON_UNLOCKED", "IMG"=>"REF UNSUPPORTED", "RAW"=>""}, {"ID"=>"@0B@", "NAME"=>"ICON_TOTAL_LEFT", "IMG"=>"REF UNSUPPORTED", "RAW"=>""}, {"ID"=>"@0C@", "NAME"=>"ICON_TOTAL_RIGHT", "IMG"=>"REF UNSUPPORTED", "RAW"=>""}, {"ID"=>"@0D@", "NAME"=>"ICON_COLUMN_LEFT", "IMG"=>"REF UNSUPPORTED", "RAW"=>""}, {"ID"=>"@0E@", "NAME"=>"ICON_COLUMN_RIGHT", "IMG"=>"REF UNSUPPORTED", "RAW"=>""}, {"ID"=>"@0F@", "NAME"=>"ICON_PAGE_RIGHT", "IMG"=>"REF UNSUPPORTED", "RAW"=>""}, {"ID"=>"@0G@", "NAME"=>"ICON_PAGE_LEFT", "IMG"=>"REF UNSUPPORTED", "RAW"=>""}, {"ID"=>"@0H@", "NAME"=>"ICON_PREVIOUS_VALUE", "IMG"=>"REF UNSUPPORTED", "RAW"=>""}]}
).
Изображения в шаблоне
Как удобнее показать в шаблоне что в данном месте будет отображено несколько картинок?
Если в шаблоне заранее известное количество рисунков, можно создать пустые изображения и менять из содержимое в runtime. Проблем с подменой содержимого не возникает, тк в форматах на основе XML изображения обычно хранятся в base64, в офисных пакетах это картинки в определенных директориях в самом zip архиве шаблона. Тут все довольно просто
Простые картинки
Если вывод ни чем не осложнен и картинка в шаблоне это обычный прямоугольник, можно описать картинку как и прочие поля
На стороне ABAP нам понадобиться лишь 1 дополнительный класс zcl_xtt_image. Его инстанция и будет готовое изображение
img TYPE REF TO zcl_xtt_image, " <--- IMAGE
При создании объекта нужно будет передать лишь двоичные данные (iv_image TYPE xString)
" Create new instance
<ls_icon>-img = zcl_xtt_image=>create_image( iv_image = lv_image ).
Дополнительно можно передать размер изображения и его формат (расширение)
" Create new instance
<ls_icon>-img = zcl_xtt_image=>create_image( iv_image = lv_image
iv_ext = '.gif'
iv_width = lv_width
iv_height = lv_height ).
Но что если нам нужна еще рамка для изображения и скругленные края?
Шаблоны картинок
Если добавлять параметры в виде текста {R-T-IMG;borderColor=black;border-style=dotted} таких параметров будет очень много и сама реализация будет сильно отличаться в pdf от Excel.
1) Excel
Самый простой вариант добавить в альтернативный текст ID для данного поля
Но данный способ совсем не информативен (его просто не видно), и чтобы облегчить жизнь абаперу, который будет искать откуда растут ноги у данной картинки, можно назвать само изображение в соответствии с передаваемым в шаблон полем ABAP
Вот так будет понятнее, но чтобы минимизировать количество проклятий, можно сделать еще проще
Просто указать поле вместе с шаблоном для картинки в одной ячейке Excel
Результат Excel
2) Word
Кузен Excel также имеет поле альтернативный текст.
Но легко ли его заметить? В Word есть закладки и гиперссылки, но они также имеют тот же не достаток
В примечаниях его заметить будет намного проще
Результат Word
3) Pdf
И на конец, горячо любимый формат печати Pdf & LiveCycle Designer
Может не только использовать тексты, и менять тип на Image
Но и позволяет, при определенном желании, давать имена в фигурных скобках на вкладке XML Source
Но можно также указать его в URL (правда это не так заметно)
Результат Pdf