创建程序的两种方法
2013-05-26 09:21
267 查看
原文出自ZZP的ABAP博客:http://hi.baidu.com/zzp0805/item/97d540be9572fb48bb0e1215
第一种,程序内部运行,不新建
DATA: CODE TYPE TABLE OF STRING,
PROG TYPE PROGRAM,
MSG(120) TYPE C,
LIN(10) TYPE C,
WRD(10) TYPE C,
OFF(3) TYPE C.
APPEND 'PROGRAM SUBPOOL.' TO CODE.
APPEND 'FORM DYN1.' TO CODE.
APPEND 'WRITE / ''HELLO, I AM A TEMPORARY SUBROUTINE!''.' TO CODE.
APPEND 'ENDFORM.' TO CODE.
GENERATE SUBROUTINE POOL CODE NAME PROG MESSAGE MSG
LINE LIN WORD WRD OFFSET OFF.
IF SY-SUBRC <> 0.
WRITE: / 'ERROR DURING GENERATION IN LINE', LIN,
/ MSG, / 'WORD:', WRD, 'AT OFFSET', OFF.
ENDIF.
PERFORM DYN1 IN PROGRAM (PROG).
新的program在这个程序内部运行。
第二种,程序创建新的程序
DATA:
code TYPE TABLE OF string.
CONSTANTS:
rep(40) VALUE 'ZZP_NOTHING_JUST_TEST3'.
APPEND 'PROGRAM ZZP_NOTHING_JUST_TEST3.' TO code.
APPEND 'WRITE / ''Hello, I am dynamically created!''.' TO code.
INSERT REPORT rep FROM code.
SUBMIT (rep) AND RETURN.
READ REPORT rep INTO code.
APPEND 'WRITE / ''and I am a dynamic extension! 已经创建程序:ZZP_NOTHING_JUST_TEST3''.' TO code.
INSERT REPORT rep FROM code.
GENERATE REPORT rep.
SUBMIT (rep) AND RETURN.
这里创建了新的程序:ZZP_NOTHING_JUST_TEST3。
第一种,程序内部运行,不新建
DATA: CODE TYPE TABLE OF STRING,
PROG TYPE PROGRAM,
MSG(120) TYPE C,
LIN(10) TYPE C,
WRD(10) TYPE C,
OFF(3) TYPE C.
APPEND 'PROGRAM SUBPOOL.' TO CODE.
APPEND 'FORM DYN1.' TO CODE.
APPEND 'WRITE / ''HELLO, I AM A TEMPORARY SUBROUTINE!''.' TO CODE.
APPEND 'ENDFORM.' TO CODE.
GENERATE SUBROUTINE POOL CODE NAME PROG MESSAGE MSG
LINE LIN WORD WRD OFFSET OFF.
IF SY-SUBRC <> 0.
WRITE: / 'ERROR DURING GENERATION IN LINE', LIN,
/ MSG, / 'WORD:', WRD, 'AT OFFSET', OFF.
ENDIF.
PERFORM DYN1 IN PROGRAM (PROG).
新的program在这个程序内部运行。
第二种,程序创建新的程序
DATA:
code TYPE TABLE OF string.
CONSTANTS:
rep(40) VALUE 'ZZP_NOTHING_JUST_TEST3'.
APPEND 'PROGRAM ZZP_NOTHING_JUST_TEST3.' TO code.
APPEND 'WRITE / ''Hello, I am dynamically created!''.' TO code.
INSERT REPORT rep FROM code.
SUBMIT (rep) AND RETURN.
READ REPORT rep INTO code.
APPEND 'WRITE / ''and I am a dynamic extension! 已经创建程序:ZZP_NOTHING_JUST_TEST3''.' TO code.
INSERT REPORT rep FROM code.
GENERATE REPORT rep.
SUBMIT (rep) AND RETURN.
这里创建了新的程序:ZZP_NOTHING_JUST_TEST3。
相关文章推荐
- 在C#.net中做页面上传的程序。用Dhtml的控件:(创建文件上载控件,该控件带有一个文本框和一个浏览按钮。)和类HtmlInputFile的两种方法
- 用两种方法教你从零创建Qt对话框程序
- 用两种方法教你从零创建Qt对话框程序
- 用两种方法教你从零创建Qt对话框程序
- MASM32编程用两种方法运行外部程序并等待其结束
- “安装程序无法定位现有系统分区,也无法创建新的系统分区”最简单解决方法
- 采用_beginthread/_beginthreadex函数创建多线程两种方法
- 5.编写一个程序,有两个类,其中类MAX中具有两个方法,方法名都是max,一个方法能够比较两个数的大小,另外一个方法能够比较三个数的大小。在另外一个类中创建对象,调用这两个方法,分别输出两组数:2、6
- dom4j 两种创建XML Document方法中命名空间的差异!
- 【C#】对异步请求处理程序IHttpAsyncHandler的理解和分享一个易用性封装 【手记】走近科学之为什么明明实现了IEnumerable<T>的类型却不能调用LINQ扩展方法 【手记】手机网页弹出层后屏蔽底层的滑动响应 【手记】ASP.NET提示“未能创建类型”处理 【Web】一个非常简单的移动web消息框 【手记】解决EXCEL跑SQL遇“查询无法运行或数据库表无法打开...”
- PHP程序调用java类的两种方法
- 创建单例的两种方法
- STM32F103程序设计-2-使用STLINK下载程序的两种方法
- pyspark 读取csv文件创建DataFrame的两种方法
- 原创: 用代码实现为程序创建快捷方式的二种方法
- DevExpress XtraReports控件创建主从报表的两种方法
- 两种方法,阻止一个程序运行两次。
- 在linux环境下编译运行OpenCV程序的两种方法
- 【Android游戏开发之十】(优化处理)详细剖析Android Traceview效率检视工具,分析程序运行速度!并讲解两种创建SDcard方式!
- 在mfc的sdi/mdi程序任意视图view内创建可停靠及浮动的工具栏方法