AT SELECTION SCREEN的实例

 *&---------------------------------------------------------------------*
*& Report  ZTEST_PILLAR
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT  ztest_pillar.
TYPE-POOLSVRM ,TRUXS,ICON,SLIS.
TABLESmaraj_3apgen.
dataG_ATWRT type ATWRT,
      G_YEAR(4TYPE N,
      G_DATE TYPE DATS.
DATAIT_CHAR_VALUES TYPE TABLE OF BAPI_CHAR_VALUES.
DATAIT_CHAR   TYPE TABLE OF BAPI_CHAR.
DATA:GT_RAW_DATA TYPE TRUXS_T_TEXT_DATA.
PARAMETERSRB_IMP RADIOBUTTON GROUP GP1 USER-COMMAND FCD1 DEFAULT 'X'.
SELECTION-SCREEN BEGIN OF BLOCK B002 WITH FRAME TITLE TEXT-005.
  PARAMETERS:P_FILE TYPE RLGRAP-FILENAME modif id IMP ."OBLIGATORY .
SELECTION-SCREEN END OF BLOCK B002.
PARAMETERSRB_MAKE RADIOBUTTON GROUP GP1 .
SELECTION-SCREEN BEGIN OF BLOCK B001 WITH FRAME TITLE TEXT-004.
SELECT-OPTIONS:
      s_matnr for mara-matnr modif id MKE,
      s_grid  for j_3apgen-j_3akordx modif id MKE,
      s_matkl for mara-matkl modif id MKE,
      s_brand for G_ATWRT modif id MKE,
      S_YEAR FOR G_YEAR modif id MKE,
      S_SEAN FOR G_ATWRT modif id MKE,
      S_DATE FOR G_DATE  modif id MKE,"OBLIGATORY,
      S_PRJ FOR G_ATWRT modif id MKE,
      S_TYPE FOR G_ATWRT modif id MKE,
      S_MAXTY FOR G_ATWRT modif id MKE.

PARAMETERSP_RANGE type char12 AS LISTBOX VISIBLE LENGTH 12 DEFAULT '1' modif id MKE.
SELECTION-SCREEN END OF BLOCK B001.
INITIALIZATION.

  PERFORM F_INITIAL.
AT SELECTION-SCREEN OUTPUT.
    loop at screen.
    if screen-group1 'MKE' AND RB_MAKE IS INITIAL .
      screen-invisible '1'.
      screen-input '0'.
      modify screen.
    endif.
    if screen-group1 'IMP' AND RB_IMP IS INITIAL .
      screen-invisible '1'.
      screen-input '0'.
      modify screen.
    endif.
  endloop.

AT SELECTION-SCREEN on value-request for s_brand-low.
  PERFORM F_VALUE_REQUEST USING 'S_BRAND-LOW'
                                'T001'.
AT SELECTION-SCREEN on value-request for S_BRAND-HIGH.
  PERFORM F_VALUE_REQUEST USING 'S_BRAND-HIGH'
                                'T001'.

AT SELECTION-SCREEN on value-request for S_YEAR-low.
  PERFORM F_VALUE_REQUEST USING 'S_YEAR-LOW'
                                'T002'.
AT SELECTION-SCREEN on value-request for S_YEAR-HIGH.
  PERFORM F_VALUE_REQUEST USING 'S_YEAR-HIGH'
                                'T002'.
AT SELECTION-SCREEN on value-request for S_SEAN-low.
  PERFORM F_VALUE_REQUEST USING 'S_SEAN-LOW'
                                'T003'.
AT SELECTION-SCREEN on value-request for S_SEAN-HIGH.
  PERFORM F_VALUE_REQUEST USING 'S_SEAN-HIGH'
                                'T003'.

AT SELECTION-SCREEN on value-request for S_DATE-low.
  PERFORM F_VALUE_REQUEST USING 'S_DATE-LOW'
                                'T006'.
AT SELECTION-SCREEN on value-request for S_DATE-HIGH.
  PERFORM F_VALUE_REQUEST USING 'S_DATE-HIGH'
                                'T006'.

AT SELECTION-SCREEN on value-request for S_PRJ-low.
  PERFORM F_VALUE_REQUEST USING 'S_PRJ-LOW'
                                'T007'.
AT SELECTION-SCREEN on value-request for S_PRJ-HIGH.
  PERFORM F_VALUE_REQUEST USING 'S_PRJ-HIGH'
                                'T007'.
AT SELECTION-SCREEN on value-request for S_TYPE-low.
  PERFORM F_VALUE_REQUEST USING 'S_TYPE-LOW'
                                'T009'.
AT SELECTION-SCREEN on value-request for S_TYPE-HIGH.
  PERFORM F_VALUE_REQUEST USING 'S_TYPE-HIGH'
                                'T009'.
AT SELECTION-SCREEN on value-request for S_MAXTY-low.
  PERFORM F_VALUE_REQUEST USING 'S_MAXTY-LOW'
                                'T017'.
AT SELECTION-SCREEN on value-request for S_MAXTY-HIGH.
  PERFORM F_VALUE_REQUEST USING 'S_MAXTY-HIGH'
                                'T017'.

FORM F_VALUE_REQUEST  USING    VALUE(P_NAME)
                               VALUE(P_TNAME).
  DATALW_CHAR_VALUES TYPE BAPI_CHAR_VALUES.
  DATABEGIN OF LIT_CHARVALUE OCCURS 0,
          ATWRT TYPE CAWN-ATWRT,
        END OF LIT_CHARVALUE.
  DATAl_retfield TYPE HELP_INFO-DYNPROFLD.
  DATAL_CHAR TYPE BAPI_CHAR.
  DATAL_DATE TYPE DATS.
  refresh LIT_CHARVALUE[].
  clear LIT_CHARVALUE.
  LOOP AT IT_CHAR_VALUES INTO LW_CHAR_VALUES WHERE NAME_CHAR P_TNAME .
    CASE P_TNAME.
      WHEN 'T006'."日期格式
        CALL FUNCTION 'CTCV_CONVERT_FLOAT_TO_DATE'
          EXPORTING
            FLOAT       LW_CHAR_VALUES-NUM_VAL_FM
         IMPORTING
           DATE         LIT_CHARVALUE-ATWRT.
         L_DATE LIT_CHARVALUE-ATWRT.
         WRITE L_DATE TO  LIT_CHARVALUE-ATWRT .
        APPEND LIT_CHARVALUE.
        clear LIT_CHARVALUE.
      WHEN OTHERS.
        LIT_CHARVALUE-ATWRT LW_CHAR_VALUES-DESCR_CVAL.
        APPEND LIT_CHARVALUE.
        clear LIT_CHARVALUE.
    ENDCASE.
  ENDLOOP.
  l_retfield  P_NAME.


  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
*     DDIC_STRUCTURE         = ' '
      RETFIELD               'ATWRT'
*     PVALKEY                = ' '
     DYNPPROG               =   SY-REPID
     DYNPNR                 SY-DYNNR
      DYNPROFIELD            l_retfield
      VALUE_ORG              'S'
    TABLES
      VALUE_TAB              LIT_CHARVALUE[]
   EXCEPTIONS
     PARAMETER_ERROR        1
     NO_VALUES_FOUND        2
     OTHERS                 3
            .
  IF SY-SUBRC <> 0.
     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

ENDFORM.                    " F_VALUE_REQUEST

FORM F_INITIAL .

**选择范围初始值
*   PERFORM F_RANGE_INITIAL.
*  取出成品的所有特征
   CALL FUNCTION 'BAPI_CLASS_GET_CHARACTERISTICS'
     EXPORTING
       CLASSNUM              'C002'
       CLASSTYPE             '001'
*      LANGU_ISO             =
*      LANGU_INT             =
*      KEY_DATE              = SY-DATUM
*      WITH_VALUES           = 'X'
*    IMPORTING
*      RETURN                =
     TABLES
       CHARACTERISTICS       IT_CHAR
       CHAR_VALUES           IT_CHAR_VALUES.

*CLEAR GV_EAN11.
ENDFORM.                    " F_INITIAL

你可能感兴趣的:(01,ABAP,基础,05,Dialog)