使用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_edit EXPORTING parent = go_cust_container wordwrap_mode = cl_gui_textedit=>wordwrap_at_fixed_position wordwrap_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' TABLES data = 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的原創文章,請關注公眾號"汪子熙":
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2221871/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在瀏覽器裡使用SAPGUI瀏覽器GUI
- 如何使用畫圖 3D3D
- 在瀏覽器裡使用SAPGUI裡的SE80瀏覽器GUI
- 使用Excel畫出各類統計圖(3)Excel
- win10自帶畫圖工具在哪裡 電腦自帶的畫圖工具使用教程Win10
- 什麼是SAPGUI的clientGUIclient
- 使用echarts的Simple Graph 來畫任務流程圖Echarts流程圖
- 在CAD夢想畫圖中如何使用PLAN命令
- 箱形圖(python畫圖)Python
- win10自帶3d畫圖軟體如何使用_win10系統下畫圖3d使用教程Win103D
- powerdesigner 畫ER圖
- eplan PLC畫圖
- win10系統下畫圖工具如何使用全屏檢視圖片Win10
- CAD夢想畫圖如何進行重畫、繪圖模式繪圖模式
- delphi 畫圖表,曲線圖
- SAP Corbu Theme 在瀏覽器和 SAPGUI 應用中的使用場景ORB瀏覽器GUI
- iOS 動畫之Spring動畫、Block動畫、GIF圖iOS動畫SpringBloC
- 使用Python在Excel畫畫PythonExcel
- 靈魂畫手:漫畫圖解 SSH圖解
- 快來玩AI畫圖!StableDiffusion模型搭建與使用入門~AI模型
- Python畫圖——matplotlib(普通折線圖)Python
- css 畫圖形大全CSS
- matlab畫圖設定Matlab
- canvas畫圖採坑Canvas
- matlab畫折線圖Matlab
- Python 畫雷達圖Python
- pandas讀取csv檔案資料並使用matplotlib畫折線圖和餅圖
- MySQL點陣圖索引解決使用者畫像問題MySql索引
- CAD夢想畫圖--審圖示記
- 圖片轉繪畫效和繪畫軟體
- CCF 201409-2 畫圖
- canva畫曲線圖效果
- R語言:畫樹圖R語言
- Markdown畫圖(mermaid)學習AI
- vue拼圖動畫DemoVue動畫
- 畫架構圖相關架構
- python 畫小提琴圖Python
- 這款畫圖工具,yyds!