使用SAPGUI畫圖

國內80後上的編程課應該都學過Logo這門編程語言:git

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

下圖是用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語言那樣在屏幕上做圖。ui

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」的控件。3d

The screen status:code

執行這個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的原創文章,請關注公衆號"汪子熙":

相關文章
相關標籤/搜索