Textarea在ABAP DynPro中使用语法高亮显示

时间:2011-12-23 13:37:57

标签: textarea syntax-highlighting abap dynpro

是否有ABAP自定义控件可以实现语法突出显示?我使用的是DynPro,而不是Web Dynpro。

我想显示一个突出显示XML代码的textarea。如果我可以将光标移动到textarea内的某个位置并因此移动到代码中,那也很棒。

我可以使用cl_gui_textedit执行此操作吗?

3 个答案:

答案 0 :(得分:4)

您可以使用cl_gui_html_viewer类在SAP GUI中显示XML代码。此控件默认使用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.

我认为不可能显示和移动光标。

答案 1 :(得分:2)

您可以在客户端上使用支持OLE自动化的任何ActiveX对象或对象,并在SAP GUI屏幕中的自定义控件内运行该对象或对象。如果您使用Google,我认为您可能会找到适合您需求的内容。然后,您可以在屏幕上建立自定义控件区域并在其中运行应用程序。

这当然要求您事先知道有问题的应用程序已安装在客户端上,如果您无法从ABAP实例化它,则可能会向用户发出错误。

答案 2 :(得分:1)

改进René的答案:如果你有一个HTML控件,你也可以加载一些基于HTML的编辑器,如EditArea,而不是源文档,并在该编辑器中显示和/或编辑XML。