Итак с божьей помощью удалось реализовать требуемый интерфейс. Но в тех.задании было указано что несколько полей имеют фиксированный диапазон значений - а конкретно от 0 до 3 с шагом 0.5. Можно конечно попытаться реализовать проверку самостоятельно, но я поддался природной лени и решил поискать как остальные люди справляются с подобными задачами.
В результате поисков я наткнулся на библиотеку jquery-ui.js - все красиво, рисуются нужные элементы управления, осталось прикрутить библиотеку к SAP.
Для начала я скачал все входящие в библиотеку файлы и поправил пути в библиотеке стилей jquery-ui.css и в библиотеке jquery-ui.js. Далее я загрузил все файлы (включая PNG) библиотеки в репозиторий SAP (транзакция SMW0). В процессе загрузки пришлось создать новый MIME тип png/image через ведение mime типов
После этого я попытался выгрузить файлы библиотеки вот таким SAP кодом:
Код
Вроде все отработало без ошибок, элементы управления создавались как и описано в документации. Но картинки на кнопках управления не появлялись. Так как ссылки на png ресурсы были прописаны в CSS библиотеке, то я предположил что при выгрузке из репозитория они располагаются так что нативный HTML не видит пути к этим файлам. И точно, если перенести ссылки на png в сам шаблон - то все отображается и работает. Вот так выглядит заголовок в шаблоне, на основании которого строится HTML интерфейс:
Код
В результате поисков я наткнулся на библиотеку jquery-ui.js - все красиво, рисуются нужные элементы управления, осталось прикрутить библиотеку к SAP.
Для начала я скачал все входящие в библиотеку файлы и поправил пути в библиотеке стилей jquery-ui.css и в библиотеке jquery-ui.js. Далее я загрузил все файлы (включая PNG) библиотеки в репозиторий SAP (транзакция SMW0). В процессе загрузки пришлось создать новый MIME тип png/image через ведение mime типов
После этого я попытался выгрузить файлы библиотеки вот таким SAP кодом:
Код
call method creat_html_control->load_mime_object exporting object_url = 'jquery-ui.css' object_id = 'z_jquery_ui' exceptions others = 1. call method creat_html_control->load_mime_object exporting object_url = 'jquery-ui.structure.css' object_id = 'Z_jquery_ui_structure_css' exceptions others = 1. call method creat_html_control->load_mime_object exporting object_url = 'jquery-ui.theme.css' object_id = 'z_jquery_ui_theme_css' exceptions others = 1. call method creat_html_control->load_mime_object exporting object_url = 'jquery-ui.js' object_id = 'Z_jquery-ui_js' exceptions others = 1. call method creat_html_control->load_mime_object exporting object_url = 'jquery.js' object_id = 'z_jquery_js' exceptions others = 1. call method creat_html_control->load_mime_object exporting object_url = 'ui-bg_diagonals-thick_18_b81900_40x40.png' object_id = 'Z_ui-bg_diagonals-thick_18_b81900_40x40' exceptions others = 1. call method creat_html_control->load_mime_object exporting object_url = 'ui-bg_diagonals-thick_20_666666_40x40.png' object_id = 'Z_ui-bg_diagonals-thick_20_666666_40x40' exceptions others = 1. call method creat_html_control->load_mime_object exporting object_url = 'ui-bg_flat_10_000000_40x100.png' object_id = 'Z_ui-bg_flat_10_000000_40x100' exceptions others = 1. call method creat_html_control->load_mime_object exporting object_url = 'ui-bg_glass_100_f6f6f6_1x400.png' object_id = 'Z_ui-bg_glass_100_f6f6f6_1x400' exceptions others = 1. call method creat_html_control->load_mime_object exporting object_url = 'ui-bg_glass_100_fdf5ce_1x400.png' object_id = 'z_ui-bg_glass_100_fdf5ce_1x400' exceptions others = 1. call method creat_html_control->load_mime_object exporting object_url = 'ui-bg_glass_65_ffffff_1x400.png' object_id = 'Z_ui-bg_glass_65_ffffff_1x400' exceptions others = 1. call method creat_html_control->load_mime_object exporting object_url = 'ui-bg_gloss-wave_35_f6a828_500x100.png' object_id = 'Z_ui-bg_gloss-wave_35_f6a828_500x100' exceptions others = 1. call method creat_html_control->load_mime_object exporting object_url = 'ui-bg_highlight-soft_100_eeeeee_1x100.png' object_id = 'Z_ui-bg_highlight-soft_100_eeeeee_1x100' exceptions others = 1. call method creat_html_control->load_mime_object exporting object_url = 'ui-bg_highlight-soft_75_ffe45c_1x100.png' object_id = 'z_ui-bg_highlight-soft_75_ffe45c_1x100' exceptions others = 1. call method creat_html_control->load_mime_object exporting object_url = 'ui-icons_222222_256x240.png' object_id = 'z_ui-icons_222222_256x240' exceptions others = 1. call method creat_html_control->load_mime_object exporting object_url = 'ui-icons_228ef1_256x240.png' object_id = 'z_ui-icons_228ef1_256x240' exceptions others = 1. call method creat_html_control->load_mime_object exporting object_url = 'ui-icons_ef8c08_256x240.png' object_id = 'z_ui-icons_ef8c08_256x240' exceptions others = 1. call method creat_html_control->load_mime_object exporting object_url = 'ui-icons_ffd27a_256x240.png' object_id = 'z_ui-icons_ffd27a_256x240' exceptions others = 1. call method creat_html_control->load_mime_object exporting object_url = 'ui-icons_ffffff_256x240.png' object_id = 'z_ui-icons_ffffff_256x240' exceptions others = 1. |
Код
<html> <head> <link href="jquery-ui.css" rel="stylesheet"> <script src="jquery.js"></script> <script src="jquery-ui.js"></script> <style> .ui-icon { width: 16px; height: 16px; } .ui-icon, .ui-widget-content .ui-icon { background-image: url("ui-icons_222222_256x240.png"); } .ui-widget-header .ui-icon { background-image: url("ui-icons_ffffff_256x240.png"); } .ui-state-default .ui-icon { background-image: url("ui-icons_ef8c08_256x240.png"); } .ui-state-hover .ui-icon, .ui-state-focus .ui-icon { background-image: url("ui-icons_ef8c08_256x240.png"); } .ui-state-active .ui-icon { background-image: url("ui-icons_ef8c08_256x240.png"); } .ui-state-highlight .ui-icon { background-image: url("ui-icons_228ef1_256x240.png"); } .ui-state-error .ui-icon, .ui-state-error-text .ui-icon { background-image: url("ui-icons_ffd27a_256x240.png"); } </style> </head> |