ABAP selection-screen的一些特殊用法

标签:ABAP

boss交给我的第1个任务。
因为源代码有2000多行,且涉及商业机密,只节选一些重点。

显示空行:
selection-screen skip.

分块:
selection-screen: begin of block a with frame title text-001.
  parameters: p_a type c.
  "其他参数…
selection-screen: end of block a.

检查参数:
直接放在at selection-screen事件里,就可以message e类型的消息了。
不放这个事件里的话,e类型消息会停止程序运行。
另外还有个chain和endchain,用于同时检查多个参数,看看F1帮助就知道了。
本以为是常识,不过boss貌似不知道,还问我有什么用,所以也写出来吧。
at selection-screen.
  select single field1 from z_table into wa where field1 = something.
  if sy-subrc <> 0.
    message e999 with 'Some message'.
  endif.

用TextSymbols显示注释&将参数的注释显示在指定位置&修改一个参数时,同时改变另一个参数:
用TextSymbols显示注释的好处是,SelectionTexts长度有限,而TextSymbols则可以很长。
显示在指定位置可以区分主、从参数
sselection-screen begin of line.
parameters: e_incl    as checkbox default 'X' modif id gr1 user-command rpt1.
selection-screen comment (50) text-010
                 for field e_incl.
selection-screen end of line.
 
selection-screen begin of line.
selection-screen position 5.
parameters:     sp_mail as checkbox default 'X' modif id gr.
selection-screen comment (50) text-011
                 for field sp_mail.
selection-screen end of line.
 
selection-screen begin of line.
selection-screen position 5.
parameters:     us_mail as checkbox default ' ' modif id gr.
selection-screen comment (50) text-012
                 for field us_mail.
selection-screen end of line.
 
at selection-screen output.
  loop at screen.
    if screen-group1 = 'GR' and e_incl <> 'X'.
      screen-input = '0'.
      modify screen.
    endif.
  endloop.
这段代码在不勾选e_incl参数时,自动把sp_mail和us_mail都禁用了。

0条评论 你不来一发么↓

    想说点什么呢?