使用SAPGUI画图
國內80后上的編程課應該都學過Logo這門編程語言:
Logo語言是一門專門設計用來進行編程教學的語言,于1967年由Wally Feurzeig, Seymour Papert和Cynthia Solomon發明的。
下圖是用Logo語言畫出來的圖案。
Perhaps I practiced it in Pentium 386? I could not remember it clearly.
同樣,在SAPGUI里內發現有一個非常古老的ABAP包,最后一次修改已經是22年前的1995年了。這比SAP成都研究院很多新同事的年齡都要大。
這個包提供了一個HPGL接口。Hewlett-Packard Graphics Language,簡稱為HPGL,是一種打印機控制語言,由Hewlett-Packard設計。
下面是我用ABAP代碼寫的一個HPGL控制臺,可以調用函數GRAPH_HPGL,像小時候使用Logo語言那樣在屏幕上作圖。
REPORT z.DATA: go_text_edit TYPE REF TO cl_gui_textedit,go_cust_container TYPE REF TO cl_gui_custom_container,ok_code TYPE sy-ucomm. DATA lt_text(256) TYPE c OCCURS 0. DATA: BEGIN OF lt_hpgl OCCURS 1,entry(128),END OF lt_hpgl.CALL SCREEN 0101.MODULE status_0101 OUTPUT.SET PF-STATUS 'JERRY_CONSOLE'.SET TITLEBAR 'JERRY_TITLEBAR'.IF go_cust_container IS INITIAL.go_cust_container = NEW #( container_name = 'CUSTOM_CONTROL' ).CREATE OBJECT go_text_editEXPORTINGparent = go_cust_containerwordwrap_mode = cl_gui_textedit=>wordwrap_at_fixed_positionwordwrap_to_linebreak_mode = cl_gui_textedit=>false.ENDIF. ENDMODULE.MODULE user_command_0101 INPUT.ok_code = sy-ucomm.CASE ok_code.WHEN 'BACK' OR 'QUIT' OR 'EXIT'.LEAVE TO SCREEN 0.WHEN 'EXECUTE'.CLEAR: lt_text, lt_hpgl[].go_text_edit->get_text_as_r3table( IMPORTING table = lt_text ).LOOP AT lt_text ASSIGNING FIELD-SYMBOL(<text>).APPEND INITIAL LINE TO lt_hpgl ASSIGNING FIELD-SYMBOL(<hpgl>).<hpgl>-entry = <text>.ENDLOOP.CALL FUNCTION 'GRAPH_HPGL'TABLESdata = lt_hpgl.WHEN OTHERS.ENDCASE.ENDMODULE.The PBO and API for screen 101:
The layout of screen 101, 需要手工創建一個名為“CUSTOM_CONTROL”的控件。
The screen status:
執行這個report,點擊Load Local file,從本地加載Doraemon.txt文件,內容可以從文末獲得。
當然也可以從我的github下載:
執行之后,位于本地安裝目錄下的gnhpx.exe文件會根據txt里的指令進行圖形渲染:
“C:\Program Files (x86)\SAP\FrontEnd\SAPgui\gnhpx.exe”
如果一切正常工作,可以看到一只渲染好的機器貓(哆啦A夢)。
關于HPGL的語法手冊,可以在這個網站上查閱:
http://www.isoplotec.co.jp/HPGL/eHPGL.htm
要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":
總結
以上是生活随笔為你收集整理的使用SAPGUI画图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 公积金怎么办理都需要什么
- 下一篇: 618提前来了!拼多多百亿补贴上线“数码