click 的个人资料Click's Blog照片日志列表更多 工具 帮助
7月11日

不使用se51根据radiobutton显示不同的选择条件

* 当一个BLOCK内所有的控件都为不激活状态时,BLOCK会自动隐藏
REPORT zsf2200.
*&---------------------------------------------------------------------*
*&    テーブル定義
*&---------------------------------------------------------------------*
TABLES: likp,lips.
*&---------------------------------------------------------------------*
*&    画面定義
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-t01.
  PARAMETERS: p_buhin1 RADIOBUTTON GROUP grp1   "精密部品
                DEFAULT 'X' USER-COMMAND zgrp1,
              p_buhin2 RADIOBUTTON GROUP grp1.  "車両部品
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-t02.
  SELECT-OPTIONS: s_datum  FOR sy-datum,        "出荷予定日
                  s_kunnr1 FOR likp-kunnr       "得意先コード
                    NO INTERVALS NO-EXTENSION,
                  s_matnr  FOR lips-matnr       "品目コード
                    NO INTERVALS NO-EXTENSION.
  SELECTION-SCREEN SKIP.
  PARAMETERS: p_yotei1 TYPE char256,            "出荷予定ファイル名
              p_card   TYPE char256,            "出荷カードファイル名
              p_label  TYPE char256.            "出荷ラベルファイル名
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-t03.
  PARAMETERS: p_datum TYPE sy-datum.            "出荷予定日
  SELECT-OPTIONS: s_kunnr2 FOR likp-kunnr,      "得意先コード
                  s_vstel  FOR likp-vstel,      "出荷ポイント
                  s_vsart  FOR likp-vsart       "出荷タイプ
                    DEFAULT c_sd_spart_syaryo.  " '10'
  PARAMETERS: p_spart TYPE spart.               "製品部門
  SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(31) text-t04 FOR FIELD p_sai.
    PARAMETERS p_sai TYPE char1 AS CHECKBOX.    "再出力
  SELECTION-SCREEN END OF LINE.
  SELECTION-SCREEN SKIP.
  PARAMETERS: p_yotei2 TYPE char256,            "出荷予定ファイル名
              p_yotei3 TYPE char256.            "出荷予定表ファイル名
SELECTION-SCREEN END OF BLOCK b3.
*&---------------------------------------------------------------------*
*&    Event AT SELECTION-SCREEN OUTPUT
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN OUTPUT.
  PERFORM sub_modify_screen.
*&---------------------------------------------------------------------*
*&      Form  SUB_MODIFY_SCREEN
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM sub_modify_screen .
  IF p_buhin1 = c_x.
    LOOP AT SCREEN.
      IF   screen-name = 'S_DATUM-LOW'
        OR screen-name = 'P_PATH1'
        OR screen-name = 'P_YOTEI1'
        OR screen-name = 'P_CARD'
        OR screen-name = 'P_LABEL'.
        screen-required = 2.
        MODIFY SCREEN.
      ENDIF.
      IF   screen-name CS 'P_DATUM'
        OR screen-name CS 'S_KUNNR2'
        OR screen-name CS 'S_VSTEL'
        OR screen-name CS 'S_VSART'
        OR screen-name CS 'P_SPART'
        OR SCREEN-NAME =  '%FT04020_1000'       "COMMENT行の名称
        OR screen-name =  'P_SAI'
        OR screen-name CS 'P_YOTEI2'
        OR screen-name CS 'P_YOTEI3'.
        screen-active = 0.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.
  ELSE.
    LOOP AT SCREEN.
      IF   screen-name = 'P_DATUM'
        OR screen-name = 'S_KUNNR2-LOW'
        OR screen-name = 'S_VSTEL-LOW'
        OR screen-name = 'S_VSART-LOW'
        OR screen-name = 'P_SPART'
        OR screen-name = 'P_PATH2'
        OR screen-name = 'P_YOTEI2'
        OR screen-name = 'P_YOTEI3'.
        screen-required = 2.
        MODIFY SCREEN.
      ENDIF.
      IF   screen-name CS 'S_DATUM'
        OR screen-name CS 'S_KUNNR1'
        OR screen-name CS 'S_MATNR'
        OR screen-name CS 'P_YOTEI1'
        OR screen-name CS 'P_CARD'
        OR screen-name CS 'P_LABEL'.
        screen-active = 0.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.
  ENDIF.
ENDFORM.                    " SUB_MODIFY_SCREEN