2011-12-23 31 views
2

構文の強調表示を実現するためのABAPカスタムコントロールがありますか?私はWeb DynproではなくDynProを使用しています。ABAP DynProで構文の強調表示を行うTextarea

XMLコードをハイライト表示するテキストエリアを表示したいとします。また、カーソルをテキストエリア内の特定の位置に移動してコード内に移動することもできます。

cl_gui_texteditでこれを行うことはできますか?

答えて

5

cl_gui_html_viewerクラスを使用して、XMLコードをSAP GUIに表示することができます。このコントロールは、デフォルトでInternet Explorerを使用してHTMLコンテンツを表示し、XMLコンテンツを表示することもできます。 ここに、簡単に始めるためのサンプルコードがあります。これは、XMLDEMO(高さ27、幅120)という名前のカスタムコントロールを含む1つの画面100を持つプログラムの一部です。

レポート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. 

に私はそれがカーソルを表示して移動することはできないと思います。

+0

詳細なコードドラフトありがとう!すぐに働いた!私がカーソルを動かすことができれば素晴らしいだろう... –

2

クライアント上でOLEオートメーションをサポートする任意のActiveXオブジェクトまたはオブジェクトを使用して、SAP GUI画面のカスタムコントロール内で実行することができます。あなたがGoogleの周りにいる場合、私はあなたのニーズに合うものを見つけるかもしれないと思う。次に、画面上にカスタムコントロール領域を設定し、そこにアプリケーションを実行することができます。

これは、問題のアプリケーションがクライアントにインストールされていることを前もって知っており、ABAPからインスタンス化できない場合は、エラーをユーザーに与えることができます。

+0

それはかなりクールです、私はそれを知っていませんでした。 +1私から:) –

1

あなたはHTMLコントロールを持っている場合、ソース文書ではなくEditAreaのようなHTMLベースのエディタをロードして、そのエディタでXMLを表示および/または編集することができます。

関連する問題