使用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的語法手冊,可以在這個網站上查閱:
要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2221871/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在瀏覽器裡使用SAPGUI瀏覽器GUI
- 如何使用畫圖 3D3D
- 使用Markdown語法畫流程圖流程圖
- 使用R畫地圖資料地圖
- 使用PowerDesigner畫ER圖詳細教程
- 分享自己使用的線上UML畫圖工具
- win10自帶畫圖工具在哪裡 電腦自帶的畫圖工具使用教程Win10
- C 語言畫圖之畫個太極圖
- Python的畫圖模組turtle使用詳解Python
- 使用Excel畫出各類統計圖(3)Excel
- 在瀏覽器裡使用SAPGUI裡的SE80瀏覽器GUI
- 純CSS畫圖CSS
- 使用echarts的Simple Graph 來畫任務流程圖Echarts流程圖
- 什麼是SAPGUI的clientGUIclient
- SAPGUI for Java Connect settingGUIJava
- configuration SAPGUI JavaGUIJava
- win10自帶3d畫圖軟體如何使用_win10系統下畫圖3d使用教程Win103D
- 箱形圖(python畫圖)Python
- 靈魂畫手:漫畫圖解 SSH圖解
- CAD夢想畫圖如何進行重畫、繪圖模式繪圖模式
- 在CAD夢想畫圖中如何使用PLAN命令
- 《盜墓筆記》IP使用者畫像——資訊圖筆記
- 使用js實現圖畫人物動起來的方法JS
- win10系統下畫圖工具如何使用全屏檢視圖片Win10
- css 畫圖形大全CSS
- canvas畫圖採坑Canvas
- R語言畫圖R語言
- 使用Python在Excel畫畫PythonExcel
- Canvas 畫圖 - 滑鼠移動圖形Canvas
- 快來玩AI畫圖!StableDiffusion模型搭建與使用入門~AI模型
- 使用CAShapeLayer與UIBezierPath畫出想要的圖形UI
- 圖片轉繪畫效和繪畫軟體
- 蒸汽波風格圖不會畫?AI作畫幫你秒級出圖AI
- matlab畫圖設定Matlab
- 這款畫圖工具,yyds!
- JavaScript介面畫柱狀圖JavaScript
- R語言:畫樹圖R語言
- Python 畫雷達圖Python