繁体   English   中英

在ABAP DynPro中使用语法突出显示的Textarea

[英]Textarea with syntax highlightning in ABAP DynPro

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

我想显示一个突出显示XML代码的文本区域。 如果我可以将光标移动到textarea内的某个位置,然后将其移动到代码内,那也将是很好的。

我可以使用cl_gui_textedit吗?

您可以使用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.

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

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

当然,这要求您先了解客户端上已安装了相关应用程序,并且如果无法从ABAP实例化该应用程序,则可能会给用户带来错误。

改进René的答案:如果您具有HTML控件,则最好将诸如EditArea之类的基于HTML的编辑器加载到其中,而不是将其加载到源文档中,并在该编辑器中显示和/或编辑XML。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM