选择屏幕技术

动态增加选择屏幕选项:

REPORT  zpp_rp005 NO STANDARD PAGE HEADING
        LINE-SIZE 280.

************************************************************************
*        TABLES
************************************************************************
TABLES:
  marc,mara,
  mast,  "BOM 链接物料
  stko,sscrfields,
  stpo,
  makt. "物料描述
************************************************************************
*        INTERNAL TABLES
************************************************************************
DATA:g_code TYPE sscrfields-ucomm,  "FUNCTION CODE
     action(3),
     num TYPE i.
************************************************************************
*        selection-screen
************************************************************************
SELECTION-SCREEN FUNCTION KEY 1."expand all blocks
SELECTION-SCREEN FUNCTION KEY 2. "collapse all blocks

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE t1.
PARAMETERS:p_werks LIKE mast-werks DEFAULT 'PS01'.
SELECT-OPTIONS:s_matnr FOR marc-matnr NO INTERVALS .
SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE t2.
PARAMETERS:p_werks1 LIKE mast-werks  DEFAULT 'PS01'  MODIF ID m1.
SELECT-OPTIONS:s_matnr1 FOR marc-matnr NO INTERVALS   MODIF ID m1.
SELECTION-SCREEN END OF BLOCK b2.

SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE t3.
PARAMETERS:p_werks2 LIKE mast-werks  DEFAULT 'PS01'  MODIF ID m2.
SELECT-OPTIONS:s_matnr2 FOR marc-matnr NO INTERVALS  MODIF ID m2.
SELECTION-SCREEN END OF BLOCK b3.

SELECTION-SCREEN BEGIN OF BLOCK b4 WITH FRAME TITLE t4.
PARAMETERS:p_werks4 LIKE mast-werks DEFAULT 'PS01'  MODIF ID m3.
SELECT-OPTIONS:s_matnr4 FOR marc-matnr NO INTERVALS  MODIF ID m3.
SELECTION-SCREEN END OF BLOCK b4.
************************************************************************
*        Initialization
************************************************************************
INITIALIZATION.
  sscrfields-functxt_01 '@17@'.
  sscrfields-functxt_02 '@18@'.
  LOOP AT SCREEN.
    IF screen-group1 'M1' OR screen-group1 'M2' OR screen-group1 'M3'.
      screen-active '0'.
    ENDIF.
    MODIFY SCREEN.
  ENDLOOP.
  num 0.
  t1 '选择条件'.
  t2 '选择条件'.
  t3 '选择条件'.
  t4 '选择条件'.

AT SELECTION-SCREEN.
  CLEAR action.
  g_code sscrfields-ucomm.
  CASE g_code.
    WHEN 'FC01'.
      action 'ADD'.
      num num + 1.
      IF num > 3.
        num 3.
      ENDIF.
    WHEN 'FC02'.
      action 'DEL'.
      num num 1.
      IF num < 0 .
        num 0.
      ENDIF.
  ENDCASE.

AT SELECTION-SCREEN OUTPUT.
  IF action 'ADD'.
    LOOP AT SCREEN.
      IF num 1.
        IF screen-group1 'M2' OR screen-group1 'M3'.
          screen-active '0'.
        ENDIF.
      ELSEIF num 2.
        IF screen-group1 'M3'.
          screen-active '0'.
        ENDIF.
      ENDIF.
      MODIFY SCREEN.
    ENDLOOP.
  ELSEIF action 'DEL'.
    LOOP AT SCREEN.
      IF num 0.
        IF screen-group1 'M1' OR screen-group1 'M2' OR screen-group1 'M3'.
          screen-active '0'.
        ENDIF.
      ELSEIF num 1.
        IF screen-group1 'M2' OR screen-group1 'M3'.
          screen-active '0'.
        ENDIF.
      ELSEIF num 2.
        IF screen-group1 'M3'.
          screen-active '0'.
        ENDIF.
      ENDIF.
      MODIFY SCREEN.
    ENDLOOP.
  ELSE.
   LOOP AT SCREEN.
      IF num 0.
        IF screen-group1 'M1' OR screen-group1 'M2' OR screen-group1 'M3'.
          screen-active '0'.
        ENDIF.
      ELSEIF num 1.
        IF screen-group1 'M2' OR screen-group1 'M3'.
          screen-active '0'.
        ENDIF.
      ELSEIF num 2.
        IF screen-group1 'M3'.
          screen-active '0'.
        ENDIF.
      ENDIF.
      MODIFY SCREEN.
    ENDLOOP.
  ENDIF.

 

其他:

选择屏幕折叠按钮:http://blog.chinaunix.net/space.php?uid=8527621&do=blog&id=2030102

选择屏幕动态选择子屏幕:http://blog.chinaunix.net/space.php?uid=8527621&do=blog&id=2029989

限制SELECT-OPTIONS的NO-EXTENSION和NO INTERVALS:http://blog.chinaunix.net/space.php?uid=8527621&do=blog&id=2029533

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值