Текстовая область с подсветкой синтаксиса в ABAP DynPro
Есть ли пользовательский элемент управления ABAP, с помощью которого я могу реализовать подсветку синтаксиса? Я использую DynPro, а не Web Dynpro.
Я хочу отобразить текстовую область, которая выделяет код XML. Также было бы здорово, если бы я мог переместить курсор в определенную позицию внутри текстовой области и, следовательно, внутри кода.
Могу ли я сделать это с cl_gui_textedit
?
3 ответа
Вы можете использовать cl_gui_html_viewer
класс для отображения кода XML в графическом интерфейсе SAP. Этот элемент управления по умолчанию использует Internet Explorer для отображения содержимого HTML, а также может отображать содержимое XML. Вот небольшой пример кода для быстрого начала работы. Это часть программы, которая имеет один экран 100
, содержащий пользовательский элемент управления с именем XMLDEMO
(высота 27, ширина 120).
Отчет zxmldemo:
report zxmldemo.
include zxmldemo_status_0100o01.
start-of-selection.
set screen '100'.
И включить zxmldemo_status_0100o01:
module status_0100 output.
data xmlstringtable type standard table of char255.
append '<?xml version="1.0" encoding="ISO-8859-1"?>' to xmlstringtable.
append '<note><to>Tove</to><from>Jani</from>' to xmlstringtable.
append '<heading>Reminder</heading>' to xmlstringtable.
append '<body>Don''t forget me this weekend!</body></note>' to xmlstringtable.
data container type ref to cl_gui_custom_container.
create object container
exporting
container_name = 'XMLDEMO'.
data htmlviewer type ref to cl_gui_html_viewer.
create object htmlviewer
exporting
parent = container.
data url(1024) type c value 'test.xml'.
htmlviewer->load_data( exporting url = url type = 'text' subtype = 'xml'
changing data_table = xmlstringtable ).
htmlviewer->show_url( url ).
endmodule.
Я не думаю, что можно показать и переместить курсор.
Вы можете использовать любой объект ActiveX или объект, который поддерживает OLE-автоматизацию на клиенте, и запустить его внутри пользовательского элемента управления на экране SAP GUI. Если вы пользуетесь Google, я думаю, вы можете найти что-то, чтобы удовлетворить ваши потребности. Затем вы можете установить настраиваемую область управления на экране и запустить приложение внутри нее.
Это, конечно, требует, чтобы вы знали заранее, что рассматриваемое приложение установлено на клиенте, и если вы не можете создать его экземпляр из ABAP, вы можете выдать ошибку пользователю.
Улучшение ответа Рене: если у вас есть элемент управления HTML, вы также можете загрузить в него какой-нибудь редактор на основе HTML, например, EditArea, вместо исходного документа и показать и / или отредактировать XML в этом редакторе.