博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用SAPGUI画图
阅读量:5944 次
发布时间:2019-06-19

本文共 2042 字,大约阅读时间需要 6 分钟。

国内80后上的编程课应该都学过这门编程语言:

Logo语言是一门专门设计用来进行编程教学的语言,于1967年由Wally Feurzeig, 和发明的。

下图是用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,是一种打印机控制语言,由设计。

下面是我用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(
). APPEND INITIAL LINE TO lt_hpgl ASSIGNING FIELD-SYMBOL(
).
-entry =
. 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文件,内容可以从文末获得。

当然也可以从我的下载:

执行之后,位于本地安装目录下的gnhpx.exe文件会根据txt里的指令进行图形渲染:

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

如果一切正常工作,可以看到一只渲染好的机器猫(哆啦A梦)。

关于HPGL的语法手册,可以在这个网站上查阅:

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

转载地址:http://xzzxx.baihongyu.com/

你可能感兴趣的文章
我的友情链接
查看>>
Spring学习资料之 依赖注入(一)
查看>>
安装win7提示安装程序无法创建新的系统分区和定位现有系统分区
查看>>
快递查询接口的调用与解析案例
查看>>
服务器性能优化配置建议
查看>>
oracle sql语句实现累加、累减、累乘、累除
查看>>
3D地图的定时高亮和点击事件(基于echarts)
查看>>
接口由40秒到200ms优化记录
查看>>
java 视频播放 多人及时弹幕技术 代码生成器 websocket springmvc mybatis SSM
查看>>
Activiti6.0,spring5,SSM,工作流引擎,OA
查看>>
第十三章:SpringCloud Config Client的配置
查看>>
使用 GPUImage 实现一个简单相机
查看>>
CoinWhiteBook:区块链在慈善事业中的应用
查看>>
Mac上基于Github搭建Hexo博客
查看>>
阿里云服务器ECS开放8080端口
查看>>
Spring中实现监听的方法
查看>>
使用Tooltip会出现一个问题,如果行上出现复选框
查看>>
11.03T1 DP
查看>>
P2924 [USACO08DEC]大栅栏Largest Fence
查看>>
jQuery操作table tr td
查看>>