一个程序有多个选择屏幕以及一个程序调用多个程序
2013-10-19 20:26
357 查看
1、一个程序有多个选择屏幕(选择了这一屏,然后跳入下一屏,选择不同的变量有不同的初始化,有不同的屏幕出现): ZD_EM1_PRICECOND
![](http://img.blog.csdn.net/20131019204031375?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenpqX3JhaW5ib3c=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20131019204036718?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenpqX3JhaW5ib3c=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
其实原理很简单:
1)首先建立几个SELECTION-SCREEN BEGIN OF BLOCK:
SELECTION-SCREEN BEGIN OF BLOCK con WITH FRAME TITLE text-001.
PARAMETERS: p_ybp0 RADIOBUTTON GROUP grp1.
SELECTION-SCREEN COMMENT (40) text-025 FOR FIELD p_ybp0.
这是给选择点加上文字说明
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: p_ybd1 RADIOBUTTON GROUP grp1.
SELECTION-SCREEN COMMENT (40) text-026 FOR FIELD p_ybd1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN END OF BLOCK con.
选择屏幕1802
SELECTION-SCREEN BEGIN OF SCREEN 1802 TITLE text-023.
SELECTION-SCREEN END OF SCREEN 1802.
选择屏幕1803
SELECTION-SCREEN BEGIN OF SCREEN 1802 TITLE text-023.
SELECTION-SCREEN END OF SCREEN 1802.
2)上面建立的是第一个屏幕,然后根据第一个屏幕的变量P_YBP0/P_YBP1的选择,作一个if条件的判断,看是进入那个选择屏幕。
START-OF-SELECTION.
IF p_ybp0 = 'X'.
CALL SELECTION-SCREEN 1802.
SET PF-STATUS '1802'.
SET TITLEBAR '000'.
MOVE sy-ucomm TO ok_code.
CASE ok_code.
WHEN 'BACK'. "1
LEAVE PROGRAM.
WHEN OTHERS.
ENDCASE.
IF p_rou02 = 'X' OR p_rou01 = 'X'.
p_round = 'X'.
ENDIF.
ENDIF.
然后就是下一个屏幕的条件判断。同上面一样的处理。
2、一个程序调用其它多个程序,利用button: ZGL_GTS_TRANSFER
![](http://img.blog.csdn.net/20131019205355187?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenpqX3JhaW5ib3c=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
首先对选择屏幕定义两个button:
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.
SELECTION-SCREEN SKIP 3.
SELECTION-SCREEN:
BEGIN OF LINE,
PUSHBUTTON 20(20) TEXT-A01 USER-COMMAND BILL,
END OF LINE.
SELECTION-SCREEN SKIP 3.
SELECTION-SCREEN:
BEGIN OF LINE,
PUSHBUTTON 20(20) TEXT-A02 USER-COMMAND IDLV,
END OF LINE.
SELECTION-SCREEN SKIP 3.
SELECTION-SCREEN END OF BLOCK B1.
CASE SSCRFIELDS.
WHEN 'BILL'.
SUBMIT 调用的程序名 VIA SELECTION-SCREEN AND RETURN.
WHEN 'IDLV'.
SUBMIT 调用的程序名 VIA SELECTION-SCREEN AND RETURN.
ENDCASE.
只需要上述代码即可完成。
其实原理很简单:
1)首先建立几个SELECTION-SCREEN BEGIN OF BLOCK:
SELECTION-SCREEN BEGIN OF BLOCK con WITH FRAME TITLE text-001.
PARAMETERS: p_ybp0 RADIOBUTTON GROUP grp1.
SELECTION-SCREEN COMMENT (40) text-025 FOR FIELD p_ybp0.
这是给选择点加上文字说明
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: p_ybd1 RADIOBUTTON GROUP grp1.
SELECTION-SCREEN COMMENT (40) text-026 FOR FIELD p_ybd1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN END OF BLOCK con.
选择屏幕1802
SELECTION-SCREEN BEGIN OF SCREEN 1802 TITLE text-023.
SELECTION-SCREEN END OF SCREEN 1802.
选择屏幕1803
SELECTION-SCREEN BEGIN OF SCREEN 1802 TITLE text-023.
SELECTION-SCREEN END OF SCREEN 1802.
2)上面建立的是第一个屏幕,然后根据第一个屏幕的变量P_YBP0/P_YBP1的选择,作一个if条件的判断,看是进入那个选择屏幕。
START-OF-SELECTION.
IF p_ybp0 = 'X'.
CALL SELECTION-SCREEN 1802.
SET PF-STATUS '1802'.
SET TITLEBAR '000'.
MOVE sy-ucomm TO ok_code.
CASE ok_code.
WHEN 'BACK'. "1
LEAVE PROGRAM.
WHEN OTHERS.
ENDCASE.
IF p_rou02 = 'X' OR p_rou01 = 'X'.
p_round = 'X'.
ENDIF.
ENDIF.
然后就是下一个屏幕的条件判断。同上面一样的处理。
2、一个程序调用其它多个程序,利用button: ZGL_GTS_TRANSFER
首先对选择屏幕定义两个button:
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.
SELECTION-SCREEN SKIP 3.
SELECTION-SCREEN:
BEGIN OF LINE,
PUSHBUTTON 20(20) TEXT-A01 USER-COMMAND BILL,
END OF LINE.
SELECTION-SCREEN SKIP 3.
SELECTION-SCREEN:
BEGIN OF LINE,
PUSHBUTTON 20(20) TEXT-A02 USER-COMMAND IDLV,
END OF LINE.
SELECTION-SCREEN SKIP 3.
SELECTION-SCREEN END OF BLOCK B1.
CASE SSCRFIELDS.
WHEN 'BILL'.
SUBMIT 调用的程序名 VIA SELECTION-SCREEN AND RETURN.
WHEN 'IDLV'.
SUBMIT 调用的程序名 VIA SELECTION-SCREEN AND RETURN.
ENDCASE.
只需要上述代码即可完成。
相关文章推荐
- 一个简单自定义屏幕,并调用word和excel的样例程序 1000弹出选择按钮
- 在一个程序中调用另一个程序并且传输数据到选择屏幕执行这个程序
- Excel2003和Excel2007对下拉选择和下拉级联选择的操作以及java程序的调用
- Excel2003和Excel2007对下拉选择和下拉级联选择的操作以及java程序的调用
- 10_9_5为Ch10CardLib库编写一个控制台客户程序,从扰乱的Deck对象中一次取出5张牌.如果这5张牌都是相同的花色,客户程序就应在屏幕上显示这5张牌,以及文本"Flush",否则就显示50
- 编写两个程序(1)该程序将它其中的一个子程序复制到200h处,(2)编写一个程序,该程序调用存在于内存200h处的程序,在屏幕上打印绿色字符‘x’。调用后要确保能够正确返回。
- 多个ajax调用同一个 一般处理程序
- abap 在屏幕如何调用选择屏幕以及如何获得选择屏幕的操作
- 一个java程序/项目检测工具.方法是否被调用以及频率
- abap 在屏幕如何调用选择屏幕以及如何获得选择屏幕的操作
- 一个简单自定义屏幕,并调用word和excel的样例程序
- iOS开发之调用系统打电话发短信接口以及程序内发短信
- iOS开发之调用系统打电话发短信接口以及程序内发短信
- 汇编语言:请写一个程序把当前目录下的TEXT.TXT文件中的字符读出来显示在屏幕上,当遇到结束符时就停止读取。
- 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序
- c#的一个函数调用程序(怎样让用文本框输入m和n,结果用一个文本框(或列表框)显示出来。)
- 在一个程序中播放背景音乐,以及语音提示
- 一个调用Shell的VBA程序
- js移动端滑动一个屏幕再加载新的数据以及ajax同步请求
- 练习2-1 编写一个程序一确定分别由signed及unsigned限定的char,short,int及long类型变量的取值范围。采用打印标准头文件中的相应值以及直接计算两种方式实现。通过直接计算来确定浮点类型的取值范围是一项难度很大的任务。