Текстовая область с подсветкой синтаксиса в ABAP DynPro - PullRequest
2 голосов
/ 23 декабря 2011

Есть ли пользовательский элемент управления ABAP, с помощью которого я могу реализовать подсветку синтаксиса? Я использую DynPro, а не Web Dynpro.

Я хочу отобразить текстовую область, которая выделяет код XML. Было бы также хорошо, если бы я мог переместить курсор в определенную позицию внутри текстовой области и, следовательно, внутри кода.

Могу ли я сделать это с cl_gui_textedit?

Ответы [ 3 ]

4 голосов
/ 24 декабря 2011

Вы можете использовать класс 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'.

include 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.

Я не думаю, что можно показать и переместить курсор.

2 голосов
/ 25 декабря 2011

Вы можете использовать любой объект ActiveX или объект, который поддерживает OLE-автоматизацию на клиенте, и запускать его внутри пользовательского элемента управления на экране SAP GUI.Если вы пользуетесь Google, я думаю, вы можете найти что-то, чтобы удовлетворить ваши потребности.Затем вы можете установить настраиваемую область управления на экране и запустить приложение внутри нее.

Это требует, конечно, заранее знать, что соответствующее приложение установлено на клиенте, и если вы не можетечтобы создать его экземпляр из ABAP, вы можете выдать ошибку пользователю.

1 голос
/ 25 декабря 2011

Улучшение ответа Рене: если у вас есть элемент управления HTML, вы также можете загрузить в него какой-нибудь редактор на основе HTML, такой как EditArea , вместо исходного документа и показывать и / или редактировать XML в этом редактор.

...