SAP-ABAPSELECT-SCREEN的几个用法 abap loop at screen

转载自:http://blog.tianya.cn/blogger/post_show.asp?BlogID=1271361&PostID=14936563

如下一段程序:
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 1.
PARAMETER P_FLEX RADIOBUTTON GROUP ways TYPE c.
SELECTION-SCREEN COMMENT 3(20) text-s30 for field P_FLEX.
SELECTION-SCREEN COMMENT 25(10) text-s31 for field P_PAYM_B.
SELECTION-SCREEN POSITION 38.
PARAMETER P_PAYM_B LIKE PA0015-PABRP MODIF ID wty.
parameters P_PAYY_B LIKE PA0015-pabrj MODIF ID wty.
SELECTION-SCREEN POSITION 57.
SELECTION-SCREEN COMMENT 57(5) text-s32 for field P_PAYM_E.
parameters P_PAYM_E LIKE PA0015-pabrp MODIF ID wty.
parameters P_PAYY_E LIKE PA0015-pabrj MODIF ID wty.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 25.
SELECTION-SCREEN COMMENT 25(9) text-s18 for field S_LGART.
SELECT-OPTIONS S_LGART FOR p0014-LGART MODIF ID wty.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN SKIP 1.
本程序中涉及到几个SELECTION-SCREEN的用法:


1 SELECTION-SCREEN BEGIN OF LINE. ....END OF LINE.
这条语句的作用是让Begin of line 与End of line之间的部分位于同一行。


2 SELECTION-SCREEN POSITION XX.
这条语句的作用是将该语句后面的第一个Screenelement定位在这一行的XX位置,最大值为79。值得注意的是,如果同一行中多个Position语句因为空间不够或Element所占空间重叠,将导致Screen创建时的错误,无法激活。此时并无具体的提示。只能仔细观察代码。


3 SELECTION-SCREEN COMMENT XX(Y) TEXT-XXX FOR FIELD XXX.
这条语句的作用是在当前行的指定列位置处输出一段文本,For field则表示文本与某个element关联,当此语句使用时,可以不必设定屏幕的Textelement,系统会自动关联。XX表示位置,Y表示长度,注意,如果长度不足,超常的文字将被截掉。此处似乎还有一个小BUG,当Y小于5时,输出的文字字体会变大一号。不知道为什么。

SELECTION-SCREEN COMMENT /10(30) comm1.

INITIALIZATION.

comm1 ='Auswahlknopfgruppe 1'.


4 SELECTION-SCREEN SKIP 1.
跳过一行。类似于用WRITE写Report时的SKIP 1.也可以跳过多行。

以下是 屏幕上画横线

SELECTION-SCREEN ULINE /1(50).

5.内存记忆 留有上次输入过的记录

parameters test(16) type c memory id rid.

6.检查输入值 如果不在表中 不用做代码检查了

PARAMETERS p_carr TYPE spfli-carrid OBLIGATORY VALUE CHECK.

7.复选框

PARAMETERS: a AS CHECKBOX,
b AS CHECKBOX DEFAULT 'X'.

8.单选框

PARAMETERS: r1 RADIOBUTTON GROUP rad1,
r2 RADIOBUTTON GROUP rad1 DEFAULT 'X',
r3 RADIOBUTTON GROUP rad1,

s1 RADIOBUTTON GROUP rad2,
s2 RADIOBUTTON GROUP rad2,
s3 RADIOBUTTON GROUP rad2 DEFAULT 'X'.

9.屏幕动作变化 引起屏幕变化: modif id 起作用

举例:

report a.
SELECTION-SCREEN BEGIN OF BLOCK BL1 WITH FRAME titleTEXT-003.
PARAMETERS:
P_1 TYPE C RADIOBUTTON GROUP DATE
DEFAULT 'X'
USER-COMMANDFLAG,"重要*
P_2 TYPE C RADIOBUTTON GROUP DATE,
P_3 TYPE C RADIOBUTTON GROUP DATE,
P_4 TYPE C RADIOBUTTON GROUP DATE
.
SELECTION-SCREEN END OF BLOCK BL1.
SELECTION-SCREEN BEGIN OF BLOCK BL2 WITH FRAMEtitle TEXT-004.
SELECTION-SCREEN: BEGIN OF LINE,
COMMENT 6(10) TEXT-001.
PARAMETERS: GP_IPDAT TYPE SY-DATUM MODIF ID BL1,"重要*
GP_2 TYPE SY-DATUM MODIF ID BL2 . "重要*
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN SKIP 2.

SELECTION-SCREEN: BEGIN OF LINE,
COMMENT 8(60) TEXT-005,
END OF LINE,
BEGIN OF LINE,
COMMENT 8(60) TEXT-006,
END OF LINE.
SELECTION-SCREEN END OF BLOCK BL2.
"在AT SELECTION-SCREEN中循环SCREEN系统变量,把需要修改的画面元素的属性进行相应的修改
*----------------------------------------------------------------------*
*AT SELECTION-SCREEN
*----------------------------------------------------------------------*
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF P_1 = 'X'AND SCREEN-GROUP1 = 'BL1'.
SCREEN-INPUT = '0'.
CLEAR GP_IPDAT.
ENDIF.
IF P_2 = 'X'AND SCREEN-GROUP1 = 'BL1'.
SCREEN-INPUT = '1'.
ENDIF.
IF P_3 = 'X' AND SCREEN-GROUP1 = 'BL2'.
SCREEN-ACTIVE = '0'.
CLEAR GP_IPDAT.
ENDIF.
IF P_4 = 'X'AND SCREEN-GROUP1 = 'BL2'.
SCREEN-ACTIVE = '1'.
ENDIF.

MODIFYSCREEN.
ENDLOOP.

10.ranges 使用方法

ranges s_carrid1 for spfli-carrid.

s_carrid1-sign = 'I'.
s_carrid1-option = 'EQ'.
s_carrid1-low= 'LH'.

append s_carrid1.

11. options限制 输入

SELECT-OPTIONS airline FOR wa_spfli-carrid NO INTERVALS
NO-EXTENSION default g obligatory.”

12. 一行中的若干元素

DATA wa_spfli TYPE spfli.

SELECT-OPTIONS airline FOR wa_spfli-carrid.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION pos_high.
PARAMETERS field(5) TYPE c.
SELECTION-SCREEN END OF LINE.

13 屏幕元素事件 按钮 及 new window USER-COMMAND

TABLES sscrfields.

DATA flag(1) TYPE c.

SELECTION-SCREEN:
BEGIN OF SCREEN 500 AS WINDOW TITLE tit,
BEGIN OFLINE,
PUSHBUTTON 2(10) but1 USER-COMMAND cli1,
PUSHBUTTON 12(10) text-020 USER-COMMAND cli2,
END OFLINE,
BEGIN OFLINE,
PUSHBUTTON 2(10) but3 USER-COMMAND cli3,
PUSHBUTTON 12(10) text-040 USER-COMMAND cli4,
END OFLINE,
END OF SCREEN 500.

AT SELECTION-SCREEN.

MESSAGE i888(sabapdocu) WITH text-001sscrfields-ucomm.
CASE sscrfields-ucomm.
WHEN'CLI1'.
flag = '1'.
WHEN'CLI2'.
flag = '2'.
WHEN'CLI3'.
flag = '3'.
WHEN'CLI4'.
flag = '4'.
ENDCASE.

START-OF-SELECTION.

tit = 'Four Buttons'.
but1 = 'Button 1'.
but3 = 'Button 3'.

CALL SELECTION-SCREEN 500 STARTING AT 1010.

CASE flag.
WHEN'1'.
WRITE / 'Button 1 was clicked'.
WHEN'2'.
WRITE / 'Button 2 was clicked'.
WHEN'3'.
WRITE / 'Button 3 was clicked'.
WHEN'4'.
WRITE / 'Button 4 was clicked'.
WHENOTHERS.
WRITE / 'No Button was clicked'.
ENDCASE.

14 执行按钮旁边加触点 点击改变屏幕

REPORT demo_sel_screen_function_key.

TABLES sscrfields.

PARAMETERS: p_carrid TYPE s_carr_id,
p_cityfr TYPE s_from_cit.

SELECTION-SCREEN: FUNCTION KEY 1,
FUNCTION KEY 2. “此为两个触点定义

INITIALIZATION.
sscrfields-functxt_01 = 'LH'.
sscrfields-functxt_02 = 'UA'. ”此为两个触点的文本

AT SELECTION-SCREEN.
CASE sscrfields-ucomm.
WHEN'FC01'. “默认的 返回key
p_carrid = 'LH'.
p_cityfr = 'Frankfurt'.
WHEN'FC02'.
p_carrid = 'UA'.
p_cityfr = 'Chicago'.
ENDCASE.

START-OF-SELECTION.
WRITE / 'START-OF-SELECTION'.

15.关于修改 标准status (有待研究)

REPORT demo_sel_screen_status .

DATA itab TYPE TABLE OF sy-ucomm.

PARAMETERS test(10) TYPE c.

AT SELECTION-SCREEN OUTPUT.

APPEND: 'PRIN' TO itab,
'SPOS' TO itab.

CALL FUNCTION 'RS_SET_SELSCREEN_STATUS'
EXPORTING
p_status = sy-pfkey
TABLES
p_exclude = itab.

16.选择屏幕 事件何时触发(有待研究)

REPORT demo_selection_screen_events MESSAGE-ID sabapdocu.

DATA field1(10) TYPE c.

SELECT-OPTIONS sel_opt1 FOR field1.
SELECTION-SCREEN BEGIN OF BLOCK block1.
PARAMETERS: test1(10) TYPE c,
test2(10) TYPE c.
SELECTION-SCREEN END OF BLOCK block1.

PARAMETERS: r1 RADIOBUTTON GROUP rad1 DEFAULT 'X',
r2 RADIOBUTTON GROUP rad1.

AT SELECTION-SCREEN.
MESSAGE i888 WITH 'AT SELECTION-SCREEN'.

AT SELECTION-SCREEN OUTPUT.
MESSAGE i888 WITH 'AT SELECTION-SCREEN'
'OUTPUT'.

AT SELECTION-SCREEN ON sel_opt1.
MESSAGE i888 WITH 'AT SELECTION-SCREEN'
'ON SEL_OPT1'.

AT SELECTION-SCREEN ON test1.
MESSAGE i888 WITH 'AT SELECTION-SCREEN'
'ON TEST1'.

AT SELECTION-SCREEN ON test2.
MESSAGE i888 WITH 'AT SELECTION-SCREEN'
'ON TEST2'.

AT SELECTION-SCREEN ON END OF sel_opt1.
MESSAGE i888 WITH 'AT SELECTION-SCREEN'
'ON END OF SEL_OPT1'.

AT SELECTION-SCREEN ON HELP-REQUEST FOR sel_opt1-low.
MESSAGE i888 WITH 'AT SELECTION-SCREEN'
'ON HELP-REQUEST FOR SEL_OPT1-LOW'.

AT SELECTION-SCREEN ON HELP-REQUEST FOR sel_opt1-high.
MESSAGE i888 WITH 'AT SELECTION-SCREEN'
'ON HELP-REQUEST FOR SEL_OPT1-HIGH'.

AT SELECTION-SCREEN ON HELP-REQUEST FOR test1.
MESSAGE i888 WITH 'AT SELECTION-SCREEN'
'ON HELP-REQUEST FOR TEST1'.

AT SELECTION-SCREEN ON HELP-REQUEST FOR test2.
MESSAGE i888 WITH 'AT SELECTION-SCREEN'
'ON HELP-REQUEST FOR TEST2'.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR sel_opt1-low.
MESSAGE i888 WITH 'AT SELECTION-SCREEN'
'ON VALUE-REQUEST FOR SEL_OPT1-LOW'.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR sel_opt1-high.
MESSAGE i888 WITH 'AT SELECTION-SCREEN'
'ON VALUE-REQUEST FOR SEL_OPT1-HIGH'.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR test1.
MESSAGE i888 WITH 'AT SELECTION-SCREEN'
'ON VALUE-REQUEST FOR TEST1'.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR test2.
MESSAGE i888 WITH 'AT SELECTION-SCREEN'
'ON VALUE-REQUEST FOR TEST2'.

AT SELECTION-SCREEN ON BLOCK block1.
MESSAGE i888 WITH 'AT SELECTION-SCREEN'
'ON BLOCK BLOCK1'.

AT SELECTION-SCREEN ON RADIOBUTTON GROUP rad1.
MESSAGE i888 WITH 'AT SELECTION-SCREEN'
'ON RADIOBUTTON GROUP RAD1'.

  

爱华网本文地址 » http://www.aihuau.com/a/25101010/38040.html

更多阅读

关于儿童学习跆拳道的几个问题

关于儿童学习跆拳道的几个问题——简介练习跆拳道能提高吃苦耐劳的能力.无论练习哪种武术,都是要下苦功夫的,一个动作为了做的标准,有力量、有速度,可能要练习成百上千次,没有吃苦耐劳的精神是做不到的.强身健体.跆拳道也是一项体育竞技,

台式机电脑黑屏的几个原因 笔记本电脑黑屏的原因

台式机电脑黑屏的几个原因——简介电脑的普及率越来越高,在人们的生活和工作过程起着越来越大的作用,然而,有许多情况是在使用电脑的过程中电脑突然就黑屏了,对于新手来说往往会措手不及,现在我来分享下自己遇到的几个电脑黑屏的原因;台

刮痧需注意的几个事项 刮痧后注意事项

刮痧需注意的几个事项——简介刮痧是传统的中 医疗法,可以疏通经络,改善体质,强体健身,同时还具有很好的美容功效。但是刮痧需注意以下几个事项:刮痧需注意的几个事项——工具/原料刮痧板 刮痧需注意的几个事

品牌形象策划的几个关键 品牌形象策划方案

品牌形象策划的几个关键——简介塑造和传播品牌形象,是品牌营销的主要任务。那么为品牌策划目标形象,这就是品牌营销策划的重点和首要工作。形象是品牌的灵魂,塑造出一个理想的品牌目标形象将赋予品牌强大的生命力,而品牌的目标形象如果

谈写述职报告的几个注意事项 面试技巧和注意事项

谈写述职报告的几个注意事项昨天,机关处长述职。听了大家的述职我很受启发,对自己也是一个提高,由此写一写述职报告的写法及应当注意的事项。述职报告是机关应用文的一种,就是把自己履行职责是否称职的情况写成书面文字所构成的文体。

声明:《SAP-ABAPSELECT-SCREEN的几个用法 abap loop at screen》为网友若隐若现分享!如侵犯到您的合法权益请联系我们删除