ALV折叠屏幕
*&---------------------------------------------------------------------*
*&?Report??ZTEST_ALV
*&
*&---------------------------------------------------------------------*
*&
*&實則ALV相應字段的分類匯總!!!
*&---------------------------------------------------------------------*
REPORT??ZTEST_ALV.
TYPE-POOLS?:?SLIS.
TABLES?:TCURM.
TYPES:
BEGIN?OF?T_OUT,
??PRDHA?TYPE?MARA-PRDHA,
??MATNR?TYPE?MATNR,
??EBELN?TYPE?EBELN,
??BEBLP?TYPE?EBELP,
??STATU?TYPE?ASTAT,
??EMATN?TYPE?EMATNR,
??BUKRS?TYPE?BUKRS,
??WERKS?TYPE?EWERK,
??LGORT?TYPE?LGORT_D,
??MATKL?TYPE?MATKL,
??KTMNG?TYPE?KTMNG,
??MENGE?TYPE?BSTMG,
??MEINS?TYPE?BSTME,
END?OF?T_OUT.
DATA?:?I_OUT?TYPE?STANDARD?TABLE?OF?T_OUT,
???????WA_OUT?TYPE?T_OUT,
???????GTD_TITLE?TYPE?SLIS_T_LISTHEADER,
???????GTH_TITLE?TYPE?SLIS_LISTHEADER.
START-OF-SELECTION.
??SELECT?*
????INTO?CORRESPONDING?FIELDS?OF?TABLE?I_OUT
????FROM?EKPO
????INNER?JOIN?MARA
????ON?EKPO~MATNR?=?MARA~MATNR
????UP?TO?100?ROWS
????WHERE?MARA~PRDHA?<>?''.
??IF?LINES(?I_OUT?)?>?0.
????SORT?I_OUT?BY?PRDHA?MATNR?EBELN?BUKRS?WERKS.
????PERFORM?DISPLAY_LIST.
??ENDIF.
*&---------------------------------------------------------------------*
*&??????Form??display_list
*&---------------------------------------------------------------------*
*???????text
*----------------------------------------------------------------------*
FORM?DISPLAY_LIST.
??DATA:?LT_SP_GROUPS?TYPE?SLIS_T_SP_GROUP_ALV,
????????L_T_FIELDCAT?TYPE?SLIS_T_FIELDCAT_ALV,
????????L_LAYOUT?????TYPE?SLIS_LAYOUT_ALV,
????????L_T_SORT?????TYPE?SLIS_T_SORTINFO_ALV,
????????L_SORT???????TYPE?SLIS_SORTINFO_ALV,
????????L_T_EVENT????TYPE?SLIS_T_EVENT,
????????L_EVENT??????TYPE?SLIS_ALV_EVENT.
??DATA:?L_REPID??????LIKE?SY-REPID.
*?field?groups
*??PERFORM?SET_FIELDGROUPS?CHANGING?LT_SP_GROUPS.
*?fieldcat
??PERFORM?BUILD_FIELDCAT??CHANGING?L_T_FIELDCAT.
??PERFORM?SUB_TITLE.
*?layout
*??L_LAYOUT-COLWIDTH_OPTIMIZE?=?'X'.
??L_LAYOUT-GET_SELINFOS?=?'X'.
??L_LAYOUT-F2CODE?=?'DETAIL'.
*?Events
??L_EVENT-NAME?=?SLIS_EV_TOP_OF_PAGE.
??L_EVENT-FORM?=?'ALV_TOP_OF_PAGE'.
??APPEND?L_EVENT?TO?L_T_EVENT.
*?Sort
??L_SORT-FIELDNAME?=?'PRDHA'.
??L_SORT-SPOS?=?1.
??L_SORT-UP?=?'X'.
??L_SORT-SUBTOT?=?'X'.
??APPEND?L_SORT?TO?L_T_SORT.
*??L_SORT-FIELDNAME?=?'MATNR'.
*??L_SORT-SPOS?=?1.
*??L_SORT-UP?=?'X'.
*??L_SORT-SUBTOT?=?'X'.
*??APPEND?L_SORT?TO?L_T_SORT.
*??L_SORT-FIELDNAME?=?'EBELN'.
*??L_SORT-SPOS?=?1.
*??L_SORT-UP?=?'X'.
*??L_SORT-SUBTOT?=?'X'.
*??APPEND?L_SORT?TO?L_T_SORT.
*??L_SORT-FIELDNAME?=?'BUKRS'.
*??L_SORT-SPOS?=?1.
*??L_SORT-UP?=?'X'.
*??L_SORT-SUBTOT?=?'X'.
*??APPEND?L_SORT?TO?L_T_SORT.
*
*??L_SORT-FIELDNAME?=?'WERKS'.
*??L_SORT-SPOS?=?1.
*??L_SORT-UP?=?'X'.
*??L_SORT-SUBTOT?=?'X'.
*??APPEND?L_SORT?TO?L_T_SORT.
*?call?ALV
??L_REPID?=?SY-REPID.
??CALL?FUNCTION?'REUSE_ALV_GRID_DISPLAY'
??????EXPORTING
*?????????i_interface_check????????=?'X'
???????????I_CALLBACK_PROGRAM???????=?L_REPID
???????????I_CALLBACK_PF_STATUS_SET?=?'ALV_PF_STATUS_SET'
???????????I_CALLBACK_USER_COMMAND??=?'ALV_USER_COMMAND'
*?????????I_STRUCTURE_NAME?????????=
???????????IS_LAYOUT????????????????=?L_LAYOUT
???????????IT_FIELDCAT??????????????=?L_T_FIELDCAT
*?????????IT_EXCLUDING?????????????=
???????????IT_SPECIAL_GROUPS????????=?LT_SP_GROUPS
???????????IT_SORT??????????????????=?L_T_SORT
*?????????IT_FILTER????????????????=
*?????????IS_SEL_HIDE??????????????=
*?????????I_DEFAULT????????????????=?'X'
???????????I_SAVE???????????????????=?'A'
*???????????IS_VARIANT???????????????=?IS_VARIANT
???????????IT_EVENTS????????????????=?L_T_EVENT
??????TABLES
???????????T_OUTTAB?????????????????=?I_OUT
??????EXCEPTIONS
???????????PROGRAM_ERROR????????????=?1
???????????OTHERS???????????????????=?2
???????????.
??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.????????????????????"display_list
*&---------------------------------------------------------------------*
*&??????Form??set_fieldgroups
*&---------------------------------------------------------------------*
*???????text
*----------------------------------------------------------------------*
*??????-->CT_SP_GROUPS??text
*----------------------------------------------------------------------*
FORM?SET_FIELDGROUPS
??CHANGING?CT_SP_GROUPS?TYPE?SLIS_T_SP_GROUP_ALV.
??DATA:?LF_SP_GROUP?TYPE?SLIS_SP_GROUP_ALV.
??LF_SP_GROUP-SP_GROUP?=?'0001'.
??APPEND?LF_SP_GROUP?TO?CT_SP_GROUPS.
??LF_SP_GROUP-SP_GROUP?=?'0002'.
??APPEND?LF_SP_GROUP?TO?CT_SP_GROUPS.
??LF_SP_GROUP-SP_GROUP?=?'0003'.
??APPEND?LF_SP_GROUP?TO?CT_SP_GROUPS.
??LF_SP_GROUP-SP_GROUP?=?'0004'.
??APPEND?LF_SP_GROUP?TO?CT_SP_GROUPS.
??LF_SP_GROUP-SP_GROUP?=?'0005'.
??APPEND?LF_SP_GROUP?TO?CT_SP_GROUPS.
??LF_SP_GROUP-SP_GROUP?=?'0006'.
??APPEND?LF_SP_GROUP?TO?CT_SP_GROUPS.
??CALL?FUNCTION?'SET_FIELDGROUP_TEXTS'
????CHANGING
??????CT_SPECIAL_GROUPS?=?CT_SP_GROUPS.
ENDFORM.????????????????????"set_fieldgroups
*&---------------------------------------------------------------------*
*&??????Form??build_fieldcat
*&---------------------------------------------------------------------*
*???????text
*----------------------------------------------------------------------*
*??????-->I_XBWTAR??????text
*??????-->I_XVBELN??????text
*??????-->I_XPSPNR??????text
*??????-->E_T_FIELDCAT??text
*----------------------------------------------------------------------*
FORM?BUILD_FIELDCAT?CHANGING?E_T_FIELDCAT?TYPE?SLIS_T_FIELDCAT_ALV.
??DATA:?L_FIELDCAT?TYPE?SLIS_FIELDCAT_ALV,
????????L_COL_POS??TYPE?I.
??CLEAR?L_FIELDCAT.
??L_COL_POS?=?L_FIELDCAT-COL_POS?+?1.
??L_FIELDCAT-FIELDNAME?=?'PRDHA'.
??L_FIELDCAT-SELTEXT_M?=?'產品層次'.
??L_FIELDCAT-DDICTXT?=?'L'.
??L_FIELDCAT-OUTPUTLEN?=?10.
*??L_FIELDCAT-SP_GROUP?=?'0001'.
??APPEND?L_FIELDCAT?TO?E_T_FIELDCAT.
??CLEAR?L_FIELDCAT.
??L_COL_POS?=?L_FIELDCAT-COL_POS?+?1.
??L_FIELDCAT-FIELDNAME?=?'MATNR'.
??L_FIELDCAT-SELTEXT_M?=?'物料代碼'.
??L_FIELDCAT-DDICTXT?=?'L'.
??L_FIELDCAT-OUTPUTLEN?=?24.
*??L_FIELDCAT-SP_GROUP?=?'0005'.
??APPEND?L_FIELDCAT?TO?E_T_FIELDCAT.
??CLEAR?L_FIELDCAT.
??L_COL_POS?=?L_FIELDCAT-COL_POS?+?1.
??L_FIELDCAT-FIELDNAME?=?'EBELN'.
??L_FIELDCAT-SELTEXT_M?=?'采購單號'.
??L_FIELDCAT-DDICTXT?=?'L'.
??L_FIELDCAT-OUTPUTLEN?=?24.
*??L_FIELDCAT-SP_GROUP?=?'0005'.
??APPEND?L_FIELDCAT?TO?E_T_FIELDCAT.
??CLEAR?L_FIELDCAT.
??L_COL_POS?=?L_FIELDCAT-COL_POS?+?1.
??L_FIELDCAT-FIELDNAME?=?'BUKRS'.
??L_FIELDCAT-SELTEXT_M?=?'公司代碼'.
??L_FIELDCAT-DDICTXT?=?'L'.
??L_FIELDCAT-OUTPUTLEN?=?8.
*??L_FIELDCAT-SP_GROUP?=?'0005'.
??APPEND?L_FIELDCAT?TO?E_T_FIELDCAT.
??CLEAR?L_FIELDCAT.
??L_COL_POS?=?L_FIELDCAT-COL_POS?+?1.
??L_FIELDCAT-FIELDNAME?=?'WERKS'.
??L_FIELDCAT-SELTEXT_M?=?'工廠'.
??L_FIELDCAT-DDICTXT?=?'L'.
??L_FIELDCAT-OUTPUTLEN?=?8.
*??L_FIELDCAT-SP_GROUP?=?'0005'.
??APPEND?L_FIELDCAT?TO?E_T_FIELDCAT.
??CLEAR?L_FIELDCAT.
??L_COL_POS?=?L_FIELDCAT-COL_POS?+?1.
??L_FIELDCAT-FIELDNAME?=?'KTMNG'.
??L_FIELDCAT-SELTEXT_M?=?'目標數量'.
??L_FIELDCAT-DDICTXT?=?'L'.
??L_FIELDCAT-OUTPUTLEN?=?20.
??L_FIELDCAT-DO_SUM?=?'X'.
*??L_FIELDCAT-SP_GROUP?=?'0004'.
??APPEND?L_FIELDCAT?TO?E_T_FIELDCAT.
??CLEAR?L_FIELDCAT.
??L_COL_POS?=?L_FIELDCAT-COL_POS?+?1.
??L_FIELDCAT-FIELDNAME?=?'MENGE'.
??L_FIELDCAT-SELTEXT_M?=?'采購訂單數量'.
??L_FIELDCAT-DDICTXT?=?'L'.
??L_FIELDCAT-OUTPUTLEN?=?20.
??L_FIELDCAT-DO_SUM?=?'X'.
*??L_FIELDCAT-SP_GROUP?=?'0004'.
??APPEND?L_FIELDCAT?TO?E_T_FIELDCAT.
??CLEAR?L_FIELDCAT.
??L_COL_POS?=?L_FIELDCAT-COL_POS?+?1.
??L_FIELDCAT-FIELDNAME?=?'MEINS'.
*??L_FIELDCAT-SELTEXT_M?=?'單位'.
??L_FIELDCAT-DDICTXT?=?'L'.
??L_FIELDCAT-OUTPUTLEN?=?8.
??L_FIELDCAT-REF_FIELDNAME?=?'MEINS'.
??L_FIELDCAT-REF_TABNAME?=?'MARA'.
??L_FIELDCAT-NO_SUM?=?'X'.
*??L_FIELDCAT-SP_GROUP?=?'0001'.
??APPEND?L_FIELDCAT?TO?E_T_FIELDCAT.
ENDFORM.????????????????????"build_fieldcat
*---------------------------------------------------------------------*
*???????FORM?ALV_PF_STATUS_SET
*---------------------------------------------------------------------*
FORM?ALV_PF_STATUS_SET
USING?RT_EXTAB?TYPE?SLIS_T_EXTAB.
*?perform?alv_exclude_fcode?using?'&LFO'?changing?rt_extab.
??SET?PF-STATUS?'STANDARD_FULLSCREEN'?EXCLUDING?RT_EXTAB.
ENDFORM.????????????????????"alv_pf_status_set
*---------------------------------------------------------------------*
*???????FORM?alv_exclude_fcode
*---------------------------------------------------------------------*
FORM?ALV_EXCLUDE_FCODE
USING?I_FCODE
CHANGING?E_T_EXTAB?TYPE?SLIS_T_EXTAB.
??DATA:?L_EXTAB?TYPE?SLIS_EXTAB.
??L_EXTAB-FCODE?=?I_FCODE.
??COLLECT?L_EXTAB?INTO?E_T_EXTAB.
ENDFORM.????????????????????"alv_exclude_fcode
*---------------------------------------------------------------------*
*???????FORM?ALV_USER_COMMAND
*---------------------------------------------------------------------*
FORM?ALV_USER_COMMAND
USING?R_UCOMM?LIKE?SY-UCOMM
??????RS_SELFIELD?TYPE?SLIS_SELFIELD.
??CASE?R_UCOMM.
????WHEN?'CURR'.
*??????PERFORM?SELECT_CURRENCY.
??????RS_SELFIELD-REFRESH?=?'X'.
??????RS_SELFIELD-COL_STABLE?=?'X'.
??????RS_SELFIELD-ROW_STABLE?=?'X'.
????WHEN?'DETAIL'.
??????PERFORM?DISPLAY_DETAIL?USING?RS_SELFIELD.
????WHEN?OTHERS.
??ENDCASE.
ENDFORM.????????????????????"alv_user_command
*&---------------------------------------------------------------------*
*&??????Form??display_detail
*&---------------------------------------------------------------------*
*???????text
*----------------------------------------------------------------------*
*??????-->I_SELFIELD?text
*----------------------------------------------------------------------*
FORM?DISPLAY_DETAIL
??USING?I_SELFIELD?TYPE?SLIS_SELFIELD.
??DATA:?L_OUT?TYPE?T_OUT.
??IF?I_SELFIELD-TABINDEX?>?0.
????READ?TABLE?I_OUT?INDEX?I_SELFIELD-TABINDEX?INTO?WA_OUT.
*????IF?SY-SUBRC?=?0.
*??????CALL?FUNCTION?'CKM8_ML_DATA_DISPLAY'
*????????EXPORTING
*??????????I_MATNR?=?WA_OUT-MATNR.
*????ENDIF.
????MESSAGE?WA_OUT-MATNR?TYPE?'I'.
??ELSE.
??ENDIF.
ENDFORM.????????????????????"display_detail
*---------------------------------------------------------------------*
*???????FORM?ALV_TOP_OF_page??????????????????????????????????????????*
*---------------------------------------------------------------------*
FORM?ALV_TOP_OF_PAGE.
??CALL?FUNCTION?'REUSE_ALV_COMMENTARY_WRITE'
???????EXPORTING
????????????IT_LIST_COMMENTARY?=?GTD_TITLE
*?????????I_LOGO?????????????=
????????????.
ENDFORM.????????????????????"alv_top_of_page
*&---------------------------------------------------------------------*
*&??????Form??SUB_SET_TITLE
*&---------------------------------------------------------------------*
*???????text
*----------------------------------------------------------------------*
*??????-->I_TYP??????text
*??????-->I_KEY??????text
*??????-->I_INFO?????text
*----------------------------------------------------------------------*
FORM?SUB_SET_TITLE?USING?I_TYP?TYPE?ANY
?????????????????????????I_KEY?TYPE?ANY
?????????????????????????I_INFO?TYPE?ANY.
??CLEAR?GTH_TITLE.
??GTH_TITLE-TYP??=?I_TYP.?????????????"輸出的類型
??GTH_TITLE-KEY??=?I_KEY.?????????????"文本
??GTH_TITLE-INFO?=?I_INFO.????????????"數值
??APPEND?GTH_TITLE?TO?GTD_TITLE.
ENDFORM.?????"sub_set_title
*&---------------------------------------------------------------------*
*&??????Form??SUB_TITLE
*&---------------------------------------------------------------------*
*???????text
*----------------------------------------------------------------------*
FORM?SUB_TITLE.
??REFRESH?GTD_TITLE.
??CLEAR?GTH_TITLE.
??PERFORM?SUB_SET_TITLE?USING??'H'??''??'采購訂單報表'.
??PERFORM?SUB_SET_TITLE?USING??'S'??'日期?:'?SY-DATUM.
??PERFORM?SUB_SET_TITLE?USING??'S'??'作者?:'?SY-UNAME.
ENDFORM.????????"SET_TITLE
*data?:?GV_TREE?TYPE?REF?TO?CL_GUI_ALV_TREE.
*
*CALL?METHOD?GV_TREE->SET_TABLE_FOR_FIRST_DISPLAY
**??EXPORTING
**????I_STRUCTURE_NAME?????=
**????IS_VARIANT???????????=
**????I_SAVE???????????????=
**????I_DEFAULT????????????=?'X'
**????IS_HIERARCHY_HEADER??=
**????IS_EXCEPTION_FIELD???=
**????IT_SPECIAL_GROUPS????=
**????IT_LIST_COMMENTARY???=
**????I_LOGO???????????????=
**????I_BACKGROUND_ID??????=
**????IT_TOOLBAR_EXCLUDING?=
**????IT_EXCEPT_QINFO??????=
*??CHANGING
*????IT_OUTTAB????????????=
**????IT_FILTER????????????=
**????IT_FIELDCATALOG??????=
*????.
*&?Report??ZTEST_ALV
*&
*&---------------------------------------------------------------------*
*&
*&實則ALV相應字段的分類匯總!!!
*&---------------------------------------------------------------------*
REPORT??ZTEST_ALV.
TYPE-POOLS?:?SLIS.
TABLES?:TCURM.
TYPES:
BEGIN?OF?T_OUT,
??PRDHA?TYPE?MARA-PRDHA,
??MATNR?TYPE?MATNR,
??EBELN?TYPE?EBELN,
??BEBLP?TYPE?EBELP,
??STATU?TYPE?ASTAT,
??EMATN?TYPE?EMATNR,
??BUKRS?TYPE?BUKRS,
??WERKS?TYPE?EWERK,
??LGORT?TYPE?LGORT_D,
??MATKL?TYPE?MATKL,
??KTMNG?TYPE?KTMNG,
??MENGE?TYPE?BSTMG,
??MEINS?TYPE?BSTME,
END?OF?T_OUT.
DATA?:?I_OUT?TYPE?STANDARD?TABLE?OF?T_OUT,
???????WA_OUT?TYPE?T_OUT,
???????GTD_TITLE?TYPE?SLIS_T_LISTHEADER,
???????GTH_TITLE?TYPE?SLIS_LISTHEADER.
START-OF-SELECTION.
??SELECT?*
????INTO?CORRESPONDING?FIELDS?OF?TABLE?I_OUT
????FROM?EKPO
????INNER?JOIN?MARA
????ON?EKPO~MATNR?=?MARA~MATNR
????UP?TO?100?ROWS
????WHERE?MARA~PRDHA?<>?''.
??IF?LINES(?I_OUT?)?>?0.
????SORT?I_OUT?BY?PRDHA?MATNR?EBELN?BUKRS?WERKS.
????PERFORM?DISPLAY_LIST.
??ENDIF.
*&---------------------------------------------------------------------*
*&??????Form??display_list
*&---------------------------------------------------------------------*
*???????text
*----------------------------------------------------------------------*
FORM?DISPLAY_LIST.
??DATA:?LT_SP_GROUPS?TYPE?SLIS_T_SP_GROUP_ALV,
????????L_T_FIELDCAT?TYPE?SLIS_T_FIELDCAT_ALV,
????????L_LAYOUT?????TYPE?SLIS_LAYOUT_ALV,
????????L_T_SORT?????TYPE?SLIS_T_SORTINFO_ALV,
????????L_SORT???????TYPE?SLIS_SORTINFO_ALV,
????????L_T_EVENT????TYPE?SLIS_T_EVENT,
????????L_EVENT??????TYPE?SLIS_ALV_EVENT.
??DATA:?L_REPID??????LIKE?SY-REPID.
*?field?groups
*??PERFORM?SET_FIELDGROUPS?CHANGING?LT_SP_GROUPS.
*?fieldcat
??PERFORM?BUILD_FIELDCAT??CHANGING?L_T_FIELDCAT.
??PERFORM?SUB_TITLE.
*?layout
*??L_LAYOUT-COLWIDTH_OPTIMIZE?=?'X'.
??L_LAYOUT-GET_SELINFOS?=?'X'.
??L_LAYOUT-F2CODE?=?'DETAIL'.
*?Events
??L_EVENT-NAME?=?SLIS_EV_TOP_OF_PAGE.
??L_EVENT-FORM?=?'ALV_TOP_OF_PAGE'.
??APPEND?L_EVENT?TO?L_T_EVENT.
*?Sort
??L_SORT-FIELDNAME?=?'PRDHA'.
??L_SORT-SPOS?=?1.
??L_SORT-UP?=?'X'.
??L_SORT-SUBTOT?=?'X'.
??APPEND?L_SORT?TO?L_T_SORT.
*??L_SORT-FIELDNAME?=?'MATNR'.
*??L_SORT-SPOS?=?1.
*??L_SORT-UP?=?'X'.
*??L_SORT-SUBTOT?=?'X'.
*??APPEND?L_SORT?TO?L_T_SORT.
*??L_SORT-FIELDNAME?=?'EBELN'.
*??L_SORT-SPOS?=?1.
*??L_SORT-UP?=?'X'.
*??L_SORT-SUBTOT?=?'X'.
*??APPEND?L_SORT?TO?L_T_SORT.
*??L_SORT-FIELDNAME?=?'BUKRS'.
*??L_SORT-SPOS?=?1.
*??L_SORT-UP?=?'X'.
*??L_SORT-SUBTOT?=?'X'.
*??APPEND?L_SORT?TO?L_T_SORT.
*
*??L_SORT-FIELDNAME?=?'WERKS'.
*??L_SORT-SPOS?=?1.
*??L_SORT-UP?=?'X'.
*??L_SORT-SUBTOT?=?'X'.
*??APPEND?L_SORT?TO?L_T_SORT.
*?call?ALV
??L_REPID?=?SY-REPID.
??CALL?FUNCTION?'REUSE_ALV_GRID_DISPLAY'
??????EXPORTING
*?????????i_interface_check????????=?'X'
???????????I_CALLBACK_PROGRAM???????=?L_REPID
???????????I_CALLBACK_PF_STATUS_SET?=?'ALV_PF_STATUS_SET'
???????????I_CALLBACK_USER_COMMAND??=?'ALV_USER_COMMAND'
*?????????I_STRUCTURE_NAME?????????=
???????????IS_LAYOUT????????????????=?L_LAYOUT
???????????IT_FIELDCAT??????????????=?L_T_FIELDCAT
*?????????IT_EXCLUDING?????????????=
???????????IT_SPECIAL_GROUPS????????=?LT_SP_GROUPS
???????????IT_SORT??????????????????=?L_T_SORT
*?????????IT_FILTER????????????????=
*?????????IS_SEL_HIDE??????????????=
*?????????I_DEFAULT????????????????=?'X'
???????????I_SAVE???????????????????=?'A'
*???????????IS_VARIANT???????????????=?IS_VARIANT
???????????IT_EVENTS????????????????=?L_T_EVENT
??????TABLES
???????????T_OUTTAB?????????????????=?I_OUT
??????EXCEPTIONS
???????????PROGRAM_ERROR????????????=?1
???????????OTHERS???????????????????=?2
???????????.
??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.????????????????????"display_list
*&---------------------------------------------------------------------*
*&??????Form??set_fieldgroups
*&---------------------------------------------------------------------*
*???????text
*----------------------------------------------------------------------*
*??????-->CT_SP_GROUPS??text
*----------------------------------------------------------------------*
FORM?SET_FIELDGROUPS
??CHANGING?CT_SP_GROUPS?TYPE?SLIS_T_SP_GROUP_ALV.
??DATA:?LF_SP_GROUP?TYPE?SLIS_SP_GROUP_ALV.
??LF_SP_GROUP-SP_GROUP?=?'0001'.
??APPEND?LF_SP_GROUP?TO?CT_SP_GROUPS.
??LF_SP_GROUP-SP_GROUP?=?'0002'.
??APPEND?LF_SP_GROUP?TO?CT_SP_GROUPS.
??LF_SP_GROUP-SP_GROUP?=?'0003'.
??APPEND?LF_SP_GROUP?TO?CT_SP_GROUPS.
??LF_SP_GROUP-SP_GROUP?=?'0004'.
??APPEND?LF_SP_GROUP?TO?CT_SP_GROUPS.
??LF_SP_GROUP-SP_GROUP?=?'0005'.
??APPEND?LF_SP_GROUP?TO?CT_SP_GROUPS.
??LF_SP_GROUP-SP_GROUP?=?'0006'.
??APPEND?LF_SP_GROUP?TO?CT_SP_GROUPS.
??CALL?FUNCTION?'SET_FIELDGROUP_TEXTS'
????CHANGING
??????CT_SPECIAL_GROUPS?=?CT_SP_GROUPS.
ENDFORM.????????????????????"set_fieldgroups
*&---------------------------------------------------------------------*
*&??????Form??build_fieldcat
*&---------------------------------------------------------------------*
*???????text
*----------------------------------------------------------------------*
*??????-->I_XBWTAR??????text
*??????-->I_XVBELN??????text
*??????-->I_XPSPNR??????text
*??????-->E_T_FIELDCAT??text
*----------------------------------------------------------------------*
FORM?BUILD_FIELDCAT?CHANGING?E_T_FIELDCAT?TYPE?SLIS_T_FIELDCAT_ALV.
??DATA:?L_FIELDCAT?TYPE?SLIS_FIELDCAT_ALV,
????????L_COL_POS??TYPE?I.
??CLEAR?L_FIELDCAT.
??L_COL_POS?=?L_FIELDCAT-COL_POS?+?1.
??L_FIELDCAT-FIELDNAME?=?'PRDHA'.
??L_FIELDCAT-SELTEXT_M?=?'產品層次'.
??L_FIELDCAT-DDICTXT?=?'L'.
??L_FIELDCAT-OUTPUTLEN?=?10.
*??L_FIELDCAT-SP_GROUP?=?'0001'.
??APPEND?L_FIELDCAT?TO?E_T_FIELDCAT.
??CLEAR?L_FIELDCAT.
??L_COL_POS?=?L_FIELDCAT-COL_POS?+?1.
??L_FIELDCAT-FIELDNAME?=?'MATNR'.
??L_FIELDCAT-SELTEXT_M?=?'物料代碼'.
??L_FIELDCAT-DDICTXT?=?'L'.
??L_FIELDCAT-OUTPUTLEN?=?24.
*??L_FIELDCAT-SP_GROUP?=?'0005'.
??APPEND?L_FIELDCAT?TO?E_T_FIELDCAT.
??CLEAR?L_FIELDCAT.
??L_COL_POS?=?L_FIELDCAT-COL_POS?+?1.
??L_FIELDCAT-FIELDNAME?=?'EBELN'.
??L_FIELDCAT-SELTEXT_M?=?'采購單號'.
??L_FIELDCAT-DDICTXT?=?'L'.
??L_FIELDCAT-OUTPUTLEN?=?24.
*??L_FIELDCAT-SP_GROUP?=?'0005'.
??APPEND?L_FIELDCAT?TO?E_T_FIELDCAT.
??CLEAR?L_FIELDCAT.
??L_COL_POS?=?L_FIELDCAT-COL_POS?+?1.
??L_FIELDCAT-FIELDNAME?=?'BUKRS'.
??L_FIELDCAT-SELTEXT_M?=?'公司代碼'.
??L_FIELDCAT-DDICTXT?=?'L'.
??L_FIELDCAT-OUTPUTLEN?=?8.
*??L_FIELDCAT-SP_GROUP?=?'0005'.
??APPEND?L_FIELDCAT?TO?E_T_FIELDCAT.
??CLEAR?L_FIELDCAT.
??L_COL_POS?=?L_FIELDCAT-COL_POS?+?1.
??L_FIELDCAT-FIELDNAME?=?'WERKS'.
??L_FIELDCAT-SELTEXT_M?=?'工廠'.
??L_FIELDCAT-DDICTXT?=?'L'.
??L_FIELDCAT-OUTPUTLEN?=?8.
*??L_FIELDCAT-SP_GROUP?=?'0005'.
??APPEND?L_FIELDCAT?TO?E_T_FIELDCAT.
??CLEAR?L_FIELDCAT.
??L_COL_POS?=?L_FIELDCAT-COL_POS?+?1.
??L_FIELDCAT-FIELDNAME?=?'KTMNG'.
??L_FIELDCAT-SELTEXT_M?=?'目標數量'.
??L_FIELDCAT-DDICTXT?=?'L'.
??L_FIELDCAT-OUTPUTLEN?=?20.
??L_FIELDCAT-DO_SUM?=?'X'.
*??L_FIELDCAT-SP_GROUP?=?'0004'.
??APPEND?L_FIELDCAT?TO?E_T_FIELDCAT.
??CLEAR?L_FIELDCAT.
??L_COL_POS?=?L_FIELDCAT-COL_POS?+?1.
??L_FIELDCAT-FIELDNAME?=?'MENGE'.
??L_FIELDCAT-SELTEXT_M?=?'采購訂單數量'.
??L_FIELDCAT-DDICTXT?=?'L'.
??L_FIELDCAT-OUTPUTLEN?=?20.
??L_FIELDCAT-DO_SUM?=?'X'.
*??L_FIELDCAT-SP_GROUP?=?'0004'.
??APPEND?L_FIELDCAT?TO?E_T_FIELDCAT.
??CLEAR?L_FIELDCAT.
??L_COL_POS?=?L_FIELDCAT-COL_POS?+?1.
??L_FIELDCAT-FIELDNAME?=?'MEINS'.
*??L_FIELDCAT-SELTEXT_M?=?'單位'.
??L_FIELDCAT-DDICTXT?=?'L'.
??L_FIELDCAT-OUTPUTLEN?=?8.
??L_FIELDCAT-REF_FIELDNAME?=?'MEINS'.
??L_FIELDCAT-REF_TABNAME?=?'MARA'.
??L_FIELDCAT-NO_SUM?=?'X'.
*??L_FIELDCAT-SP_GROUP?=?'0001'.
??APPEND?L_FIELDCAT?TO?E_T_FIELDCAT.
ENDFORM.????????????????????"build_fieldcat
*---------------------------------------------------------------------*
*???????FORM?ALV_PF_STATUS_SET
*---------------------------------------------------------------------*
FORM?ALV_PF_STATUS_SET
USING?RT_EXTAB?TYPE?SLIS_T_EXTAB.
*?perform?alv_exclude_fcode?using?'&LFO'?changing?rt_extab.
??SET?PF-STATUS?'STANDARD_FULLSCREEN'?EXCLUDING?RT_EXTAB.
ENDFORM.????????????????????"alv_pf_status_set
*---------------------------------------------------------------------*
*???????FORM?alv_exclude_fcode
*---------------------------------------------------------------------*
FORM?ALV_EXCLUDE_FCODE
USING?I_FCODE
CHANGING?E_T_EXTAB?TYPE?SLIS_T_EXTAB.
??DATA:?L_EXTAB?TYPE?SLIS_EXTAB.
??L_EXTAB-FCODE?=?I_FCODE.
??COLLECT?L_EXTAB?INTO?E_T_EXTAB.
ENDFORM.????????????????????"alv_exclude_fcode
*---------------------------------------------------------------------*
*???????FORM?ALV_USER_COMMAND
*---------------------------------------------------------------------*
FORM?ALV_USER_COMMAND
USING?R_UCOMM?LIKE?SY-UCOMM
??????RS_SELFIELD?TYPE?SLIS_SELFIELD.
??CASE?R_UCOMM.
????WHEN?'CURR'.
*??????PERFORM?SELECT_CURRENCY.
??????RS_SELFIELD-REFRESH?=?'X'.
??????RS_SELFIELD-COL_STABLE?=?'X'.
??????RS_SELFIELD-ROW_STABLE?=?'X'.
????WHEN?'DETAIL'.
??????PERFORM?DISPLAY_DETAIL?USING?RS_SELFIELD.
????WHEN?OTHERS.
??ENDCASE.
ENDFORM.????????????????????"alv_user_command
*&---------------------------------------------------------------------*
*&??????Form??display_detail
*&---------------------------------------------------------------------*
*???????text
*----------------------------------------------------------------------*
*??????-->I_SELFIELD?text
*----------------------------------------------------------------------*
FORM?DISPLAY_DETAIL
??USING?I_SELFIELD?TYPE?SLIS_SELFIELD.
??DATA:?L_OUT?TYPE?T_OUT.
??IF?I_SELFIELD-TABINDEX?>?0.
????READ?TABLE?I_OUT?INDEX?I_SELFIELD-TABINDEX?INTO?WA_OUT.
*????IF?SY-SUBRC?=?0.
*??????CALL?FUNCTION?'CKM8_ML_DATA_DISPLAY'
*????????EXPORTING
*??????????I_MATNR?=?WA_OUT-MATNR.
*????ENDIF.
????MESSAGE?WA_OUT-MATNR?TYPE?'I'.
??ELSE.
??ENDIF.
ENDFORM.????????????????????"display_detail
*---------------------------------------------------------------------*
*???????FORM?ALV_TOP_OF_page??????????????????????????????????????????*
*---------------------------------------------------------------------*
FORM?ALV_TOP_OF_PAGE.
??CALL?FUNCTION?'REUSE_ALV_COMMENTARY_WRITE'
???????EXPORTING
????????????IT_LIST_COMMENTARY?=?GTD_TITLE
*?????????I_LOGO?????????????=
????????????.
ENDFORM.????????????????????"alv_top_of_page
*&---------------------------------------------------------------------*
*&??????Form??SUB_SET_TITLE
*&---------------------------------------------------------------------*
*???????text
*----------------------------------------------------------------------*
*??????-->I_TYP??????text
*??????-->I_KEY??????text
*??????-->I_INFO?????text
*----------------------------------------------------------------------*
FORM?SUB_SET_TITLE?USING?I_TYP?TYPE?ANY
?????????????????????????I_KEY?TYPE?ANY
?????????????????????????I_INFO?TYPE?ANY.
??CLEAR?GTH_TITLE.
??GTH_TITLE-TYP??=?I_TYP.?????????????"輸出的類型
??GTH_TITLE-KEY??=?I_KEY.?????????????"文本
??GTH_TITLE-INFO?=?I_INFO.????????????"數值
??APPEND?GTH_TITLE?TO?GTD_TITLE.
ENDFORM.?????"sub_set_title
*&---------------------------------------------------------------------*
*&??????Form??SUB_TITLE
*&---------------------------------------------------------------------*
*???????text
*----------------------------------------------------------------------*
FORM?SUB_TITLE.
??REFRESH?GTD_TITLE.
??CLEAR?GTH_TITLE.
??PERFORM?SUB_SET_TITLE?USING??'H'??''??'采購訂單報表'.
??PERFORM?SUB_SET_TITLE?USING??'S'??'日期?:'?SY-DATUM.
??PERFORM?SUB_SET_TITLE?USING??'S'??'作者?:'?SY-UNAME.
ENDFORM.????????"SET_TITLE
*data?:?GV_TREE?TYPE?REF?TO?CL_GUI_ALV_TREE.
*
*CALL?METHOD?GV_TREE->SET_TABLE_FOR_FIRST_DISPLAY
**??EXPORTING
**????I_STRUCTURE_NAME?????=
**????IS_VARIANT???????????=
**????I_SAVE???????????????=
**????I_DEFAULT????????????=?'X'
**????IS_HIERARCHY_HEADER??=
**????IS_EXCEPTION_FIELD???=
**????IT_SPECIAL_GROUPS????=
**????IT_LIST_COMMENTARY???=
**????I_LOGO???????????????=
**????I_BACKGROUND_ID??????=
**????IT_TOOLBAR_EXCLUDING?=
**????IT_EXCEPT_QINFO??????=
*??CHANGING
*????IT_OUTTAB????????????=
**????IT_FILTER????????????=
**????IT_FIELDCATALOG??????=
*????.
總結
- 上一篇: SAP收货时自动创建采购订单
- 下一篇: 在SMARTFORMS中取消使用WORD