ITPub博客

首页 > 应用开发 > IT综合 > 使用SAPGUI画图

使用SAPGUI画图

原创 IT综合 作者:i042416 时间:2018-11-27 22:14:53 0 删除 编辑

国内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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
SAP成都研究院开发专家,SAP社区导师,SAP中国技术大使。

注册时间:2018-01-20

  • 博文量
    1874
  • 访问量
    865864