是否有可以实现语法高亮的 ABAP 自定义控件?我使用的是 DynPro 而不是 Web Dynpro。
我想显示一个突出显示 XML 代码的文本区域。如果我可以将光标移动到文本区域内的某个位置,也就是代码内的某个位置,那就太好了。
我可以这样做cl_gui_textedit
吗?
是否有可以实现语法高亮的 ABAP 自定义控件?我使用的是 DynPro 而不是 Web Dynpro。
我想显示一个突出显示 XML 代码的文本区域。如果我可以将光标移动到文本区域内的某个位置,也就是代码内的某个位置,那就太好了。
我可以这样做cl_gui_textedit
吗?
您可以使用cl_gui_html_viewer
该类在 SAP GUI 中显示 XML 代码。此控件默认使用 Internet Explorer 来显示 HTML 内容,并且还能够显示 XML 内容。这里有一些快速和肮脏的示例代码可以帮助您入门。它是具有一个 screen 的程序的一部分,其中包含一个名为(height 27, width 120)100
的自定义控件。XMLDEMO
报告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.
我认为不可能显示和移动光标。
您可以在客户端上使用任何支持 OLE 自动化的 ActiveX 对象或对象,并在 SAP GUI 屏幕的自定义控件中运行它。如果你到处谷歌,我想你可能会找到适合你需要的东西。然后,您可以在屏幕上建立一个自定义控制区域并在其中运行应用程序。
这当然要求您预先知道有问题的应用程序已安装在客户端上,如果您无法从 ABAP 实例化它,则可以向用户发出错误。
改进 René 的回答:如果您有一个 HTML 控件,您不妨将一些基于 HTML 的编辑器(如EditArea)加载到其中,而不是源文档,并在该编辑器中显示和/或编辑 XML。