资产折旧盘点表
REPORT?ZFIR001
.
TABLES :ANLC ,BSEG ,T001 ,BKPF ,ANLA .
*---定義結(jié)構(gòu)---For?Main?ALV?OutPut-------------------------------------*
TYPES :? BEGIN? OF?TY_ITAB ,
*??CHECK?TYPE?FLAG,
?????????BUKRS??? TYPE?ANLA -BUKRS ,? "公司代碼
?????????BUTXT??? TYPE?T001 -BUTXT ,? "公司代碼描述
?????????ANLKL??? TYPE?ANLA -ANLKL ,? "資產(chǎn)類別
?????????TXK50??? TYPE?ANKT -TXK50 ,? "資產(chǎn)類別描述
?????????ANLN1??? TYPE?ANLA -ANLN1 ,? "資產(chǎn)編號(hào)
?????????ANLN2??? TYPE?ANLA -ANLN2 ,? "資產(chǎn)編號(hào)
?????????TXT50??? TYPE?ANLA -TXT50 ,? "固定資產(chǎn)名稱
?????????AKTIV??? TYPE?ANLA -AKTIV ,? "啟用日期
?????????KANSW??? TYPE?ANLC -KANSW ,? "
?????????ANSWL??? TYPE?ANLC -KANSW ,? "
?????????YZ?????? TYPE?ANLC -KANSW ,? "賬面原值
?????????JZ?????? TYPE?ANLC -KANSW ,? "賬面凈值
?????????KNAFA??? TYPE?ANLC -KNAFA ,? "以前年度已提折舊
?????????NAFAG??? TYPE?ANLC -NAFAG ,? "本年度已提折舊
?????????NAFAZ1?? TYPE?ANLP -NAFAZ ,? "本年度已提折舊-1月
?????????NAFAZ2?? TYPE?ANLP -NAFAZ ,? "本年度已提折舊-2月
?????????NAFAZ3?? TYPE?ANLP -NAFAZ ,? "本年度已提折舊-3月
?????????NAFAZ4?? TYPE?ANLP -NAFAZ ,? "本年度已提折舊-4月
?????????NAFAZ5?? TYPE?ANLP -NAFAZ ,? "本年度已提折舊-5月
?????????NAFAZ6?? TYPE?ANLP -NAFAZ ,? "本年度已提折舊-6月
?????????NAFAZ7?? TYPE?ANLP -NAFAZ ,? "本年度已提折舊-7月
?????????NAFAZ8?? TYPE?ANLP -NAFAZ ,? "本年度已提折舊-8月
?????????NAFAZ9?? TYPE?ANLP -NAFAZ ,? "本年度已提折舊-9月
?????????NAFAZ10? TYPE?ANLP -NAFAZ ,? "本年度已提折舊-10月
?????????NAFAZ11? TYPE?ANLP -NAFAZ ,? "本年度已提折舊-11月
?????????NAFAZ12? TYPE?ANLP -NAFAZ ,? "本年度已提折舊-12月
??????? END??? OF?TY_ITAB .
DATA :?GT_ITAB? TYPE? STANDARD? TABLE? OF?TY_ITAB ,
??????GW_ITAB? TYPE?TY_ITAB .
FIELD-SYMBOLS?<ITAB>? TYPE?TY_ITAB .
*----------------------------------------------------------------------*
*???????CLASS?lcl_main_alv?DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS?LCL_MAIN_ALV? DEFINITION .
?? PUBLIC? SECTION .
???? METHODS :?GENERATE_ALV .
?? PRIVATE? SECTION .
???? DATA :?O_SALV? TYPE? REF? TO?CL_SALV_TABLE .
???? DATA :?O_SALV1? TYPE? REF? TO?CL_SALV_TABLE .
???? METHODS :
??????SET_PF_STATUS
???????? CHANGING
??????????CO_ALV? TYPE? REF? TO?CL_SALV_TABLE ,
??????SET_LAYOUT
???????? CHANGING
??????????CO_ALV? TYPE? REF? TO?CL_SALV_TABLE ,
??????SET_DISPLAY_SETTING
???????? CHANGING
??????????CO_ALV? TYPE? REF? TO?CL_SALV_TABLE ,
??????SET_DISPLAY_SETTING_SEC
???????? CHANGING
??????????CO_ALV? TYPE? REF? TO?CL_SALV_TABLE ,
??????SET_COLUMNS
???????? CHANGING
??????????CO_ALV? TYPE? REF? TO?CL_SALV_TABLE ,
??????REFRESH_ALV ,
??????ON_USER_COMMAND? FOR? EVENT?ADDED_FUNCTION? OF?CL_SALV_EVENTS
???????? IMPORTING?E_SALV_FUNCTION ,
??????HANDLE_DOUBLE_CLICK
???????????????????? FOR? EVENT?DOUBLE_CLICK? OF?CL_SALV_EVENTS_TABLE
???????? IMPORTING?ROW?COLUMN ,
??????HANDLE_LINK_CLICK
???????????? FOR? EVENT?LINK_CLICK? OF?CL_SALV_EVENTS_TABLE
???????? IMPORTING
????????????ROW?COLUMN .
ENDCLASS .???????????????????? "lcl_main_alv?DEFINITION
*---------------------------------------------------------------------*
*?選擇屏幕
*---------------------------------------------------------------------*
SELECTION-SCREEN : BEGIN? OF? BLOCK?B1? WITH? FRAME? TITLE? TEXT - 001 .
SELECT-OPTIONS :
??S_BUKRS? FOR?ANLC -BUKRS? NO -EXTENSION?OBLIGATORY ,? "公司代碼
??S_GJAHR? FOR?ANLC -GJAHR? NO?INTERVALS? NO -EXTENSION?OBLIGATORY? DEFAULT?SY -DATUM+0 ( 4 ) ,
??S_MONAT? FOR?BKPF -MONAT? NO?INTERVALS? NO -EXTENSION?OBLIGATORY ,
??S_ANLN1? FOR?ANLA -ANLN1 ,
??S_ANLKL? FOR?ANLA -ANLKL .
PARAMETERS :
??P_NOZERO? AS? CHECKBOX? DEFAULT? 'X' .
SELECTION-SCREEN? END? OF? BLOCK?B1 .
*&---------------------------------------------------------------------*
*&??????START-OF-SELECTION
*&---------------------------------------------------------------------*
START-OF-SELECTION .
?? PERFORM?GET_DATA .
?? DATA :?LO_MAIN_ALV? TYPE? REF? TO?LCL_MAIN_ALV .
?? CREATE?OBJECT?LO_MAIN_ALV .
??LO_MAIN_ALV ->GENERATE_ALV (? ) .
END-OF-SELECTION .
*&---------------------------------------------------------------------*
*&??????Form??GET_DATA
*&---------------------------------------------------------------------*
*???????text
*----------------------------------------------------------------------*
*??-->??p1????????text
*??<--??p2????????text
*----------------------------------------------------------------------*
FORM?GET_DATA? .
?? DATA :LT_ANKT? LIKE? TABLE? OF?ANKT? WITH? HEADER? LINE ,
???????LT_T001? LIKE? TABLE? OF?T001? WITH? HEADER? LINE ,
???????LT_ANLP? LIKE? TABLE? OF?ANLP? WITH? HEADER? LINE .
?? SELECT?ANLA ~BUKRS?ANLA ~ANLKL?ANLA ~ANLN1?ANLA ~ANLN2?ANLA ~TXT50?ANLA ~AKTIV
?????????ANLC ~KANSW?ANLC ~ANSWL?ANLC ~KNAFA?ANLC ~NAFAG
???? FROM?ANLA
????INNER? JOIN?ANLC? ON?ANLC ~BUKRS? =?ANLA ~BUKRS
???????????????????? AND?ANLC ~ANLN1? =?ANLA ~ANLN1
???????????????????? AND?ANLC ~ANLN2? =?ANLA ~ANLN2
???? INTO?CORRESPONDING? FIELDS? OF? TABLE?GT_ITAB
??? WHERE?ANLA ~BUKRS? IN?S_BUKRS
????? AND?ANLA ~ANLN1? IN?S_ANLN1
????? AND?ANLA ~ANLKL? IN?S_ANLKL
????? AND?ANLA ~XLOEV? =? ''
????? AND?ANLC ~GJAHR? =?S_GJAHR -LOW .
?? CHECK?GT_ITAB[]? IS? NOT? INITIAL .
?? SELECT?*? FROM?T001? INTO? TABLE?LT_T001? WHERE?BUKRS? IN?S_BUKRS .
?? SELECT?*? FROM?ANKT? INTO? TABLE?LT_ANKT
???? FOR? ALL?ENTRIES? IN?GT_ITAB
???? WHERE?ANLKL? =?GT_ITAB -ANLKL
?????? AND?SPRAS? =?SY -LANGU .
?? SELECT?*? FROM?ANLP
???? INTO?CORRESPONDING? FIELDS? OF? TABLE?LT_ANLP
???? FOR? ALL?ENTRIES? IN?GT_ITAB
???? WHERE?ANLP ~BUKRS? =?GT_ITAB -BUKRS
?????? AND?ANLP ~ANLN1? =?GT_ITAB -ANLN1
?????? AND?ANLP ~ANLN2? =?GT_ITAB -ANLN2
?????? AND?GJAHR? =?S_GJAHR -LOW
?????? AND?PERAF?<=?S_MONAT -LOW .
?? LOOP? AT?GT_ITAB? ASSIGNING?<ITAB> .
???? READ? TABLE?LT_T001? WITH? KEY?BUKRS? =?<ITAB> -BUKRS .
???? IF?SY -SUBRC? =? 0 .
??????<ITAB> -BUTXT? =?LT_T001 -BUTXT .
???? ENDIF .
???? READ? TABLE?LT_ANKT? WITH? KEY?ANLKL? =?<ITAB> -ANLKL .
???? IF?SY -SUBRC? =? 0 .
??????<ITAB> -TXK50? =?LT_ANKT -TXK50 .
???? ENDIF .
????<ITAB> -NAFAG? =? 0 .
????<ITAB> -KNAFA? =? 0? -?<ITAB> -KNAFA .
???? LOOP? AT?LT_ANLP? WHERE?BUKRS? =?<ITAB> -BUKRS
?????????????????????? AND?ANLN1? =?<ITAB> -ANLN1
?????????????????????? AND?ANLN2? =?<ITAB> -ANLN2 .
??????LT_ANLP -NAFAZ? =? 0? -?LT_ANLP -NAFAZ .
?????? CASE?LT_ANLP -PERAF .
???????? WHEN? 1 .
?????????? ADD?LT_ANLP -NAFAZ? TO?<ITAB> -NAFAZ1 .
???????? WHEN? 2 .
?????????? ADD?LT_ANLP -NAFAZ? TO?<ITAB> -NAFAZ2 .
???????? WHEN? 3 .
?????????? ADD?LT_ANLP -NAFAZ? TO?<ITAB> -NAFAZ3 .
???????? WHEN? 4 .
?????????? ADD?LT_ANLP -NAFAZ? TO?<ITAB> -NAFAZ4 .
???????? WHEN? 5 .
?????????? ADD?LT_ANLP -NAFAZ? TO?<ITAB> -NAFAZ5 .
???????? WHEN? 6 .
?????????? ADD?LT_ANLP -NAFAZ? TO?<ITAB> -NAFAZ6 .
???????? WHEN? 7 .
?????????? ADD?LT_ANLP -NAFAZ? TO?<ITAB> -NAFAZ7 .
???????? WHEN? 8 .
?????????? ADD?LT_ANLP -NAFAZ? TO?<ITAB> -NAFAZ8 .
???????? WHEN? 9 .
?????????? ADD?LT_ANLP -NAFAZ? TO?<ITAB> -NAFAZ9 .
???????? WHEN? 10 .
?????????? ADD?LT_ANLP -NAFAZ? TO?<ITAB> -NAFAZ10 .
???????? WHEN? 11 .
?????????? ADD?LT_ANLP -NAFAZ? TO?<ITAB> -NAFAZ11 .
???????? WHEN? 12 .
?????????? ADD?LT_ANLP -NAFAZ? TO?<ITAB> -NAFAZ12 .
?????? ENDCASE .
?????? ADD?LT_ANLP -NAFAZ? TO?<ITAB> -NAFAG .
???? ENDLOOP .
????<ITAB> -YZ? =?<ITAB> -KANSW?+?<ITAB> -ANSWL .
????<ITAB> -JZ? =?<ITAB> -YZ? -?<ITAB> -KNAFA? -?<ITAB> -NAFAG .
?? ENDLOOP .
*??LOOP?AT?GT_DATA.
**????IF?GT_DATA-GJAHR?NOT?IN?S_GJAHR?AND?GT_DATA-GJAHR?IS?NOT?INITIAL.
**??????DELETE?GT_DATA?INDEX?SY-TABIX.
**??????CONTINUE.
**????ENDIF.
**????IF?GT_DATA-PERAF?NOT?IN?S_MONAT?AND?GT_DATA-PERAF?IS?NOT?INITIAL.
**??????DELETE?GT_DATA?INDEX?SY-TABIX.
**??????CONTINUE.
**????ENDIF.
*
*????IF?GT_DATA-AKTIV+0(6)?>?L_AKTIV.
*??????DELETE?GT_DATA?INDEX?SY-TABIX.
*??????CONTINUE.
*????ENDIF.
*????IF?GT_DATA-GJAHR?IS?NOT?INITIAL?AND?GT_DATA-GJAHR?>?S_GJAHR-LOW.
*??????DELETE?GT_DATA?INDEX?SY-TABIX.
*??????CONTINUE.
*????ENDIF.
*????L_PERAF?=?S_MONAT-LOW??+?1.
*????IF?GT_DATA-GJAHR?IS?NOT?INITIAL?AND?GT_DATA-GJAHR?=?S_GJAHR-LOW.
**??????IF?S_MONAT-LOW?<?GT_DATA-PERAF?.
*??????IF?L_PERAF?<?GT_DATA-PERAF?.
*????????DELETE?GT_DATA?INDEX?SY-TABIX.
*????????CONTINUE.
*??????ENDIF.
*????ENDIF.
*??ENDLOOP.
*??IF?GT_DATA[]?IS?NOT?INITIAL.
*????SELECT?BUTXT?BUKRS
*??????INTO?CORRESPONDING?FIELDS?OF?TABLE?GT_T001
*??????FROM?T001
*???????FOR?ALL?ENTRIES?IN?GT_DATA
*?????WHERE?BUKRS?=?GT_DATA-BUKRS.
*
*????SELECT?ANLKL?TXK50
*??????INTO?CORRESPONDING?FIELDS?OF?TABLE?GT_ANKT
*??????FROM?ANKT
*???????FOR?ALL?ENTRIES?IN?GT_DATA
*?????WHERE?ANLKL?=?GT_DATA-ANLKL
*???????AND?SPRAS?=?'1'.
*
*????SELECT?LTEXT?KOSTL
*??????INTO?CORRESPONDING?FIELDS?OF?TABLE?GT_CSKT
*??????FROM?CSKT
*???????FOR?ALL?ENTRIES?IN?GT_DATA
*?????WHERE?(?KOSTL?=?GT_DATA-KOSTL?OR?KOSTL?=?GT_DATA-KOSTLV?)
*???????AND?SPRAS?=?'1'
*???????AND?KOKRS?=?'CNYD'
*???????AND?DATBI?>=?SY-DATUM.
*
*????SELECT?ORD4X?ORDNR?ORDTX
*??????INTO?CORRESPONDING?FIELDS?OF?TABLE?GT_T087T
*??????FROM?T087T
*???????FOR?ALL?ENTRIES?IN?GT_DATA
*?????WHERE?(?ORD4X?=?GT_DATA-ORD41?OR?ORD4X?=?GT_DATA-ORD42
*??????????OR?ORD4X?=?GT_DATA-ORD43?OR?ORD4X?=?GT_DATA-ORD44?)
*???????AND?SPRAS?=?'1'.
*
*????SELECT?GDLGRP?GDLGRP_TXT
*??????INTO?CORRESPONDING?FIELDS?OF?TABLE?GT_T087S
*??????FROM?T087S
*???????FOR?ALL?ENTRIES?IN?GT_DATA
*?????WHERE?SPRAS?=?'1'
*???????AND?GDLGRP?=?GT_DATA-GDLGRP.
*
*????SELECT?ANLUE?ANLUE_TXT
*??????INTO?CORRESPONDING?FIELDS?OF?TABLE?GT_T087V
*??????FROM?T087V
*???????FOR?ALL?ENTRIES?IN?GT_DATA
*?????WHERE?SPRAS?=?'1'
*???????AND?ANLUE?=?GT_DATA-ANLUE.
*
*????SELECT?T090NA~AFASL?T091P~AHPROZ
*??????INTO?CORRESPONDING?FIELDS?OF?TABLE?GT_T091P
*??????FROM?T091P?INNER?JOIN?T090NA?ON?T090NA~ANHWSL?=?T091P~ANHWSL.
*
*????SELECT?LIFNR?NAME1
*??????INTO?CORRESPONDING?FIELDS?OF?TABLE?GT_LFA1
*??????FROM?LFA1
*???????FOR?ALL?ENTRIES?IN?GT_DATA
*?????WHERE?LIFNR?=?GT_DATA-LIFNR.
*????SELECT?PRCTR?KTEXT
*??????INTO?CORRESPONDING?FIELDS?OF?TABLE?GT_CEPCT
*??????FROM?CEPCT
*???????FOR?ALL?ENTRIES?IN?GT_DATA
*?????WHERE?PRCTR?=?GT_DATA-PRCTR
*???????AND?SPRAS?=?'1'
*???????AND?KOKRS?=?'CNYD'.
*??ENDIF.
*??SORT?GT_DATA?BY?PRCTR?ANLN1?ASCENDING?PERAF?AFBNR?DESCENDING?.
*??I_DATA[]?=?GT_DATA[].
*??LOOP?AT?GT_DATA.
**????公司代碼描述
*??????READ?TABLE?GT_T001?WITH?KEY?BUKRS?=?GT_DATA-BUKRS.
*??????GW_ITAB-BUTXT?=?GT_T001.
**????資產(chǎn)類別描述
*??????READ?TABLE?GT_ANKT?WITH?KEY?ANLKL?=?GT_DATA-ANLKL.
*??????GW_ITAB-TXK50?=?GT_ANKT-TXK50.
**????使用部門描述
*??????READ?TABLE?GT_CSKT?WITH?KEY?KOSTL?=?GT_DATA-KOSTL.
*??????GW_ITAB-LTEXT?=?GT_CSKT-LTEXT.
*??????CLEAR?GT_CSKT.
**????負(fù)責(zé)部門描述
*??????READ?TABLE?GT_CSKT?WITH?KEY?KOSTL?=?GT_DATA-KOSTLV.
*??????GW_ITAB-LTEXTV?=?GT_CSKT-LTEXT.
**????資產(chǎn)狀態(tài)描述
*??????READ?TABLE?GT_T087T?WITH?KEY?ORD4X?=?GT_DATA-ORD41
*???????????????????????????????????ORDNR?=?'1'.
*??????GW_ITAB-ORDT1?=?GT_T087T-ORDTX.
*??????CLEAR?GT_T087T.
**????增加方式描述
*??????READ?TABLE?GT_T087T?WITH?KEY?ORD4X?=?GT_DATA-ORD42
*???????????????????????????????????ORDNR?=?'2'.
*??????GW_ITAB-ORDT2?=?GT_T087T-ORDTX.
*??????CLEAR?GT_T087T.
*??ENDLOOP.
ENDFORM .???????????????????? "?GET_DATA
*----------------------------------------------------------------------*
*???????CLASS?lcl_main_alv?IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS?LCL_MAIN_ALV? IMPLEMENTATION .
?? METHOD?GENERATE_ALV .
*
???? DATA :?LX_MSG? TYPE? REF? TO?CX_SALV_MSG .
???? TRY .
????????CL_SALV_TABLE =>FACTORY (
?????????? IMPORTING
????????????R_SALV_TABLE? =?O_SALV
?????????? CHANGING
????????????T_TABLE?????? =?GT_ITAB? ) .
?????? CATCH?CX_SALV_MSG? INTO?LX_MSG .
???? ENDTRY .
???? CALL? METHOD?SET_PF_STATUS
?????? CHANGING
????????CO_ALV? =?O_SALV .
???? CALL? METHOD?SET_LAYOUT
?????? CHANGING
????????CO_ALV? =?O_SALV .
???? CALL? METHOD?SET_DISPLAY_SETTING
?????? CHANGING
????????CO_ALV? =?O_SALV .
???? CALL? METHOD?SET_COLUMNS
?????? CHANGING
????????CO_ALV? =?O_SALV .
???? DATA :?LO_EVENTS? TYPE? REF? TO?CL_SALV_EVENTS_TABLE .
???? DATA :?LO_EVENTS1? TYPE? REF? TO?CL_SALV_EVENTS_TABLE .
????LO_EVENTS? =?O_SALV ->GET_EVENT (? ) .
???? SET? HANDLER?HANDLE_DOUBLE_CLICK? FOR?LO_EVENTS .
???? SET? HANDLER?ON_USER_COMMAND? FOR?LO_EVENTS .
???? DATA :LR_SELS? TYPE? REF? TO?CL_SALV_SELECTIONS .
????LR_SELS? =?O_SALV ->GET_SELECTIONS (? ) .
????LR_SELS ->SET_SELECTION_MODE (?IF_SALV_C_SELECTION_MODE =>ROW_COLUMN? ) .
*???顯示?ALV
????O_SALV ->DISPLAY (? ) .
?? ENDMETHOD .???????????????????? "generate_alv
*設(shè)置工具欄
?? METHOD?SET_PF_STATUS .
???? DATA :?LO_FUNCTIONS? TYPE? REF? TO?CL_SALV_FUNCTIONS .
????CO_ALV ->SET_SCREEN_STATUS (
??????PFSTATUS?????? =?? 'ZSALV_STATUS'
?????? REPORT???????? =??SY -REPID
??????SET_FUNCTIONS? =?CO_ALV ->C_FUNCTIONS_ALL? ) .
????LO_FUNCTIONS? =?CO_ALV ->GET_FUNCTIONS (? ) .
????LO_FUNCTIONS ->SET_ALL (?ABAP_TRUE? ) .
*????TRY.
*????LO_FUNCTIONS->SET_FUNCTION(?NAME?=?'ZUNDO'?BOOLEAN?=?''?).
*??????CATCH?CX_SALV_WRONG_CALL.?????????????????????????"#EC?NO_HANDLER
*??????CATCH?CX_SALV_NOT_FOUND.??????????????????????????"#EC?NO_HANDLER
?? ENDMETHOD .???????????????????? "set_pf_status
*?Settings?for?Layout
?? METHOD?SET_LAYOUT .
*
???? DATA :?LO_LAYOUT?? TYPE? REF? TO?CL_SALV_LAYOUT ,
??????????LF_VARIANT? TYPE?SLIS_VARI ,
??????????LS_LAYOUT?? TYPE?SALV_S_LAYOUT_INFO ,
??????????LS_KEY????? TYPE?SALV_S_LAYOUT_KEY .
*
????LO_LAYOUT? =?CO_ALV ->GET_LAYOUT (? ) .
????LS_KEY - REPORT? =?SY -REPID .
????LS_LAYOUT? =?CL_SALV_LAYOUT_SERVICE =>GET_DEFAULT_LAYOUT (
????????S_KEY???? =?LS_KEY
????????RESTRICT? =?IF_SALV_C_LAYOUT =>RESTRICT_NONE? ) .
????LF_VARIANT? =?LS_LAYOUT -LAYOUT .
????LO_LAYOUT ->SET_KEY (?LS_KEY? ) .
????LO_LAYOUT ->SET_DEFAULT (?ABAP_TRUE? ) .
????LO_LAYOUT ->SET_SAVE_RESTRICTION (?IF_SALV_C_LAYOUT =>RESTRICT_NONE? ) .
????LO_LAYOUT ->SET_INITIAL_LAYOUT (?LF_VARIANT? ) .
?? ENDMETHOD .???????????????????? "set_layout
?? METHOD?SET_DISPLAY_SETTING .
*
???? DATA :?LO_DISPLAY? TYPE? REF? TO?CL_SALV_DISPLAY_SETTINGS .
????LO_DISPLAY? =?O_SALV ->GET_DISPLAY_SETTINGS (? ) .
????LO_DISPLAY ->SET_STRIPED_PATTERN (? 'X'? ) .
????LO_DISPLAY ->SET_FIT_COLUMN_TO_TABLE_SIZE (? 'X'? ) .
*????lo_display->set_list_header(?'ALV?Test?for?Display?Settings'?).
*
?? ENDMETHOD .???????????????????? "SET_DISPLAY_SETTING
?? METHOD?SET_DISPLAY_SETTING_SEC .
*
???? DATA :?LO_DISPLAY? TYPE? REF? TO?CL_SALV_DISPLAY_SETTINGS .
????LO_DISPLAY? =?O_SALV1 ->GET_DISPLAY_SETTINGS (? ) .
????LO_DISPLAY ->SET_STRIPED_PATTERN (? 'X'? ) .
????LO_DISPLAY ->SET_FIT_COLUMN_TO_TABLE_SIZE (? 'X'? ) .
*????lo_display->set_list_header(?'ALV?Test?for?Display?Settings'?).
*
?? ENDMETHOD .
*??設(shè)置列屬性
?? METHOD?SET_COLUMNS .
*
???? DATA :?LO_COLS??? TYPE? REF? TO?CL_SALV_COLUMNS_TABLE ,
??????????LO_COLUMN? TYPE? REF? TO?CL_SALV_COLUMN_TABLE .
???? DATA :?LV_SCRTEXT_L? TYPE?SCRTEXT_L .
*????DATA:?LV_SCRTEXT_S?TYPE?SCRTEXT_S.
????LO_COLS? =?CO_ALV ->GET_COLUMNS (? ) .
????LO_COLS ->SET_OPTIMIZE (?ABAP_TRUE? ) .
????LO_COLS ->SET_KEY_FIXATION (?ABAP_TRUE? ) .
???? TRY .
*????????LO_COLS->SET_CELL_TYPE_COLUMN(?'IT_CELL_TYPES'?).
*????????LO_COLS->SET_COLOR_COLUMN(?'IT_CELL_COLOR'?).
?????? CATCH?CX_SALV_DATA_ERROR .????????????????????????? "#EC?NO_HANDLER
???? ENDTRY .
???? TRY .
*????????LO_COLUMN??=?LO_COLS->GET_COLUMN(?'PSPHI'?).
*????????LO_COLUMN->SET_VISIBLE(?ABAP_FALSE?).
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'BUKRS'? ) .
????????LV_SCRTEXT_L? =? '公司代碼' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'BUTXT'? ) .
????????LV_SCRTEXT_L? =? '公司代碼描述' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'ANLKL'? ) .
????????LV_SCRTEXT_L? =? '資產(chǎn)類別' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'TXK50?'? ) .
????????LV_SCRTEXT_L? =? '資產(chǎn)類別描述' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'ANLN1'? ) .
????????LV_SCRTEXT_L? =? '資產(chǎn)卡片號(hào)' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'TXT50'? ) .
????????LV_SCRTEXT_L? =? '資產(chǎn)名稱' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'AKTIV'? ) .
????????LV_SCRTEXT_L? =? '購(gòu)入時(shí)間' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'YZ'? ) .
????????LV_SCRTEXT_L? =? '賬面原值' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'JZ'? ) .
????????LV_SCRTEXT_L? =? '賬面凈值' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'KNAFA'? ) .
????????LV_SCRTEXT_L? =? '以前年度已提折舊' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'NAFAG'? ) .
????????LV_SCRTEXT_L? =? '本年度已提折舊' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'NAFAZ1'? ) .
????????LV_SCRTEXT_L? =? '本年折舊-1月' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'NAFAZ2'? ) .
????????LV_SCRTEXT_L? =? '本年折舊-2月' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'NAFAZ3'? ) .
????????LV_SCRTEXT_L? =? '本年折舊-3月' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'NAFAZ4'? ) .
????????LV_SCRTEXT_L? =? '本年折舊-4月' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'NAFAZ5'? ) .
????????LV_SCRTEXT_L? =? '本年折舊-5月' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'NAFAZ6'? ) .
????????LV_SCRTEXT_L? =? '本年折舊-6月' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'NAFAZ7'? ) .
????????LV_SCRTEXT_L? =? '本年折舊-7月' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'NAFAZ8'? ) .
????????LV_SCRTEXT_L? =? '本年折舊-8月' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'NAFAZ9'? ) .
????????LV_SCRTEXT_L? =? '本年折舊-9月' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'NAFAZ10'? ) .
????????LV_SCRTEXT_L? =? '本年折舊-10月' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'NAFAZ11'? ) .
????????LV_SCRTEXT_L? =? '本年折舊-11月' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'NAFAZ12'? ) .
????????LV_SCRTEXT_L? =? '本年折舊-12月' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
?????? CATCH?CX_SALV_NOT_FOUND .?????????????????????????? "#EC?NO_HANDLER
???? ENDTRY .
*
*小計(jì)及排序設(shè)置
???? DATA :?LR_AGGREGATIONS? TYPE? REF? TO?CL_SALV_AGGREGATIONS .
????LR_AGGREGATIONS? =?CO_ALV ->GET_AGGREGATIONS (? ) .
????LR_AGGREGATIONS -> CLEAR (? ) .
???? DATA :?LR_GROUPS? TYPE? REF? TO?CL_SALV_SORTS? .
????LR_GROUPS? =?CO_ALV ->GET_SORTS (? )? .
????LR_GROUPS -> CLEAR (? ) .
???? TRY .
????????LR_AGGREGATIONS ->ADD_AGGREGATION (?COLUMNNAME? =? 'YUANZ'? ) .
????????LR_AGGREGATIONS ->ADD_AGGREGATION (?COLUMNNAME? =? 'YUEZJ'? ) .
????????LR_AGGREGATIONS ->ADD_AGGREGATION (?COLUMNNAME? =? 'SNLJZ'? ) .
????????LR_AGGREGATIONS ->ADD_AGGREGATION (?COLUMNNAME? =? 'BLJZJ'? ) .
????????LR_AGGREGATIONS ->ADD_AGGREGATION (?COLUMNNAME? =? 'LJZJT'? ) .
????????LR_AGGREGATIONS ->ADD_AGGREGATION (?COLUMNNAME? =? 'JINGE'? ) .
*????????LR_GROUPS->ADD_SORT(?COLUMNNAME?=?'RACCT'
*?????????????????????????????POSITION???=?1
*?????????????????????????????SUBTOTAL???=?ABAP_TRUE
*?????????????????????????????SEQUENCE???=?IF_SALV_C_SORT=>SORT_UP?).
?????? CATCH?CX_SALV_NOT_FOUND?CX_SALV_DATA_ERROR?CX_SALV_EXISTING .
???? ENDTRY .
?? ENDMETHOD .???????????????????? "SET_COLUMNS
?? METHOD?HANDLE_DOUBLE_CLICK .
???? CASE?COLUMN .
?????? WHEN? OTHERS .
???????? READ? TABLE?GT_ITAB? INTO?GW_ITAB? INDEX?ROW .
*????????IF?SY-SUBRC?=?0
*對(duì)跳轉(zhuǎn)屏幕數(shù)據(jù)進(jìn)行整理
???? ENDCASE .
????ME ->REFRESH_ALV (?? ) .
?? ENDMETHOD .???????????????????? "HANDLE_DOUBLE_CLICK
?? METHOD?HANDLE_LINK_CLICK .
???? CASE?COLUMN .
?????? WHEN? 'CHECK' .
???????? READ? TABLE?GT_ITAB? ASSIGNING?<ITAB>? INDEX?ROW .
???????? IF?SY -SUBRC? =? 0 .
*??????????IF?<ITAB>-CHECK?=?'X'.
*????????????<ITAB>-CHECK?=?''.
**????????????MODIFY?GT_ITAB?FROM?<ITAB>?TRANSPORTING?CHECK?WHERE?MBLNR?=?<ITAB>-MBLNR.
*??????????ELSE.
*????????????<ITAB>-CHECK?=?'X'.
**????????????MODIFY?GT_ITAB?FROM?<ITAB>?TRANSPORTING?CHECK?WHERE?MBLNR?=?<ITAB>-MBLNR.
*??????????ENDIF.
???????? ENDIF .
?????? WHEN? 'BELNR' .
*????????READ?TABLE?GT_SEC?INTO?GS_SEC?INDEX?ROW.
*????????IF?SY-SUBRC?=?0.
*??????????SET?PARAMETER?ID?'BUK'?FIELD?GS_SEC-BUKRS.
*??????????SET?PARAMETER?ID?'GJR'?FIELD?GS_SEC-GJAHR.
*??????????SET?PARAMETER?ID?'BLN'?FIELD?GS_SEC-BELNR.
*??????????CALL?TRANSACTION?'FB03'?AND?SKIP?FIRST?SCREEN.
*????????ENDIF.
???? ENDCASE .
?? ENDMETHOD .???????????????????? "HANDLE_link_click
?? METHOD?ON_USER_COMMAND .
???? DATA :?O_SELS? TYPE? REF? TO?CL_SALV_SELECTIONS ,
??????????T_ROWS? TYPE?SALV_T_ROW ,
??????????L_ROW?? TYPE? LINE? OF?SALV_T_ROW .
???? DATA :?LT_DATA? TYPE? STANDARD? TABLE? OF?TY_ITAB .
???? DATA :?LS_DATA? TYPE?TY_ITAB .
???? DATA?L_LINES? TYPE? C?LENGTH? 3 .
???? DATA?L_ITEM? TYPE? C?LENGTH? 3 .
???? CASE?E_SALV_FUNCTION .
?????? WHEN? 'SALL' .
*????????GW_ITAB-CHECK?=?'X'.
*????????MODIFY?GT_ITAB?FROM?GW_ITAB?TRANSPORTING?CHECK?WHERE?CHECK?=?''.
?????? WHEN? 'DSAL' .
*????????GW_ITAB-CHECK?=?''.
*????????MODIFY?GT_ITAB?FROM?GW_ITAB?TRANSPORTING?CHECK?WHERE?CHECK?=?'X'.
*??????WHEN?'PRINT'.
*????????PERFORM?DATA_EDIT.
*??????WHEN?'SALL'.
*????????O_SELS?=?O_ALV->GET_SELECTIONS(?).
*????????T_ROWS?=?O_SELS->GET_SELECTED_ROWS(?).
*????????IF?LINES(?T_ROWS?)?>?0.
*?????????READ?TABLE?T_ROWS?INTO?L_ROW?INDEX?1.
*????????ENDIF.
???? ENDCASE .
????ME ->REFRESH_ALV (?? ) .
?? ENDMETHOD .???????????????????? "ON_USER_COMMAND
?? METHOD?REFRESH_ALV .
???? DATA :?LO_COLS? TYPE? REF? TO?CL_SALV_COLUMNS_TABLE ,
??????????LV_STBL? TYPE?LVC_S_STBL .
????LO_COLS? =?O_SALV ->GET_COLUMNS (? ) .
????LO_COLS ->SET_OPTIMIZE (?ABAP_TRUE? ) .
????LV_STBL -ROW? =? 'X' .
????LV_STBL -COL? =? 'X' .
????O_SALV -> REFRESH (?S_STABLE? =?LV_STBL? ) .
?? ENDMETHOD .???????????????????? "REFRESH_alv
ENDCLASS .???????????????????? "lcl_main_alv?IMPLEMENTATION
TABLES :ANLC ,BSEG ,T001 ,BKPF ,ANLA .
*---定義結(jié)構(gòu)---For?Main?ALV?OutPut-------------------------------------*
TYPES :? BEGIN? OF?TY_ITAB ,
*??CHECK?TYPE?FLAG,
?????????BUKRS??? TYPE?ANLA -BUKRS ,? "公司代碼
?????????BUTXT??? TYPE?T001 -BUTXT ,? "公司代碼描述
?????????ANLKL??? TYPE?ANLA -ANLKL ,? "資產(chǎn)類別
?????????TXK50??? TYPE?ANKT -TXK50 ,? "資產(chǎn)類別描述
?????????ANLN1??? TYPE?ANLA -ANLN1 ,? "資產(chǎn)編號(hào)
?????????ANLN2??? TYPE?ANLA -ANLN2 ,? "資產(chǎn)編號(hào)
?????????TXT50??? TYPE?ANLA -TXT50 ,? "固定資產(chǎn)名稱
?????????AKTIV??? TYPE?ANLA -AKTIV ,? "啟用日期
?????????KANSW??? TYPE?ANLC -KANSW ,? "
?????????ANSWL??? TYPE?ANLC -KANSW ,? "
?????????YZ?????? TYPE?ANLC -KANSW ,? "賬面原值
?????????JZ?????? TYPE?ANLC -KANSW ,? "賬面凈值
?????????KNAFA??? TYPE?ANLC -KNAFA ,? "以前年度已提折舊
?????????NAFAG??? TYPE?ANLC -NAFAG ,? "本年度已提折舊
?????????NAFAZ1?? TYPE?ANLP -NAFAZ ,? "本年度已提折舊-1月
?????????NAFAZ2?? TYPE?ANLP -NAFAZ ,? "本年度已提折舊-2月
?????????NAFAZ3?? TYPE?ANLP -NAFAZ ,? "本年度已提折舊-3月
?????????NAFAZ4?? TYPE?ANLP -NAFAZ ,? "本年度已提折舊-4月
?????????NAFAZ5?? TYPE?ANLP -NAFAZ ,? "本年度已提折舊-5月
?????????NAFAZ6?? TYPE?ANLP -NAFAZ ,? "本年度已提折舊-6月
?????????NAFAZ7?? TYPE?ANLP -NAFAZ ,? "本年度已提折舊-7月
?????????NAFAZ8?? TYPE?ANLP -NAFAZ ,? "本年度已提折舊-8月
?????????NAFAZ9?? TYPE?ANLP -NAFAZ ,? "本年度已提折舊-9月
?????????NAFAZ10? TYPE?ANLP -NAFAZ ,? "本年度已提折舊-10月
?????????NAFAZ11? TYPE?ANLP -NAFAZ ,? "本年度已提折舊-11月
?????????NAFAZ12? TYPE?ANLP -NAFAZ ,? "本年度已提折舊-12月
??????? END??? OF?TY_ITAB .
DATA :?GT_ITAB? TYPE? STANDARD? TABLE? OF?TY_ITAB ,
??????GW_ITAB? TYPE?TY_ITAB .
FIELD-SYMBOLS?<ITAB>? TYPE?TY_ITAB .
*----------------------------------------------------------------------*
*???????CLASS?lcl_main_alv?DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS?LCL_MAIN_ALV? DEFINITION .
?? PUBLIC? SECTION .
???? METHODS :?GENERATE_ALV .
?? PRIVATE? SECTION .
???? DATA :?O_SALV? TYPE? REF? TO?CL_SALV_TABLE .
???? DATA :?O_SALV1? TYPE? REF? TO?CL_SALV_TABLE .
???? METHODS :
??????SET_PF_STATUS
???????? CHANGING
??????????CO_ALV? TYPE? REF? TO?CL_SALV_TABLE ,
??????SET_LAYOUT
???????? CHANGING
??????????CO_ALV? TYPE? REF? TO?CL_SALV_TABLE ,
??????SET_DISPLAY_SETTING
???????? CHANGING
??????????CO_ALV? TYPE? REF? TO?CL_SALV_TABLE ,
??????SET_DISPLAY_SETTING_SEC
???????? CHANGING
??????????CO_ALV? TYPE? REF? TO?CL_SALV_TABLE ,
??????SET_COLUMNS
???????? CHANGING
??????????CO_ALV? TYPE? REF? TO?CL_SALV_TABLE ,
??????REFRESH_ALV ,
??????ON_USER_COMMAND? FOR? EVENT?ADDED_FUNCTION? OF?CL_SALV_EVENTS
???????? IMPORTING?E_SALV_FUNCTION ,
??????HANDLE_DOUBLE_CLICK
???????????????????? FOR? EVENT?DOUBLE_CLICK? OF?CL_SALV_EVENTS_TABLE
???????? IMPORTING?ROW?COLUMN ,
??????HANDLE_LINK_CLICK
???????????? FOR? EVENT?LINK_CLICK? OF?CL_SALV_EVENTS_TABLE
???????? IMPORTING
????????????ROW?COLUMN .
ENDCLASS .???????????????????? "lcl_main_alv?DEFINITION
*---------------------------------------------------------------------*
*?選擇屏幕
*---------------------------------------------------------------------*
SELECTION-SCREEN : BEGIN? OF? BLOCK?B1? WITH? FRAME? TITLE? TEXT - 001 .
SELECT-OPTIONS :
??S_BUKRS? FOR?ANLC -BUKRS? NO -EXTENSION?OBLIGATORY ,? "公司代碼
??S_GJAHR? FOR?ANLC -GJAHR? NO?INTERVALS? NO -EXTENSION?OBLIGATORY? DEFAULT?SY -DATUM+0 ( 4 ) ,
??S_MONAT? FOR?BKPF -MONAT? NO?INTERVALS? NO -EXTENSION?OBLIGATORY ,
??S_ANLN1? FOR?ANLA -ANLN1 ,
??S_ANLKL? FOR?ANLA -ANLKL .
PARAMETERS :
??P_NOZERO? AS? CHECKBOX? DEFAULT? 'X' .
SELECTION-SCREEN? END? OF? BLOCK?B1 .
*&---------------------------------------------------------------------*
*&??????START-OF-SELECTION
*&---------------------------------------------------------------------*
START-OF-SELECTION .
?? PERFORM?GET_DATA .
?? DATA :?LO_MAIN_ALV? TYPE? REF? TO?LCL_MAIN_ALV .
?? CREATE?OBJECT?LO_MAIN_ALV .
??LO_MAIN_ALV ->GENERATE_ALV (? ) .
END-OF-SELECTION .
*&---------------------------------------------------------------------*
*&??????Form??GET_DATA
*&---------------------------------------------------------------------*
*???????text
*----------------------------------------------------------------------*
*??-->??p1????????text
*??<--??p2????????text
*----------------------------------------------------------------------*
FORM?GET_DATA? .
?? DATA :LT_ANKT? LIKE? TABLE? OF?ANKT? WITH? HEADER? LINE ,
???????LT_T001? LIKE? TABLE? OF?T001? WITH? HEADER? LINE ,
???????LT_ANLP? LIKE? TABLE? OF?ANLP? WITH? HEADER? LINE .
?? SELECT?ANLA ~BUKRS?ANLA ~ANLKL?ANLA ~ANLN1?ANLA ~ANLN2?ANLA ~TXT50?ANLA ~AKTIV
?????????ANLC ~KANSW?ANLC ~ANSWL?ANLC ~KNAFA?ANLC ~NAFAG
???? FROM?ANLA
????INNER? JOIN?ANLC? ON?ANLC ~BUKRS? =?ANLA ~BUKRS
???????????????????? AND?ANLC ~ANLN1? =?ANLA ~ANLN1
???????????????????? AND?ANLC ~ANLN2? =?ANLA ~ANLN2
???? INTO?CORRESPONDING? FIELDS? OF? TABLE?GT_ITAB
??? WHERE?ANLA ~BUKRS? IN?S_BUKRS
????? AND?ANLA ~ANLN1? IN?S_ANLN1
????? AND?ANLA ~ANLKL? IN?S_ANLKL
????? AND?ANLA ~XLOEV? =? ''
????? AND?ANLC ~GJAHR? =?S_GJAHR -LOW .
?? CHECK?GT_ITAB[]? IS? NOT? INITIAL .
?? SELECT?*? FROM?T001? INTO? TABLE?LT_T001? WHERE?BUKRS? IN?S_BUKRS .
?? SELECT?*? FROM?ANKT? INTO? TABLE?LT_ANKT
???? FOR? ALL?ENTRIES? IN?GT_ITAB
???? WHERE?ANLKL? =?GT_ITAB -ANLKL
?????? AND?SPRAS? =?SY -LANGU .
?? SELECT?*? FROM?ANLP
???? INTO?CORRESPONDING? FIELDS? OF? TABLE?LT_ANLP
???? FOR? ALL?ENTRIES? IN?GT_ITAB
???? WHERE?ANLP ~BUKRS? =?GT_ITAB -BUKRS
?????? AND?ANLP ~ANLN1? =?GT_ITAB -ANLN1
?????? AND?ANLP ~ANLN2? =?GT_ITAB -ANLN2
?????? AND?GJAHR? =?S_GJAHR -LOW
?????? AND?PERAF?<=?S_MONAT -LOW .
?? LOOP? AT?GT_ITAB? ASSIGNING?<ITAB> .
???? READ? TABLE?LT_T001? WITH? KEY?BUKRS? =?<ITAB> -BUKRS .
???? IF?SY -SUBRC? =? 0 .
??????<ITAB> -BUTXT? =?LT_T001 -BUTXT .
???? ENDIF .
???? READ? TABLE?LT_ANKT? WITH? KEY?ANLKL? =?<ITAB> -ANLKL .
???? IF?SY -SUBRC? =? 0 .
??????<ITAB> -TXK50? =?LT_ANKT -TXK50 .
???? ENDIF .
????<ITAB> -NAFAG? =? 0 .
????<ITAB> -KNAFA? =? 0? -?<ITAB> -KNAFA .
???? LOOP? AT?LT_ANLP? WHERE?BUKRS? =?<ITAB> -BUKRS
?????????????????????? AND?ANLN1? =?<ITAB> -ANLN1
?????????????????????? AND?ANLN2? =?<ITAB> -ANLN2 .
??????LT_ANLP -NAFAZ? =? 0? -?LT_ANLP -NAFAZ .
?????? CASE?LT_ANLP -PERAF .
???????? WHEN? 1 .
?????????? ADD?LT_ANLP -NAFAZ? TO?<ITAB> -NAFAZ1 .
???????? WHEN? 2 .
?????????? ADD?LT_ANLP -NAFAZ? TO?<ITAB> -NAFAZ2 .
???????? WHEN? 3 .
?????????? ADD?LT_ANLP -NAFAZ? TO?<ITAB> -NAFAZ3 .
???????? WHEN? 4 .
?????????? ADD?LT_ANLP -NAFAZ? TO?<ITAB> -NAFAZ4 .
???????? WHEN? 5 .
?????????? ADD?LT_ANLP -NAFAZ? TO?<ITAB> -NAFAZ5 .
???????? WHEN? 6 .
?????????? ADD?LT_ANLP -NAFAZ? TO?<ITAB> -NAFAZ6 .
???????? WHEN? 7 .
?????????? ADD?LT_ANLP -NAFAZ? TO?<ITAB> -NAFAZ7 .
???????? WHEN? 8 .
?????????? ADD?LT_ANLP -NAFAZ? TO?<ITAB> -NAFAZ8 .
???????? WHEN? 9 .
?????????? ADD?LT_ANLP -NAFAZ? TO?<ITAB> -NAFAZ9 .
???????? WHEN? 10 .
?????????? ADD?LT_ANLP -NAFAZ? TO?<ITAB> -NAFAZ10 .
???????? WHEN? 11 .
?????????? ADD?LT_ANLP -NAFAZ? TO?<ITAB> -NAFAZ11 .
???????? WHEN? 12 .
?????????? ADD?LT_ANLP -NAFAZ? TO?<ITAB> -NAFAZ12 .
?????? ENDCASE .
?????? ADD?LT_ANLP -NAFAZ? TO?<ITAB> -NAFAG .
???? ENDLOOP .
????<ITAB> -YZ? =?<ITAB> -KANSW?+?<ITAB> -ANSWL .
????<ITAB> -JZ? =?<ITAB> -YZ? -?<ITAB> -KNAFA? -?<ITAB> -NAFAG .
?? ENDLOOP .
*??LOOP?AT?GT_DATA.
**????IF?GT_DATA-GJAHR?NOT?IN?S_GJAHR?AND?GT_DATA-GJAHR?IS?NOT?INITIAL.
**??????DELETE?GT_DATA?INDEX?SY-TABIX.
**??????CONTINUE.
**????ENDIF.
**????IF?GT_DATA-PERAF?NOT?IN?S_MONAT?AND?GT_DATA-PERAF?IS?NOT?INITIAL.
**??????DELETE?GT_DATA?INDEX?SY-TABIX.
**??????CONTINUE.
**????ENDIF.
*
*????IF?GT_DATA-AKTIV+0(6)?>?L_AKTIV.
*??????DELETE?GT_DATA?INDEX?SY-TABIX.
*??????CONTINUE.
*????ENDIF.
*????IF?GT_DATA-GJAHR?IS?NOT?INITIAL?AND?GT_DATA-GJAHR?>?S_GJAHR-LOW.
*??????DELETE?GT_DATA?INDEX?SY-TABIX.
*??????CONTINUE.
*????ENDIF.
*????L_PERAF?=?S_MONAT-LOW??+?1.
*????IF?GT_DATA-GJAHR?IS?NOT?INITIAL?AND?GT_DATA-GJAHR?=?S_GJAHR-LOW.
**??????IF?S_MONAT-LOW?<?GT_DATA-PERAF?.
*??????IF?L_PERAF?<?GT_DATA-PERAF?.
*????????DELETE?GT_DATA?INDEX?SY-TABIX.
*????????CONTINUE.
*??????ENDIF.
*????ENDIF.
*??ENDLOOP.
*??IF?GT_DATA[]?IS?NOT?INITIAL.
*????SELECT?BUTXT?BUKRS
*??????INTO?CORRESPONDING?FIELDS?OF?TABLE?GT_T001
*??????FROM?T001
*???????FOR?ALL?ENTRIES?IN?GT_DATA
*?????WHERE?BUKRS?=?GT_DATA-BUKRS.
*
*????SELECT?ANLKL?TXK50
*??????INTO?CORRESPONDING?FIELDS?OF?TABLE?GT_ANKT
*??????FROM?ANKT
*???????FOR?ALL?ENTRIES?IN?GT_DATA
*?????WHERE?ANLKL?=?GT_DATA-ANLKL
*???????AND?SPRAS?=?'1'.
*
*????SELECT?LTEXT?KOSTL
*??????INTO?CORRESPONDING?FIELDS?OF?TABLE?GT_CSKT
*??????FROM?CSKT
*???????FOR?ALL?ENTRIES?IN?GT_DATA
*?????WHERE?(?KOSTL?=?GT_DATA-KOSTL?OR?KOSTL?=?GT_DATA-KOSTLV?)
*???????AND?SPRAS?=?'1'
*???????AND?KOKRS?=?'CNYD'
*???????AND?DATBI?>=?SY-DATUM.
*
*????SELECT?ORD4X?ORDNR?ORDTX
*??????INTO?CORRESPONDING?FIELDS?OF?TABLE?GT_T087T
*??????FROM?T087T
*???????FOR?ALL?ENTRIES?IN?GT_DATA
*?????WHERE?(?ORD4X?=?GT_DATA-ORD41?OR?ORD4X?=?GT_DATA-ORD42
*??????????OR?ORD4X?=?GT_DATA-ORD43?OR?ORD4X?=?GT_DATA-ORD44?)
*???????AND?SPRAS?=?'1'.
*
*????SELECT?GDLGRP?GDLGRP_TXT
*??????INTO?CORRESPONDING?FIELDS?OF?TABLE?GT_T087S
*??????FROM?T087S
*???????FOR?ALL?ENTRIES?IN?GT_DATA
*?????WHERE?SPRAS?=?'1'
*???????AND?GDLGRP?=?GT_DATA-GDLGRP.
*
*????SELECT?ANLUE?ANLUE_TXT
*??????INTO?CORRESPONDING?FIELDS?OF?TABLE?GT_T087V
*??????FROM?T087V
*???????FOR?ALL?ENTRIES?IN?GT_DATA
*?????WHERE?SPRAS?=?'1'
*???????AND?ANLUE?=?GT_DATA-ANLUE.
*
*????SELECT?T090NA~AFASL?T091P~AHPROZ
*??????INTO?CORRESPONDING?FIELDS?OF?TABLE?GT_T091P
*??????FROM?T091P?INNER?JOIN?T090NA?ON?T090NA~ANHWSL?=?T091P~ANHWSL.
*
*????SELECT?LIFNR?NAME1
*??????INTO?CORRESPONDING?FIELDS?OF?TABLE?GT_LFA1
*??????FROM?LFA1
*???????FOR?ALL?ENTRIES?IN?GT_DATA
*?????WHERE?LIFNR?=?GT_DATA-LIFNR.
*????SELECT?PRCTR?KTEXT
*??????INTO?CORRESPONDING?FIELDS?OF?TABLE?GT_CEPCT
*??????FROM?CEPCT
*???????FOR?ALL?ENTRIES?IN?GT_DATA
*?????WHERE?PRCTR?=?GT_DATA-PRCTR
*???????AND?SPRAS?=?'1'
*???????AND?KOKRS?=?'CNYD'.
*??ENDIF.
*??SORT?GT_DATA?BY?PRCTR?ANLN1?ASCENDING?PERAF?AFBNR?DESCENDING?.
*??I_DATA[]?=?GT_DATA[].
*??LOOP?AT?GT_DATA.
**????公司代碼描述
*??????READ?TABLE?GT_T001?WITH?KEY?BUKRS?=?GT_DATA-BUKRS.
*??????GW_ITAB-BUTXT?=?GT_T001.
**????資產(chǎn)類別描述
*??????READ?TABLE?GT_ANKT?WITH?KEY?ANLKL?=?GT_DATA-ANLKL.
*??????GW_ITAB-TXK50?=?GT_ANKT-TXK50.
**????使用部門描述
*??????READ?TABLE?GT_CSKT?WITH?KEY?KOSTL?=?GT_DATA-KOSTL.
*??????GW_ITAB-LTEXT?=?GT_CSKT-LTEXT.
*??????CLEAR?GT_CSKT.
**????負(fù)責(zé)部門描述
*??????READ?TABLE?GT_CSKT?WITH?KEY?KOSTL?=?GT_DATA-KOSTLV.
*??????GW_ITAB-LTEXTV?=?GT_CSKT-LTEXT.
**????資產(chǎn)狀態(tài)描述
*??????READ?TABLE?GT_T087T?WITH?KEY?ORD4X?=?GT_DATA-ORD41
*???????????????????????????????????ORDNR?=?'1'.
*??????GW_ITAB-ORDT1?=?GT_T087T-ORDTX.
*??????CLEAR?GT_T087T.
**????增加方式描述
*??????READ?TABLE?GT_T087T?WITH?KEY?ORD4X?=?GT_DATA-ORD42
*???????????????????????????????????ORDNR?=?'2'.
*??????GW_ITAB-ORDT2?=?GT_T087T-ORDTX.
*??????CLEAR?GT_T087T.
*??ENDLOOP.
ENDFORM .???????????????????? "?GET_DATA
*----------------------------------------------------------------------*
*???????CLASS?lcl_main_alv?IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS?LCL_MAIN_ALV? IMPLEMENTATION .
?? METHOD?GENERATE_ALV .
*
???? DATA :?LX_MSG? TYPE? REF? TO?CX_SALV_MSG .
???? TRY .
????????CL_SALV_TABLE =>FACTORY (
?????????? IMPORTING
????????????R_SALV_TABLE? =?O_SALV
?????????? CHANGING
????????????T_TABLE?????? =?GT_ITAB? ) .
?????? CATCH?CX_SALV_MSG? INTO?LX_MSG .
???? ENDTRY .
???? CALL? METHOD?SET_PF_STATUS
?????? CHANGING
????????CO_ALV? =?O_SALV .
???? CALL? METHOD?SET_LAYOUT
?????? CHANGING
????????CO_ALV? =?O_SALV .
???? CALL? METHOD?SET_DISPLAY_SETTING
?????? CHANGING
????????CO_ALV? =?O_SALV .
???? CALL? METHOD?SET_COLUMNS
?????? CHANGING
????????CO_ALV? =?O_SALV .
???? DATA :?LO_EVENTS? TYPE? REF? TO?CL_SALV_EVENTS_TABLE .
???? DATA :?LO_EVENTS1? TYPE? REF? TO?CL_SALV_EVENTS_TABLE .
????LO_EVENTS? =?O_SALV ->GET_EVENT (? ) .
???? SET? HANDLER?HANDLE_DOUBLE_CLICK? FOR?LO_EVENTS .
???? SET? HANDLER?ON_USER_COMMAND? FOR?LO_EVENTS .
???? DATA :LR_SELS? TYPE? REF? TO?CL_SALV_SELECTIONS .
????LR_SELS? =?O_SALV ->GET_SELECTIONS (? ) .
????LR_SELS ->SET_SELECTION_MODE (?IF_SALV_C_SELECTION_MODE =>ROW_COLUMN? ) .
*???顯示?ALV
????O_SALV ->DISPLAY (? ) .
?? ENDMETHOD .???????????????????? "generate_alv
*設(shè)置工具欄
?? METHOD?SET_PF_STATUS .
???? DATA :?LO_FUNCTIONS? TYPE? REF? TO?CL_SALV_FUNCTIONS .
????CO_ALV ->SET_SCREEN_STATUS (
??????PFSTATUS?????? =?? 'ZSALV_STATUS'
?????? REPORT???????? =??SY -REPID
??????SET_FUNCTIONS? =?CO_ALV ->C_FUNCTIONS_ALL? ) .
????LO_FUNCTIONS? =?CO_ALV ->GET_FUNCTIONS (? ) .
????LO_FUNCTIONS ->SET_ALL (?ABAP_TRUE? ) .
*????TRY.
*????LO_FUNCTIONS->SET_FUNCTION(?NAME?=?'ZUNDO'?BOOLEAN?=?''?).
*??????CATCH?CX_SALV_WRONG_CALL.?????????????????????????"#EC?NO_HANDLER
*??????CATCH?CX_SALV_NOT_FOUND.??????????????????????????"#EC?NO_HANDLER
?? ENDMETHOD .???????????????????? "set_pf_status
*?Settings?for?Layout
?? METHOD?SET_LAYOUT .
*
???? DATA :?LO_LAYOUT?? TYPE? REF? TO?CL_SALV_LAYOUT ,
??????????LF_VARIANT? TYPE?SLIS_VARI ,
??????????LS_LAYOUT?? TYPE?SALV_S_LAYOUT_INFO ,
??????????LS_KEY????? TYPE?SALV_S_LAYOUT_KEY .
*
????LO_LAYOUT? =?CO_ALV ->GET_LAYOUT (? ) .
????LS_KEY - REPORT? =?SY -REPID .
????LS_LAYOUT? =?CL_SALV_LAYOUT_SERVICE =>GET_DEFAULT_LAYOUT (
????????S_KEY???? =?LS_KEY
????????RESTRICT? =?IF_SALV_C_LAYOUT =>RESTRICT_NONE? ) .
????LF_VARIANT? =?LS_LAYOUT -LAYOUT .
????LO_LAYOUT ->SET_KEY (?LS_KEY? ) .
????LO_LAYOUT ->SET_DEFAULT (?ABAP_TRUE? ) .
????LO_LAYOUT ->SET_SAVE_RESTRICTION (?IF_SALV_C_LAYOUT =>RESTRICT_NONE? ) .
????LO_LAYOUT ->SET_INITIAL_LAYOUT (?LF_VARIANT? ) .
?? ENDMETHOD .???????????????????? "set_layout
?? METHOD?SET_DISPLAY_SETTING .
*
???? DATA :?LO_DISPLAY? TYPE? REF? TO?CL_SALV_DISPLAY_SETTINGS .
????LO_DISPLAY? =?O_SALV ->GET_DISPLAY_SETTINGS (? ) .
????LO_DISPLAY ->SET_STRIPED_PATTERN (? 'X'? ) .
????LO_DISPLAY ->SET_FIT_COLUMN_TO_TABLE_SIZE (? 'X'? ) .
*????lo_display->set_list_header(?'ALV?Test?for?Display?Settings'?).
*
?? ENDMETHOD .???????????????????? "SET_DISPLAY_SETTING
?? METHOD?SET_DISPLAY_SETTING_SEC .
*
???? DATA :?LO_DISPLAY? TYPE? REF? TO?CL_SALV_DISPLAY_SETTINGS .
????LO_DISPLAY? =?O_SALV1 ->GET_DISPLAY_SETTINGS (? ) .
????LO_DISPLAY ->SET_STRIPED_PATTERN (? 'X'? ) .
????LO_DISPLAY ->SET_FIT_COLUMN_TO_TABLE_SIZE (? 'X'? ) .
*????lo_display->set_list_header(?'ALV?Test?for?Display?Settings'?).
*
?? ENDMETHOD .
*??設(shè)置列屬性
?? METHOD?SET_COLUMNS .
*
???? DATA :?LO_COLS??? TYPE? REF? TO?CL_SALV_COLUMNS_TABLE ,
??????????LO_COLUMN? TYPE? REF? TO?CL_SALV_COLUMN_TABLE .
???? DATA :?LV_SCRTEXT_L? TYPE?SCRTEXT_L .
*????DATA:?LV_SCRTEXT_S?TYPE?SCRTEXT_S.
????LO_COLS? =?CO_ALV ->GET_COLUMNS (? ) .
????LO_COLS ->SET_OPTIMIZE (?ABAP_TRUE? ) .
????LO_COLS ->SET_KEY_FIXATION (?ABAP_TRUE? ) .
???? TRY .
*????????LO_COLS->SET_CELL_TYPE_COLUMN(?'IT_CELL_TYPES'?).
*????????LO_COLS->SET_COLOR_COLUMN(?'IT_CELL_COLOR'?).
?????? CATCH?CX_SALV_DATA_ERROR .????????????????????????? "#EC?NO_HANDLER
???? ENDTRY .
???? TRY .
*????????LO_COLUMN??=?LO_COLS->GET_COLUMN(?'PSPHI'?).
*????????LO_COLUMN->SET_VISIBLE(?ABAP_FALSE?).
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'BUKRS'? ) .
????????LV_SCRTEXT_L? =? '公司代碼' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'BUTXT'? ) .
????????LV_SCRTEXT_L? =? '公司代碼描述' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'ANLKL'? ) .
????????LV_SCRTEXT_L? =? '資產(chǎn)類別' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'TXK50?'? ) .
????????LV_SCRTEXT_L? =? '資產(chǎn)類別描述' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'ANLN1'? ) .
????????LV_SCRTEXT_L? =? '資產(chǎn)卡片號(hào)' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'TXT50'? ) .
????????LV_SCRTEXT_L? =? '資產(chǎn)名稱' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'AKTIV'? ) .
????????LV_SCRTEXT_L? =? '購(gòu)入時(shí)間' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'YZ'? ) .
????????LV_SCRTEXT_L? =? '賬面原值' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'JZ'? ) .
????????LV_SCRTEXT_L? =? '賬面凈值' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'KNAFA'? ) .
????????LV_SCRTEXT_L? =? '以前年度已提折舊' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'NAFAG'? ) .
????????LV_SCRTEXT_L? =? '本年度已提折舊' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'NAFAZ1'? ) .
????????LV_SCRTEXT_L? =? '本年折舊-1月' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'NAFAZ2'? ) .
????????LV_SCRTEXT_L? =? '本年折舊-2月' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'NAFAZ3'? ) .
????????LV_SCRTEXT_L? =? '本年折舊-3月' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'NAFAZ4'? ) .
????????LV_SCRTEXT_L? =? '本年折舊-4月' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'NAFAZ5'? ) .
????????LV_SCRTEXT_L? =? '本年折舊-5月' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'NAFAZ6'? ) .
????????LV_SCRTEXT_L? =? '本年折舊-6月' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'NAFAZ7'? ) .
????????LV_SCRTEXT_L? =? '本年折舊-7月' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'NAFAZ8'? ) .
????????LV_SCRTEXT_L? =? '本年折舊-8月' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'NAFAZ9'? ) .
????????LV_SCRTEXT_L? =? '本年折舊-9月' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'NAFAZ10'? ) .
????????LV_SCRTEXT_L? =? '本年折舊-10月' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'NAFAZ11'? ) .
????????LV_SCRTEXT_L? =? '本年折舊-11月' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'NAFAZ12'? ) .
????????LV_SCRTEXT_L? =? '本年折舊-12月' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
?????? CATCH?CX_SALV_NOT_FOUND .?????????????????????????? "#EC?NO_HANDLER
???? ENDTRY .
*
*小計(jì)及排序設(shè)置
???? DATA :?LR_AGGREGATIONS? TYPE? REF? TO?CL_SALV_AGGREGATIONS .
????LR_AGGREGATIONS? =?CO_ALV ->GET_AGGREGATIONS (? ) .
????LR_AGGREGATIONS -> CLEAR (? ) .
???? DATA :?LR_GROUPS? TYPE? REF? TO?CL_SALV_SORTS? .
????LR_GROUPS? =?CO_ALV ->GET_SORTS (? )? .
????LR_GROUPS -> CLEAR (? ) .
???? TRY .
????????LR_AGGREGATIONS ->ADD_AGGREGATION (?COLUMNNAME? =? 'YUANZ'? ) .
????????LR_AGGREGATIONS ->ADD_AGGREGATION (?COLUMNNAME? =? 'YUEZJ'? ) .
????????LR_AGGREGATIONS ->ADD_AGGREGATION (?COLUMNNAME? =? 'SNLJZ'? ) .
????????LR_AGGREGATIONS ->ADD_AGGREGATION (?COLUMNNAME? =? 'BLJZJ'? ) .
????????LR_AGGREGATIONS ->ADD_AGGREGATION (?COLUMNNAME? =? 'LJZJT'? ) .
????????LR_AGGREGATIONS ->ADD_AGGREGATION (?COLUMNNAME? =? 'JINGE'? ) .
*????????LR_GROUPS->ADD_SORT(?COLUMNNAME?=?'RACCT'
*?????????????????????????????POSITION???=?1
*?????????????????????????????SUBTOTAL???=?ABAP_TRUE
*?????????????????????????????SEQUENCE???=?IF_SALV_C_SORT=>SORT_UP?).
?????? CATCH?CX_SALV_NOT_FOUND?CX_SALV_DATA_ERROR?CX_SALV_EXISTING .
???? ENDTRY .
?? ENDMETHOD .???????????????????? "SET_COLUMNS
?? METHOD?HANDLE_DOUBLE_CLICK .
???? CASE?COLUMN .
?????? WHEN? OTHERS .
???????? READ? TABLE?GT_ITAB? INTO?GW_ITAB? INDEX?ROW .
*????????IF?SY-SUBRC?=?0
*對(duì)跳轉(zhuǎn)屏幕數(shù)據(jù)進(jìn)行整理
???? ENDCASE .
????ME ->REFRESH_ALV (?? ) .
?? ENDMETHOD .???????????????????? "HANDLE_DOUBLE_CLICK
?? METHOD?HANDLE_LINK_CLICK .
???? CASE?COLUMN .
?????? WHEN? 'CHECK' .
???????? READ? TABLE?GT_ITAB? ASSIGNING?<ITAB>? INDEX?ROW .
???????? IF?SY -SUBRC? =? 0 .
*??????????IF?<ITAB>-CHECK?=?'X'.
*????????????<ITAB>-CHECK?=?''.
**????????????MODIFY?GT_ITAB?FROM?<ITAB>?TRANSPORTING?CHECK?WHERE?MBLNR?=?<ITAB>-MBLNR.
*??????????ELSE.
*????????????<ITAB>-CHECK?=?'X'.
**????????????MODIFY?GT_ITAB?FROM?<ITAB>?TRANSPORTING?CHECK?WHERE?MBLNR?=?<ITAB>-MBLNR.
*??????????ENDIF.
???????? ENDIF .
?????? WHEN? 'BELNR' .
*????????READ?TABLE?GT_SEC?INTO?GS_SEC?INDEX?ROW.
*????????IF?SY-SUBRC?=?0.
*??????????SET?PARAMETER?ID?'BUK'?FIELD?GS_SEC-BUKRS.
*??????????SET?PARAMETER?ID?'GJR'?FIELD?GS_SEC-GJAHR.
*??????????SET?PARAMETER?ID?'BLN'?FIELD?GS_SEC-BELNR.
*??????????CALL?TRANSACTION?'FB03'?AND?SKIP?FIRST?SCREEN.
*????????ENDIF.
???? ENDCASE .
?? ENDMETHOD .???????????????????? "HANDLE_link_click
?? METHOD?ON_USER_COMMAND .
???? DATA :?O_SELS? TYPE? REF? TO?CL_SALV_SELECTIONS ,
??????????T_ROWS? TYPE?SALV_T_ROW ,
??????????L_ROW?? TYPE? LINE? OF?SALV_T_ROW .
???? DATA :?LT_DATA? TYPE? STANDARD? TABLE? OF?TY_ITAB .
???? DATA :?LS_DATA? TYPE?TY_ITAB .
???? DATA?L_LINES? TYPE? C?LENGTH? 3 .
???? DATA?L_ITEM? TYPE? C?LENGTH? 3 .
???? CASE?E_SALV_FUNCTION .
?????? WHEN? 'SALL' .
*????????GW_ITAB-CHECK?=?'X'.
*????????MODIFY?GT_ITAB?FROM?GW_ITAB?TRANSPORTING?CHECK?WHERE?CHECK?=?''.
?????? WHEN? 'DSAL' .
*????????GW_ITAB-CHECK?=?''.
*????????MODIFY?GT_ITAB?FROM?GW_ITAB?TRANSPORTING?CHECK?WHERE?CHECK?=?'X'.
*??????WHEN?'PRINT'.
*????????PERFORM?DATA_EDIT.
*??????WHEN?'SALL'.
*????????O_SELS?=?O_ALV->GET_SELECTIONS(?).
*????????T_ROWS?=?O_SELS->GET_SELECTED_ROWS(?).
*????????IF?LINES(?T_ROWS?)?>?0.
*?????????READ?TABLE?T_ROWS?INTO?L_ROW?INDEX?1.
*????????ENDIF.
???? ENDCASE .
????ME ->REFRESH_ALV (?? ) .
?? ENDMETHOD .???????????????????? "ON_USER_COMMAND
?? METHOD?REFRESH_ALV .
???? DATA :?LO_COLS? TYPE? REF? TO?CL_SALV_COLUMNS_TABLE ,
??????????LV_STBL? TYPE?LVC_S_STBL .
????LO_COLS? =?O_SALV ->GET_COLUMNS (? ) .
????LO_COLS ->SET_OPTIMIZE (?ABAP_TRUE? ) .
????LV_STBL -ROW? =? 'X' .
????LV_STBL -COL? =? 'X' .
????O_SALV -> REFRESH (?S_STABLE? =?LV_STBL? ) .
?? ENDMETHOD .???????????????????? "REFRESH_alv
ENDCLASS .???????????????????? "lcl_main_alv?IMPLEMENTATION
總結(jié)
- 上一篇: 浅谈MES与SAP PP模块的集成应用
- 下一篇: 浅谈ATP检查中的“确认可用部分数量”(