SAPфорум.RU https://www.sapboard.ru/forum/ |
|
Генерация QR кода больших размеров средствами SAP https://www.sapboard.ru/forum/viewtopic.php?f=13&t=95947 |
Страница 2 из 2 |
Автор: | MeIIIok [ Чт, янв 18 2018, 17:21 ] |
Заголовок сообщения: | Re: Генерация QR кода больших размеров средствами SAP |
DiVo написал(а): Сначала в тр. SE73 создайте свой QR код (как здесь): https://blogs.sap.com/2016/05/12/qr-code-or-2d-bar-code-in-sap/ Затем для смартформы создайте стиль и в этом стиле создайте формат знаков, ссылающийся на ранее созданный QR код. Далее используйте этот формат в смартформе для отображения QR кода. Спасибо огромное всем , сейчас вышло сделать QR код размерностью в 560 символов байтовый в юникоде. Теперь буду отлаживать код смартформ для того чтобы выяснить как QR создается таких размеров и выходит на экран. Если кто то может сразу сказать в какой фм/класс залезть буду признателен. |
Автор: | MeIIIok [ Пт, янв 19 2018, 15:00 ] |
Заголовок сообщения: | Re: Генерация QR кода больших размеров средствами SAP |
Все заработало. Получилось посмотреть каким образом запускаются системные функции при создании QR в смартформах. В итоге переменная, в которой лежит текст кода должна быть DATA: barcdata(6144) TYPE c. Генерю следующим образом Code: CALL 'RSPO_CACHE_CONTROL' ID 'AREA' FIELD 'BARCODE'
ID 'OP' FIELD 'RENDERBARCODE' ID 'BC_PAR' FIELD bc_cmd-tdprintpar ID 'BP_PAR' FIELD bp_cmd-tdprintpar ID 'BARCDATA' FIELD barcdata ID 'BARCDATALEN' FIELD barcdatalen ID 'BMSIZE' FIELD bitmapsize ID 'WIDTH' FIELD w ID 'HEIGHT' FIELD h ID 'MSG' FIELD msg ID 'ERRMSG' FIELD errmsg. IF sy-subrc = 0. * get bitmap buffer totallen = 0. DO. CALL 'RSPO_CACHE_CONTROL' ID 'AREA' FIELD 'BARCODE' ID 'OP' FIELD 'GETBITMAP' ID 'BUFFER' FIELD bmbuf-data ID 'LENGTH' FIELD c_bmbuf_size ID 'ACTSIZE' FIELD actlen. IF sy-subrc = 0. IF actlen > 0. APPEND bmbuf. ADD actlen TO totallen. ENDIF. IF totallen >= bitmapsize. sy-subrc = 0. EXIT. ENDIF. ELSE. * write: / 'ERROR at GETBITMAP, SUBRC', sy-subrc. EXIT. ENDIF. ENDDO. IF sy-subrc = 0. * write: / 'Read', totallen, 'bytes of bitmap data'. ENDIF. ELSE. CONCATENATE errmsg ':' msg INTO errormsg. sy-subrc = 1. "concatenate changes SUBRC ENDIF. |
Автор: | MeIIIok [ Пт, янв 19 2018, 15:08 ] |
Заголовок сообщения: | Re: Генерация QR кода больших размеров средствами SAP |
Сейчас есть следующая проблема, при генерации кода не может создать bitmap больше 871 кб. Это дает ограничение на QR код при уровне корректировке H максимум 220 символов, при L максимум 500 символов. QR код у меня в байтовой кодировке. Ошибка сразу после выполнения системной функции RSPO_CACHE_CONTROL Сообщение следующее: Никто не знает можно ли расширить объем графического файла? |
Автор: | DiVo [ Вт, янв 23 2018, 11:57 ] |
Заголовок сообщения: | Re: Генерация QR кода больших размеров средствами SAP |
MeIIIok написал(а): Никто не знает можно ли расширить объем графического файла? А какая конечная цель, получить bmp-файл с QR кодом? Я правильно понимаю, теперь любые QR коды выводятся на смартформу без каких-либо ограничений, проблема только в формировании bmp-файла? |
Автор: | MeIIIok [ Ср, янв 24 2018, 21:00 ] |
Заголовок сообщения: | Re: Генерация QR кода больших размеров средствами SAP |
DiVo написал(а): MeIIIok написал(а): Никто не знает можно ли расширить объем графического файла? А какая конечная цель, получить bmp-файл с QR кодом? Я правильно понимаю, теперь любые QR коды выводятся на смартформу без каких-либо ограничений, проблема только в формировании bmp-файла? Конечная цель получить QR код в bmp файл и прицепить его к эксель форме, часть данных из которой будет зашита в QR код. Да, теперь в смартформу можно вывести практически любой QR код, ограничением является размер страницы смартформы и физическое ограничение QR кода (для кириллицы около 1500 символов) и как в моем случае ограничение на BMP файл, причем это ограничение сработает и в смартформе, так как там выполняется точно такой же код. |
Автор: | UKY [ Пн, янв 29 2018, 18:04 ] |
Заголовок сообщения: | Re: Генерация QR кода больших размеров средствами SAP |
Может быть, получится установить какую-нибудь утилиту на сервер приложений и запускать её, чтобы генерировался BMP-файл? http://www.linux-magazine.com/Online/Features/Generating-QR-Codes-in-Linux |
Автор: | AFH [ Вт, янв 30 2018, 04:37 ] |
Заголовок сообщения: | Re: Генерация QR кода больших размеров средствами SAP |
А там случайно нет настройки какая ширина\высота квадратика qr-кода в пикселах? Может поменьше поставить? Тогда будет генерироваться файл меньшего размера. |
Автор: | DiVo [ Ср, янв 31 2018, 22:22 ] |
Заголовок сообщения: | Re: Генерация QR кода больших размеров средствами SAP |
MeIIIok написал(а): Да, теперь в смартформу можно вывести практически любой QR код Если QR коды выводятся на смартформу без проблем, то можно попробовать сделать следующим образом: 1. Вывести QR код на смартформу без отображения на экране, получить отрендеренное содержимое смартформы в формате OTF. Подробно описано здесь http://sap-technique.blogspot.ru/2017/04/converting-smart-forms-output-to-pdf.html, см. параметры control_parameters-no_dialog, control_parameters-getotf и job_output_info-otfdata[]. 2. Выгрузить полученные OTF данные способом, описанным здесь https://blogs.sap.com/2016/05/12/qr-code-or-2d-bar-code-in-sap/. В блоге есть программа, надо использовать кусок кода, который идёт сразу после вызова процедуры bitmap2otf Code: perform bitmap2otf IN PROGRAM sapmssco
tables bitmap otf using bitmapsize w h. |
Автор: | MeIIIok [ Ср, фев 07 2018, 12:55 ] |
Заголовок сообщения: | Re: Генерация QR кода больших размеров средствами SAP |
UKY написал(а): Может быть, получится установить какую-нибудь утилиту на сервер приложений и запускать её, чтобы генерировался BMP-файл? http://www.linux-magazine.com/Online/Features/Generating-QR-Codes-in-Linux Думали про это, вопрос, как эту утилиту вызывать из Abap и как передавать на нее параметры. AFH написал(а): А там случайно нет настройки какая ширина\высота квадратика qr-кода в пикселах? Может поменьше поставить? Тогда будет генерироваться файл меньшего размера. Такой настройки не видел. |
Автор: | MeIIIok [ Ср, фев 07 2018, 12:58 ] |
Заголовок сообщения: | Re: Генерация QR кода больших размеров средствами SAP |
DiVo написал(а): MeIIIok написал(а): Да, теперь в смартформу можно вывести практически любой QR код Если QR коды выводятся на смартформу без проблем, то можно попробовать сделать следующим образом: 1. Вывести QR код на смартформу без отображения на экране, получить отрендеренное содержимое смартформы в формате OTF. Подробно описано здесь http://sap-technique.blogspot.ru/2017/04/converting-smart-forms-output-to-pdf.html, см. параметры control_parameters-no_dialog, control_parameters-getotf и job_output_info-otfdata[]. 2. Выгрузить полученные OTF данные способом, описанным здесь https://blogs.sap.com/2016/05/12/qr-code-or-2d-bar-code-in-sap/. В блоге есть программа, надо использовать кусок кода, который идёт сразу после вызова процедуры bitmap2otf Code: perform bitmap2otf IN PROGRAM sapmssco tables bitmap otf using bitmapsize w h. Не выйдет, так как ограничение на размер bitmap вылетает в момент выполнения системной функции, которая генерит сам qr код. |
Страница 2 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |