*&---------------------------------------------------------------------*
*& Report ZTEST_PILLAR
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ztest_pillar.
TYPE-POOLS: VRM ,TRUXS,ICON,SLIS.
TABLES: mara, j_3apgen.
data: G_ATWRT type ATWRT,
G_YEAR(4) TYPE N,
G_DATE TYPE DATS.
DATA: IT_CHAR_VALUES TYPE TABLE OF BAPI_CHAR_VALUES.
DATA: IT_CHAR TYPE TABLE OF BAPI_CHAR.
DATA:GT_RAW_DATA TYPE TRUXS_T_TEXT_DATA.
PARAMETERS: RB_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.
PARAMETERS: RB_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.

PARAMETERS: P_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).
DATA: LW_CHAR_VALUES TYPE BAPI_CHAR_VALUES.
DATA: BEGIN OF LIT_CHARVALUE OCCURS 0,
ATWRT TYPE CAWN-ATWRT,
END OF LIT_CHARVALUE.
DATA: l_retfield TYPE HELP_INFO-DYNPROFLD.
DATA: L_CHAR TYPE BAPI_CHAR.
DATA: L_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