使用SAPGUI畫圖

i042416發表於2018-11-27

國內80後上的程式設計課應該都學過 Logo 這門程式語言:

Logo語言是一門專門設計用來進行程式設計教學的語言,於1967年由Wally Feurzeig,  Seymour Papert Cynthia Solomon 發明的。

下圖是用Logo語言畫出來的圖案。

使用SAPGUI畫圖

Perhaps I practiced it in Pentium 386? I could not remember it clearly.

同樣,在SAPGUI裡內發現有一個非常古老的ABAP包,最後一次修改已經是22年前的1995年了。這比SAP成都研究院很多新同事的年齡都要大。

使用SAPGUI畫圖

這個包提供了一個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:

使用SAPGUI畫圖

The layout of screen 101, 需要手工建立一個名為“CUSTOM_CONTROL”的控制元件。

使用SAPGUI畫圖

The screen status:

使用SAPGUI畫圖

執行這個report,點選Load Local file,從本地載入Doraemon.txt檔案,內容可以從文末獲得。

當然也可以從我的 github 下載:

使用SAPGUI畫圖

執行之後,位於本地安裝目錄下的gnhpx.exe檔案會根據txt裡的指令進行圖形渲染:

“C:\Program Files (x86)\SAP\FrontEnd\SAPgui\gnhpx.exe”

使用SAPGUI畫圖

如果一切正常工作,可以看到一隻渲染好的機器貓(哆啦A夢)。

關於HPGL的語法手冊,可以在這個網站上查閱:

http://www.isoplotec.co.jp/HPGL/eHPGL.htm

要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":

使用SAPGUI畫圖


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2221871/,如需轉載,請註明出處,否則將追究法律責任。

相關文章