Показаны сообщения с ярлыком web dynpro. Показать все сообщения
Показаны сообщения с ярлыком web dynpro. Показать все сообщения

понедельник, 23 апреля 2012 г.

Особенности вывода PDF в Web Dynpro

При использовании Web Dynpro компонента INTERACTIVE_FORM для вывода PDF прямо в HTML страницу могут возникнуть некоторые проблемы.

Например, если на представлении помимо компонента INTERACTIVE_FORM присутствуют другие элементы, которые должны реагировать на действия пользователя - типичный вариант, кнопка Назад - то реагировать они не будут. Происходит это похоже потому, что используемый для вывода Adobe Reader перехватывает эти события и до обработчиков они не доходят. Возможно, это сделано для работы с интерактивными PDF-формами. Не знаю, пока с ними не сталкивался.
Но если у Вас обычная форма, которую нужно просто показать пользователю, то решением будет просто снятие флага Enabled у компонента INTERACTIVE_FORM.

Вторая тонкость заключается в способе формирования PDF. Компонент позволяет 2 варианта. В первом случае вы задаете в свойстве templateSource имя шаблона,  а в свойство dataSource "байндите" данные. Очень похоже на то, как  PDF выводится через свой сгенерированный ФМ при работе через SAP GUI. Но при выводе этим способом уже неоднократно сталкивались с тем, что при этом формируемый  на сайте PDF либо вообще не содержит текста, либо кракозябры вместо него. Возможно проблема в отсутствии каких-то шрифтов или прописанных путей до них. Пока не нашли в чем дело. Да и не искали особо. Потому что есть более надежный и простой способ - сгенерировать PDF как обычно через ФМ, но не выводить его, а получить сформированный файл в виде XSTRING и присвоить свойству pdfSource компонента INTERACTIVE_FORM. Для получения файла в виде XSTRING необходимо при вызове ФМ FP_JOB_OPEN передать в параметре ie_outputparams установленные поля nodialog и getpdf. При этом вызов сгенерированного ФМ для формирования выходного документа в параметре /1bcdwb/formoutput вернет в поле pdf созданный файл.