日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ABAP实现本地化的资产负债表和损益表

發(fā)布時間:2025/3/20 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ABAP实现本地化的资产负债表和损益表 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.設計思路:

SAP沒有提供標準的符合中國標準的資產(chǎn)負債表和損益表,需要我們在系統(tǒng)中自定義開發(fā),我們在配置報表版本時都指定了

一個項目的編號,一個版本下面都有期其統(tǒng)馭的科目范圍,我們可以根據(jù)這個項目編號找到相應的科目范圍,然后根據(jù)科目范圍

獲取科目借貸匯總的值。

SAP中資產(chǎn)負債表的配置圖示:

我們傳統(tǒng)的資產(chǎn)負債表如下格式: 我們可以在程序中用項目編號找到其下面的科目范圍,然后取科目匯總值,因為資產(chǎn)負債表是固定的,所以我們要 建立一個CBO表來存放各個具體的項目和在SAP中對應的項目編號。 最后要強調的是在資產(chǎn)負債表中未分配利潤的計算: 未分配利潤的期末余額=年初結轉額(留存收益的上年余額)+今年截至到本月的盈利額(利潤表中有體現(xiàn)) 利潤表的思路和資產(chǎn)負債表是一樣的。 具體的代碼實現(xiàn): *&———————————————————————* *&Company Code:N207 *& module:FI *& create by:rrzhang *& create date:2011.12.28 *&———————————————————————* *& title:資產(chǎn)負債表,利潤表 *& Description:資產(chǎn)負債表,利潤表報表呈現(xiàn) *&———————————————————————* *& Change History *———————————————————————-* *C.R No ? ?|Date|Developer|Description *———————————————————————-* * ? ? ? ? 2012.01.11|ccyu *———————————————————————-* REPORT ?zfir00026. INCLUDE zfir00026_top. INCLUDE zfir00026_cls. INCLUDE zfir00026_f01. INCLUDE zfir00026_o01. INCLUDE zfir00026_i01. INCLUDE <icon>. INITIALIZATION. p_y = sy-datum+0(4). p_m = sy-datum+4(2). AT SELECTION-SCREEN OUTPUT. PERFORM setdis USING p_rpv. IF c IS INITIAL. PERFORM setlist. gv_name = ‘愛思開實業(yè)(上海)商貿(mào)有限公司合并財務報表版本’. c = ‘X’. gv_rp = ‘資產(chǎn)負債表’. ELSE. PERFORM setpcg USING p_rpv. CASE p_rpv. WHEN ‘2070′. gv_name = ‘愛思開實業(yè)(上海)商貿(mào)有限公司合并財務報表版本’. WHEN ‘2071′. gv_name = ‘愛思開實業(yè)(上海)商貿(mào)有限公總部財務報表版本’. WHEN ‘2072′. gv_name = ‘愛思開實業(yè)(上海)商貿(mào)有限公司直營店財務報表版本’. WHEN ‘2073′. gv_name = ”. ENDCASE. IF p_rp = ‘BS’. gv_rp = ‘資產(chǎn)負債表’. ELSE. gv_rp = ‘利潤表’. ENDIF. ENDIF. START-OF-SELECTION. PERFORM synchrodata. PERFORM get_data1. *&———————————————————————* *& ?Include ? ? ? ? ? ZFIR00026_TOP *&———————————————————————* *Data definition TYPE-POOLS vrm. TABLES:faglflexa. “同步數(shù)據(jù)用的憑證抬頭表 DATA:BEGIN OF gt_bkpfsyn OCCURS 0, gjahr LIKE bkpf-gjahr, bukrs LIKE bkpf-bukrs, belnr LIKE bkpf-belnr, END OF gt_bkpfsyn. DATA ly(4) TYPE n. “同步數(shù)據(jù)用的憑證行項目表(bseg) DATA:BEGIN OF gt_bsegsyn OCCURS 0, gjahr LIKE bseg-gjahr, bukrs LIKE bseg-bukrs, belnr LIKE bseg-belnr, prctr LIKE bseg-prctr, pprct LIKE bseg-pprct, buzei LIKE bseg-buzei, END OF gt_bsegsyn. DATA:BEGIN OF gt_fagasyn OCCURS 0. INCLUDE STRUCTURE faglflexa. DATA:END OF gt_fagasyn. TYPES: ch(3) TYPE c, cf(4) TYPE c, cgcp(12) TYPE c, ok_code LIKE sy-ucomm. DATA:c,d, gv_bs TYPE ukurs_curr VALUE 1,”倍數(shù) gv_iden(2). “要顯示的資產(chǎn)負債表 DATA:BEGIN OF gt_alv_bs0 OCCURS 0, lct1 TYPE int1, item1 TYPE zitem, yamt1 TYPE hslvt12, ysamt1 TYPE hslvt12, lct2 TYPE int1, item2 TYPE zitem, yamt2 TYPE hslvt12, ysamt2 TYPE hslvt12, waers LIKE t001-waers, END OF ?gt_alv_bs0. DATA:BEGIN OF gt_bs OCCURS 0, ukurs TYPE ukurs_curr, gdatu TYPE gdatu_inv, END OF gt_bs. DATA:gv_mf(5).”The month field *The report version account information. “要顯示的利潤表 DATA:BEGIN OF gt_alv_is0 OCCURS 0, lct TYPE int1, item TYPE zitem, yamt LIKE faglflext-hslvt,”本年累計數(shù) mamt LIKE faglflext-hslvt,”本月累計數(shù) waers LIKE t001-waers, END OF gt_alv_is0. “下載數(shù)據(jù)的內表 DATA:BEGIN OF gt_alv_is01 OCCURS 0, lct TYPE int1, item TYPE zitem, yamt LIKE faglflext-hslvt,”本年累計數(shù) mamt LIKE faglflext-hslvt,”本月累計數(shù) END OF gt_alv_is01. *利潤表下鉆數(shù)據(jù)內表 * –>2012.01.16 CCYU START DATA:BEGIN OF gt_skat OCCURS 0, saknr LIKE skat-saknr, txt50 LIKE skat-txt50, END OF gt_skat. * <–2012.01.16 CCYU END. DATA:BEGIN OF gt_alv_is_dp1 ?OCCURS 0, racct LIKE faglflexa-racct, * –>2012.01.16 CCYU START txt50 LIKE skat-txt50, * <–2012.01.16 CCYU END. hsl LIKE faglflexa-hsl, END OF gt_alv_is_dp1. *利潤表下鉆數(shù)據(jù)內表 DATA:BEGIN OF gt_alv_bs_dp1 ?OCCURS 0, racct LIKE faglflexa-racct, * –>2012.01.16 CCYU START txt50 LIKE skat-txt50, * <–2012.01.16 CCYU END. hsl LIKE faglflexa-hsl, END OF gt_alv_bs_dp1. DATA:BEGIN OF gt_alv_bs_dp2 ?OCCURS 0, racct LIKE faglflexa-racct, * –>2012.01.16 CCYU START txt50 LIKE skat-txt50, * <–2012.01.16 CCYU END. hsl LIKE faglflexa-hsl, END OF gt_alv_bs_dp2. TYPES:BEGIN OF gs_alv_bs_dp_obj , racct LIKE faglflexa-racct, * –>2012.01.16 CCYU START txt50 LIKE skat-txt50, * <–2012.01.16 CCYU END. hsl LIKE faglflexa-hsl, END OF gs_alv_bs_dp_obj. DATA:gs_alv_bs_dp_obj1 TYPE gs_alv_bs_dp_obj. TYPES:gt_alv_bs_dp TYPE STANDARD TABLE OF gs_alv_bs_dp_obj. *利潤表下鉆臨時數(shù)據(jù)內表 DATA:BEGIN OF gt_alv_is_dp2 OCCURS 0, racct LIKE faglflexa-racct, * –>2012.01.16 CCYU START txt50 LIKE skat-txt50, * <–2012.01.16 CCYU END. hsl LIKE faglflexa-hsl, END OF gt_alv_is_dp2. DATA:BEGIN OF gt_fagl_011zc OCCURS 0, versn LIKE fagl_011zc-versn, ergsl ?LIKE fagl_011zc-ergsl, txt45 LIKE fagl_011qt-txt45, vonkt LIKE fagl_011zc-vonkt, biskt LIKE fagl_011zc-biskt, END OF gt_fagl_011zc. DATA:BEGIN OF gt_fagl_011qt OCCURS 0, ergsl ?LIKE fagl_011qt-ergsl, txt45 LIKE fagl_011qt-txt45, END OF gt_fagl_011qt. DATA:BEGIN OF gt_mamt_is OCCURS 0, amt LIKE faglflext-hslvt, END OF gt_mamt_is. RANGES gr_act FOR faglflext-racct. DATA:BEGIN OF gt_monv OCCURS 0, month(2) TYPE n, value LIKE faglflext-hslvt, END OF gt_monv. DATA:BEGIN OF gs_hsl, hsl01 LIKE faglflext-hslvt, hsl02 LIKE faglflext-hslvt, hsl03 LIKE faglflext-hslvt, hsl04 LIKE faglflext-hslvt, hsl05 LIKE faglflext-hslvt, hsl06 LIKE faglflext-hslvt, hsl07 LIKE faglflext-hslvt, hsl08 LIKE faglflext-hslvt, hsl09 LIKE faglflext-hslvt, hsl10 LIKE faglflext-hslvt, hsl11 LIKE faglflext-hslvt, hsl12 LIKE faglflext-hslvt, END OF gs_hsl. DATA:BEGIN OF gs_hsl1, hsl01 LIKE faglflext-hslvt, hsl02 LIKE faglflext-hslvt, hsl03 LIKE faglflext-hslvt, hsl04 LIKE faglflext-hslvt, hsl05 LIKE faglflext-hslvt, hsl06 LIKE faglflext-hslvt, hsl07 LIKE faglflext-hslvt, hsl08 LIKE faglflext-hslvt, hsl09 LIKE faglflext-hslvt, hsl10 LIKE faglflext-hslvt, hsl11 LIKE faglflext-hslvt, hsl12 LIKE faglflext-hslvt, hslvt LIKE faglflext-hslvt, END OF gs_hsl1. DATA:gs_alv_is TYPE REF TO cl_gui_alv_grid,”the alv object for is report gs_alv_bs TYPE REF TO cl_gui_alv_grid,”the alv object for bs report gs_alv_is_dp1 TYPE REF TO cl_gui_alv_grid,”the alv object for bs report gs_alv_bs_dp1 TYPE REF TO cl_gui_alv_grid,”the alv object for bs report gs_con TYPE REF TO cl_gui_custom_container,”the contianer object gs_con1 TYPE REF TO cl_gui_custom_container,”the contianer object gs_layout ? TYPE lvc_s_layo,”set the layout of the alv gt_fieldcat TYPE lvc_t_fcat,”the field catelog table gs_fieldcat TYPE lvc_s_fcat,”the field catelog work area g_toolbar ? TYPE ui_functions,”the toolbar of the alv g_toolbar1 ? TYPE ui_functions,”the toolbar of the alv gt_sort ? ? TYPE lvc_t_sort,”control the sort of the alv gs_sort ? ? TYPE lvc_s_sort.”the work area of the gt_sort DATA:gs_dyndoc_id TYPE REF TO cl_dd_document , gs_dyndoc_id1 TYPE REF TO cl_dd_document , gs_splitter TYPE REF TO cl_gui_splitter_container , gs_parent_html TYPE REF TO cl_gui_container , gs_parent_grid TYPE REF TO cl_gui_container , gs_splitter1 TYPE REF TO cl_gui_splitter_container , gs_parent_html1 TYPE REF TO cl_gui_container , gs_parent_grid1 TYPE REF TO cl_gui_container , gs_html_cntrl TYPE REF TO cl_gui_html_viewer . *SCREEN DEFINE DATA ?ok_code. * –>2012.01.17 CCYU START DATA:BEGIN OF gt_head1 ?OCCURS 0, t1(6), t2(20), t3(20), t4(20), t5(6), t6(20), t7(20), t8(20), END OF gt_head1. DATA:BEGIN OF gt_head2 ?OCCURS 0, t1(6), t2(20), t3(20), t4(20), END OF gt_head2. DATA:BEGIN OF gt_alv_bs01 OCCURS 0, lct1 TYPE int1, item1 TYPE zitem, yamt1 TYPE hslvt12, ysamt1 TYPE hslvt12, lct2 TYPE int1, item2 TYPE zitem, yamt2 TYPE hslvt12, ysamt2 TYPE hslvt12, END OF ?gt_alv_bs01. * <–2012.01.17 CCYU END. SELECTION-SCREEN BEGIN OF BLOCK blk WITH FRAME TITLE text-001. “公司代碼 SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN POSITION 1. SELECTION-SCREEN COMMENT (79) text-002. SELECTION-SCREEN END OF LINE. “Currency SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN POSITION 1. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? “從位置1開始輸出 SELECTION-SCREEN COMMENT (7) text-003 FOR FIELD p_curr. SELECTION-SCREEN POSITION 15. PARAMETERS p_curr TYPE ch AS LISTBOX ?VISIBLE LENGTH 12 ?OBLIGATORY DEFAULT ‘CNY’ . SELECTION-SCREEN END OF LINE. “report version SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN POSITION 1. SELECTION-SCREEN COMMENT (9) text-004 FOR FIELD p_rpv. SELECTION-SCREEN POSITION 15. PARAMETERS p_rpv TYPE cf AS LISTBOX VISIBLE LENGTH 12 USER-COMMAND dp OBLIGATORY DEFAULT ‘2070′. SELECTION-SCREEN POSITION 28. SELECTION-SCREEN COMMENT (60) gv_name. SELECTION-SCREEN END OF LINE. “profit center group SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN POSITION 1. SELECTION-SCREEN COMMENT (12) text-005 FOR FIELD p_pcg. SELECTION-SCREEN POSITION 15. PARAMETERS p_pcg TYPE cgcp AS LISTBOX VISIBLE LENGTH 12 USER-COMMAND dp1 OBLIGATORY. SELECTION-SCREEN END OF LINE. “profit center SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN POSITION 1. SELECTION-SCREEN COMMENT (12) text-006 FOR FIELD p_pc. SELECTION-SCREEN POSITION 15. PARAMETERS p_pc TYPE cgcp AS LISTBOX VISIBLE LENGTH 12 MODIF ID pc. SELECTION-SCREEN END OF LINE. “REPROT SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN POSITION 1. SELECTION-SCREEN COMMENT (12) text-007 FOR FIELD p_rp. SELECTION-SCREEN POSITION 15. PARAMETERS p_rp TYPE cgcp AS LISTBOX VISIBLE LENGTH 12 USER-COMMAND rp OBLIGATORY DEFAULT ‘BS’. SELECTION-SCREEN COMMENT (12) gv_rp. SELECTION-SCREEN END OF LINE. “YEAR SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN POSITION 1. SELECTION-SCREEN COMMENT (12) text-008 FOR FIELD p_y. SELECTION-SCREEN POSITION 15. PARAMETERS p_y(4) TYPE n OBLIGATORY. SELECTION-SCREEN END OF LINE. “MONTH SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN POSITION 1. SELECTION-SCREEN COMMENT (12) text-009 FOR FIELD p_m. SELECTION-SCREEN POSITION 15. * PARAMETERS P_M(2) TYPE N OBLIGATORY. * –>2012.01.11 ccyu START PARAMETERS p_m(3) TYPE n AS LISTBOX ?VISIBLE LENGTH 4 OBLIGATORY. * <–2012.01.11 ccyu END. SELECTION-SCREEN END OF LINE. SELECTION-SCREEN END OF BLOCK blk. *&———————————————————————* *&———————————————————————* *& ? ? ? Class LCL_APP_COMPT *&———————————————————————* * ? ? ? ?the event handler class for alv *———————————————————————-* CLASS LCL_APP_COMPT DEFINITION. PUBLIC SECTION . *the function handle_toolbar which handle the toolbar event of the alv METHODS : HANDLE_TOOLBAR FOR EVENT TOOLBAR OF CL_GUI_ALV_GRID IMPORTING E_OBJECT E_INTERACTIVE . *the function handle_user_command which handle the user_command *event of the alv METHODS: HANDLE_USER_COMMAND FOR EVENT USER_COMMAND OF CL_GUI_ALV_GRID IMPORTING E_UCOMM . *the function handle_topofpage which handle the top of page METHODS:HANDLE_TOPOFPAGE FOR EVENT TOP_OF_PAGE OF CL_GUI_ALV_GRID IMPORTING E_DYNDOC_ID . *handle the hotspot_click事件 METHODS:HANDLE_HOTSPOT_CLICK FOR EVENT HOTSPOT_CLICK OF CL_GUI_ALV_GRID IMPORTING E_ROW_ID E_COLUMN_ID ES_ROW_NO. ENDCLASS. ? ? ? ? ? ? ? “LCL_APP_COMPT *& ?Include ? ? ? ? ? ZOOALV_CLS ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? * *&———————————————————————* *&———————————————————————* *& ? ? ? Class (Implementation) ?lcl_app_compt *&———————————————————————* * ? ? ? ?implementation:for alv *———————————————————————-* CLASS LCL_APP_COMPT IMPLEMENTATION. METHOD : HANDLE_TOOLBAR . PERFORM MODIFY_TOOLBAR USING E_OBJECT ” . ENDMETHOD . ? ? ? ? ? ? ? ? ? ?”: METHOD: HANDLE_USER_COMMAND . PERFORM FM_USER_COMMAND USING E_UCOMM . ENDMETHOD . ? ? ? ? ? ? ? ? ? ?”handle_user_command *TOP OF PAGE METHOD: HANDLE_TOPOFPAGE . PERFORM FM_ADD_TOPOFPAGE USING E_DYNDOC_ID . ENDMETHOD . ? ? ? ? ? ? ? ? ? ?”handle_topofpage METHOD:HANDLE_HOTSPOT_CLICK. PERFORM DRILLDOWNIS1 USING E_ROW_ID E_COLUMN_ID ES_ROW_NO. ENDMETHOD. ? ? ? ? ? ? ? ? ? ?”HANDLE_HOTSPOT_CLICK ENDCLASS. ? ? ? ? ? ? ? “l(fā)cl_app_compt *&———————————————————————* *& ?Include ? ? ? ? ? ZFIR00026_F01 *&———————————————————————* *&———————————————————————* *& ? ? ?Form ?SETLIST *&———————————————————————* * ? ? ? text *———————————————————————-* * ?–> ?p1 ? ? ? ?text * ?<– ?p2 ? ? ? ?text *———————————————————————-* FORM setlist . DATA: itab TYPE STANDARD TABLE OF vrm_value, line TYPE vrm_value. CLEAR itab[]. line-key = ‘CNY’. line-text = ‘CNY’. APPEND line TO itab. line-key = ‘KRW’. line-text = ‘KRW’. APPEND line TO itab. CALL FUNCTION ‘VRM_SET_VALUES’ EXPORTING id ? ? = ‘P_CURR’ values = itab[]. CLEAR itab[]. CLEAR line. line-key = ‘2070′. line-text = ‘2070′. APPEND line TO itab. line-key = ‘2071′. line-text = ‘2071′. APPEND line TO itab. line-key = ‘2072′. line-text = ‘2072′. APPEND line TO itab. line-key = ‘2073′. line-text = ‘2073′. APPEND line TO itab. CALL FUNCTION ‘VRM_SET_VALUES’ EXPORTING id ? ? = ‘P_RPV’ values = itab[]. IF p_pcg IS INITIAL. CLEAR itab[]. CLEAR line. line-key = ‘N207′. line-text = ‘N207′. APPEND line TO itab. CALL FUNCTION ‘VRM_SET_VALUES’ EXPORTING id ? ? = ‘P_PCG’ values = itab[]. ENDIF. CLEAR itab[]. CLEAR line. line-key = ‘BS’. line-text = ‘BS’. APPEND line TO itab. line-key = ‘IS’. line-text = ‘IS’. APPEND line TO itab. CALL FUNCTION ‘VRM_SET_VALUES’ EXPORTING id ? ? = ‘P_RP’ values = itab[]. * –>2012.01.11 CCYU SRART CLEAR itab[]. CLEAR line. line-key = ‘01′. line-text = ‘01′. APPEND line TO itab. line-key = ‘02′. line-text = ‘02′. APPEND line TO itab. line-key = ‘03′. line-text = ‘03′. APPEND line TO itab. line-key = ‘04′. line-text = ‘04′. APPEND line TO itab. line-key = ‘05′. line-text = ‘05′. APPEND line TO itab. line-key = ‘06′. line-text = ‘06′. APPEND line TO itab. line-key = ‘07′. line-text = ‘07′. APPEND line TO itab. line-key = ‘08′. line-text = ‘08′. APPEND line TO itab. line-key = ‘09′. line-text = ‘09′. APPEND line TO itab. line-key = ‘10′. line-text = ‘10′. APPEND line TO itab. line-key = ‘11′. line-text = ‘11′. APPEND line TO itab. line-key = ‘12′. line-text = ‘12′. APPEND line TO itab. CALL FUNCTION ‘VRM_SET_VALUES’ EXPORTING id ? ? = ‘P_M’ values = itab[]. ” ?IF P_PCG IS INITIAL. ” ? ?CLEAR ITAB[]. ” ? ?CALL FUNCTION ‘VRM_SET_VALUES’ ” ? ? ?EXPORTING ” ? ? ? ?ID ? ? = ‘P_PC’ ” ? ? ? ?VALUES = ITAB[]. ” ?ELSE. PERFORM setpcg USING p_rpv. ” ?ENDIF. * <–2012.01.11 CCYU END. ENDFORM. ? ? ? ? ? ? ? ? ? ?” SETLIST *&———————————————————————* *& ? ? ?Form ?SETPCG *&———————————————————————* * ? ? ? text *———————————————————————-* * ? ? ?SET THE PROFIT CENTER GROUP *———————————————————————-* FORM setpcg ?USING p. DATA: itab TYPE STANDARD TABLE OF vrm_value, line TYPE vrm_value. CLEAR: itab[],line. “CLEAR p_pcg. IF p = ‘2070′. line-key = ‘N207′. line-text = ‘N207′. APPEND line TO itab. CALL FUNCTION ‘VRM_SET_VALUES’ EXPORTING id ? ? = ‘P_PCG’ values = itab[]. p_pcg = ‘N207′. CLEAR itab[]. ” ?APPEND LINE TO ITAB. CALL FUNCTION ‘VRM_SET_VALUES’ EXPORTING id ? ? = ‘P_PC’ values = itab[]. CLEAR d. ELSE. CLEAR itab[]. CLEAR p_pc. CALL FUNCTION ‘VRM_SET_VALUES’ EXPORTING id ? ? = ‘P_PC’ values = itab[]. IF d IS INITIAL. SELECT DISTINCT setname AS key setname AS text FROM setleaf INTO CORRESPONDING FIELDS OF TABLE itab WHERE subclass = ‘N207′ AND setclass = ‘0106′. IF itab[] IS NOT ?INITIAL. CALL FUNCTION ‘VRM_SET_VALUES’ EXPORTING id ? ? = ‘P_PCG’ values = itab[]. READ TABLE itab INTO line INDEX 1. p_pcg = line-key. CLEAR itab[]. SELECT DISTINCT valfrom AS key valfrom AS text FROM setleaf INTO CORRESPONDING FIELDS OF TABLE itab WHERE subclass = ‘N207′ AND setname = p_pcg AND setclass = ‘0106′. IF itab[] IS NOT INITIAL. CALL FUNCTION ‘VRM_SET_VALUES’ EXPORTING id ? ? = ‘P_PC’ values = itab[]. ENDIF. d = ‘X’. ENDIF. ELSE. SELECT DISTINCT valfrom AS key valfrom AS text FROM setleaf INTO CORRESPONDING FIELDS OF TABLE itab WHERE subclass = ‘N207′ AND setname = p_pcg AND setclass = ‘0106′. IF itab[] IS NOT INITIAL. CALL FUNCTION ‘VRM_SET_VALUES’ EXPORTING id ? ? = ‘P_PC’ values = itab[]. ENDIF. CLEAR itab[]. ENDIF. ENDIF. ENDFORM. ? ? ? ? ? ? ? ? ? ?” SETPCG *&———————————————————————* *& ? ? ?Form ?SETDIS *&———————————————————————* * ? ? ? set the disable of the profit center *———————————————————————-* * ? ? ?–>P_P_RPV ?text *———————————————————————-* FORM setdis ?USING p. LOOP AT SCREEN. IF p = ‘2070′. IF screen-group1 = ‘PC’. screen-input = ‘0′. ENDIF. ENDIF. MODIFY SCREEN. ENDLOOP. ENDFORM. ? ? ? ? ? ? ? ? ? ?” SETDIS *&———————————————————————* *& ? ? ?Form ?GET_DATA *&———————————————————————* * ? ? ? text *———————————————————————-* * ?–> ?p1 ? ? ? ?text * ?<– ?p2 ? ? ? ?text *———————————————————————-* FORM get_data1 . PERFORM getrv.”獲取報表項目對應的科目范圍 ENDFORM. ? ? ? ? ? ? ? ? ? ?” GET_DATA *&———————————————————————* *& ? ? ?Form ?GETRV *&———————————————————————* * ? ? ? get the report item ?and the account range *———————————————————————-* * ?–> ?p1 ? ? ? ?text * ?<– ?p2 ? ? ? ?text *———————————————————————-* FORM getrv . CLEAR gt_fagl_011zc[]. SELECT versn ergsl vonkt biskt FROM fagl_011zc INTO CORRESPONDING FIELDS OF TABLE gt_fagl_011zc WHERE versn = p_rpv. IF gt_fagl_011zc[] IS NOT ?INITIAL. SELECT DISTINCT ergsl txt45 INTO CORRESPONDING FIELDS OF TABLE gt_fagl_011qt FROM fagl_011qt FOR ALL ENTRIES IN gt_fagl_011zc WHERE versn = p_rpv AND ergsl = gt_fagl_011zc-ergsl. IF gt_fagl_011qt[] IS NOT INITIAL. SORT gt_fagl_011qt BY ergsl. LOOP AT gt_fagl_011zc. READ TABLE gt_fagl_011qt WITH KEY ergsl = gt_fagl_011zc-ergsl BINARY SEARCH. IF sy-subrc = 0. gt_fagl_011zc-txt45 = gt_fagl_011qt-txt45. ENDIF. MODIFY gt_fagl_011zc. ENDLOOP. ENDIF. IF p_curr = ‘KRW’. PERFORM getbs. ENDIF. ly = p_y - 1.”取去年 CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_INPUT’ EXPORTING input ?= p_m IMPORTING output = p_m. IF p_rp = ‘BS’. CLEAR gt_alv_bs0[]. PERFORM setbsitem. SORT gt_alv_bs0 BY lct1 ASCENDING. DATA:lv_pro(10) TYPE p DECIMALS 2 VALUE ‘3′, lv_i(10) TYPE p DECIMALS 2 VALUE ‘3′. “為核算固定資產(chǎn)等項目設置的臨時變量 DATA:a1601_1 TYPE hslvt12, a1601_2 TYPE hslvt12, a1602_1 TYPE hslvt12, a1602_2 TYPE hslvt12, a1603_1 TYPE hslvt12, a1603_2 TYPE hslvt12, a4001_1 TYPE hslvt12, a4001_2 TYPE hslvt12, a3103_1 TYPE hslvt12, a3103_2 TYPE hslvt12, a4104_1 TYPE hslvt12, a4104_2 TYPE hslvt12, a4102_1 TYPE hslvt12, a4102_2 TYPE hslvt12, a13yamt1 TYPE hslvt12, a13ysamt1 TYPE hslvt12, a14yamt2 TYPE hslvt12, a14ysamt2 TYPE hslvt12, a23yamt2 TYPE hslvt12, a23ysamt2 TYPE hslvt12, a24yamt2 TYPE hslvt12, a24ysamt2 TYPE hslvt12, a31yamt2 TYPE hslvt12, a31ysamt2 TYPE hslvt12, a32yamt1 TYPE hslvt12, a32ysamt1 TYPE hslvt12, a33yamt1 TYPE hslvt12, a33ysamt1 TYPE hslvt12, a33yamt2 TYPE hslvt12, a33ysamt2 TYPE hslvt12, a30yamt2 TYPE hslvt12, a30ysamt2 TYPE hslvt12, a26yamt2 TYPE hslvt12, a26ysamt2 TYPE hslvt12, a27yamt2 TYPE hslvt12, a27ysamt2 TYPE hslvt12, a29yamt2 TYPE hslvt12, a29ysamt2 TYPE hslvt12. “構造科目查詢范圍的查詢條件 LOOP AT gt_alv_bs0. IF gt_alv_bs0-item1 = ‘貨幣資金’. PERFORM getbsamt USING:gt_alv_bs0-yamt1 gt_alv_bs0-ysamt1 ‘1000′ ly, gt_alv_bs0-yamt2 gt_alv_bs0-ysamt2 ‘2001′ ly. ELSEIF gt_alv_bs0-item1 = ‘交易性金融資產(chǎn)’. PERFORM getbsamt USING:gt_alv_bs0-yamt1 gt_alv_bs0-ysamt1 ‘1101′ ly, gt_alv_bs0-yamt2 gt_alv_bs0-ysamt2 ‘2010′ ly. ELSEIF gt_alv_bs0-item1 = ‘應收票據(jù)’. PERFORM getbsamt USING:gt_alv_bs0-yamt1 gt_alv_bs0-ysamt1 ‘1121′ ly, gt_alv_bs0-yamt2 gt_alv_bs0-ysamt2 ‘2201′ ly. ELSEIF gt_alv_bs0-item1 = ‘應收賬款’. PERFORM getbsamt USING:gt_alv_bs0-yamt1 gt_alv_bs0-ysamt1 ‘1122′ ly, gt_alv_bs0-yamt2 gt_alv_bs0-ysamt2 ‘2202′ ly. ELSEIF gt_alv_bs0-item1 = ‘預付款項’. PERFORM getbsamt USING:gt_alv_bs0-yamt1 gt_alv_bs0-ysamt1 ‘1123′ ly, gt_alv_bs0-yamt2 gt_alv_bs0-ysamt2 ‘2203′ ly. ELSEIF gt_alv_bs0-item1 = ‘應收利息’. PERFORM getbsamt USING:gt_alv_bs0-yamt1 gt_alv_bs0-ysamt1 ‘1132′ ly, gt_alv_bs0-yamt2 gt_alv_bs0-ysamt2 ‘2211′ ly. ELSEIF gt_alv_bs0-item1 = ‘應收股利’. PERFORM getbsamt USING:gt_alv_bs0-yamt1 gt_alv_bs0-ysamt1 ‘1131′ ly, gt_alv_bs0-yamt2 gt_alv_bs0-ysamt2 ‘2221′ ly. ELSEIF gt_alv_bs0-item1 = ‘其他應收款’. PERFORM getbsamt USING:gt_alv_bs0-yamt1 gt_alv_bs0-ysamt1 ‘1221′ ly, gt_alv_bs0-yamt2 gt_alv_bs0-ysamt2 ‘2231′ ly. ELSEIF gt_alv_bs0-item1 = ‘存貨’. PERFORM getbsamt USING:gt_alv_bs0-yamt1 gt_alv_bs0-ysamt1 ‘1400′ ly, gt_alv_bs0-yamt2 gt_alv_bs0-ysamt2 ‘2232′ ly. ELSEIF gt_alv_bs0-item1 = ‘一年內到期的非流動資產(chǎn)’. PERFORM getbsamt USING:gt_alv_bs0-yamt1 gt_alv_bs0-ysamt1 ‘1507′ ly, gt_alv_bs0-yamt2 gt_alv_bs0-ysamt2 ‘2241′ ly. ELSEIF gt_alv_bs0-item1 = ‘其他流動資產(chǎn)’. PERFORM getbsamt USING:gt_alv_bs0-yamt1 gt_alv_bs0-ysamt1 ‘1499′ ly, gt_alv_bs0-yamt2 gt_alv_bs0-ysamt2 ‘2240′ ly. ELSEIF gt_alv_bs0-item1 = ‘流動資產(chǎn)合計’. PERFORM getbsamt USING gt_alv_bs0-yamt2 gt_alv_bs0-ysamt2 ‘2222′ ly. ELSEIF gt_alv_bs0-item1 = ‘可供出售金融資產(chǎn)’. PERFORM getbsamt USING:gt_alv_bs0-yamt1 gt_alv_bs0-ysamt1 ‘1503′ ly. ELSEIF gt_alv_bs0-item1 = ‘持有至到期投資’. PERFORM getbsamt USING:gt_alv_bs0-yamt1 gt_alv_bs0-ysamt1 ‘1501′ ly, gt_alv_bs0-yamt2 gt_alv_bs0-ysamt2 ‘2501′ ly. ELSEIF gt_alv_bs0-item1 = ‘長期應收款’. PERFORM getbsamt USING:gt_alv_bs0-yamt1 gt_alv_bs0-ysamt1 ‘1504′ ly, gt_alv_bs0-yamt2 gt_alv_bs0-ysamt2 ‘2502′ ly. ELSEIF gt_alv_bs0-item1 = ‘長期股權投資’. PERFORM getbsamt USING:gt_alv_bs0-yamt1 gt_alv_bs0-ysamt1 ‘1511′ ly, gt_alv_bs0-yamt2 gt_alv_bs0-ysamt2 ‘2701′ ly. ELSEIF gt_alv_bs0-item1 = ‘投資性房地產(chǎn)’. PERFORM getbsamt USING:gt_alv_bs0-yamt1 gt_alv_bs0-ysamt1 ‘1521′ ly, gt_alv_bs0-yamt2 gt_alv_bs0-ysamt2 ‘2711′ ly. ELSEIF gt_alv_bs0-item1 = ‘固定資產(chǎn)’. CLEAR:a1601_1,a1601_2,a1602_1,a1602_2,a1603_1,a1603_2. PERFORM getbsamt USING:a1601_1 a1601_2 ‘1601′ ly, a1602_1 a1602_2 ‘1602′ ly, a1603_1 a1603_2 ‘1603′ ly, gt_alv_bs0-yamt2 gt_alv_bs0-ysamt2 ‘2801′ ly. gt_alv_bs0-yamt1 = a1601_1 + a1602_1 + a1603_1. gt_alv_bs0-ysamt1 = a1601_2 + a1602_2 + a1603_2. ELSEIF gt_alv_bs0-item1 = ‘在建工程’. PERFORM getbsamt USING:gt_alv_bs0-yamt1 gt_alv_bs0-ysamt1 ‘1604′ ly, gt_alv_bs0-yamt2 gt_alv_bs0-ysamt2 ‘2901′ ly. ELSEIF gt_alv_bs0-item1 = ‘工程物資’. PERFORM getbsamt USING:gt_alv_bs0-yamt1 gt_alv_bs0-ysamt1 ‘1605′ ly, gt_alv_bs0-yamt2 gt_alv_bs0-ysamt2 ‘2000′ ly. ELSEIF gt_alv_bs0-item1 = ‘固定資產(chǎn)清理’. PERFORM getbsamt USING:gt_alv_bs0-yamt1 gt_alv_bs0-ysamt1 ‘1606′ ly. ELSEIF gt_alv_bs0-item1 = ‘無形資產(chǎn)’. PERFORM getbsamt USING:gt_alv_bs0-yamt1 gt_alv_bs0-ysamt1 ‘1701′ ly, a4001_1 a4001_2 ‘4001′ ly, a3103_1 a3103_2 ‘3103′ ly. gt_alv_bs0-yamt2 = a4001_1 + a3103_1. gt_alv_bs0-ysamt2 = a4001_2 + a3103_2. ELSEIF gt_alv_bs0-item1 = ‘開發(fā)支出’. PERFORM getbsamt USING:gt_alv_bs0-yamt1 gt_alv_bs0-ysamt1 ‘1710′ ly, gt_alv_bs0-yamt2 gt_alv_bs0-ysamt2 ‘4002′ ly. ELSEIF gt_alv_bs0-item1 = ‘商譽’. PERFORM getbsamt USING:gt_alv_bs0-yamt1 gt_alv_bs0-ysamt1 ‘1711′ ly. ELSEIF gt_alv_bs0-item1 = ‘長期待攤費用’. PERFORM getbsamt USING:gt_alv_bs0-yamt1 gt_alv_bs0-ysamt1 ‘1801′ ly, gt_alv_bs0-yamt2 gt_alv_bs0-ysamt2 ‘4101′ ly. ELSEIF gt_alv_bs0-item1 = ‘遞延所得稅資產(chǎn)’. “計算本年利潤 DATA:a TYPE hslvt12,”截止到今年當月的利潤 b TYPE hslvt12.”留存收益中的年初利潤 PERFORM getbsamt USING:gt_alv_bs0-yamt1 gt_alv_bs0-ysamt1 ‘1811′ ly. PERFORM getisdb. READ TABLE gt_alv_is0 INDEX 18. a = gt_alv_is0-yamt. PERFORM getprofitamt USING b ly. gt_alv_bs0-yamt2 = a + b. gt_alv_bs0-ysamt2 = b. CLEAR gt_alv_is0[]. ELSEIF gt_alv_bs0-item1 = ‘其他非流動資產(chǎn)’. PERFORM getbsamt USING:gt_alv_bs0-yamt1 gt_alv_bs0-ysamt1 ‘1901′ ly. ENDIF. MODIFY gt_alv_bs0. PERFORM porcess_show USING lv_pro. lv_pro = lv_pro + lv_i . ENDLOOP. “負債類科目貸方轉正,借方轉負 LOOP AT gt_alv_bs0 WHERE lct1 BETWEEN 1 AND 29. IF gt_alv_bs0-yamt2 LT 0. gt_alv_bs0-yamt2 = ABS( gt_alv_bs0-yamt2 ). ELSE. gt_alv_bs0-yamt2 = ( -1 ) * ( gt_alv_bs0-yamt2 ). ENDIF. IF gt_alv_bs0-ysamt2 LT 0. gt_alv_bs0-ysamt2 = ABS( gt_alv_bs0-ysamt2 ). ELSE. gt_alv_bs0-ysamt2 = ( -1 ) * ( gt_alv_bs0-ysamt2 ). ENDIF. MODIFY gt_alv_bs0. ENDLOOP. CLEAR:a13yamt1, a13ysamt1, a14yamt2, a14ysamt2, a23yamt2, a23ysamt2, a24yamt2, a24ysamt2, a31yamt2, a31ysamt2, a32yamt1, a32ysamt1, a33yamt1, a33ysamt1, a33yamt2, a33ysamt2, a30yamt2, a30ysamt2, a26yamt2, a26ysamt2, a27yamt2, a27ysamt2, a29yamt2, a29ysamt2. “對特殊項目進行總計 LOOP AT gt_alv_bs0. IF gt_alv_bs0-lct1 BETWEEN 2 AND 12.”流動資產(chǎn) a13yamt1 = gt_alv_bs0-yamt1 + a13yamt1. a13ysamt1 = gt_alv_bs0-ysamt1 + a13ysamt1. ENDIF. IF gt_alv_bs0-lct1 BETWEEN 15 AND 31.”非流動資產(chǎn) a32yamt1 = gt_alv_bs0-yamt1 + a32yamt1. a32ysamt1 = gt_alv_bs0-ysamt1 + a32ysamt1. ENDIF. IF gt_alv_bs0-lct1 BETWEEN 2 AND 13.”流動負債 a14yamt2 = gt_alv_bs0-yamt2 + a14yamt2. a14ysamt2 = gt_alv_bs0-ysamt2 + a14ysamt2. ENDIF. IF gt_alv_bs0-lct1 BETWEEN 16 AND 22.”非流動負債 a23yamt2 = gt_alv_bs0-yamt2 + a23yamt2. a23ysamt2 = gt_alv_bs0-ysamt2 + a23ysamt2. ENDIF. IF gt_alv_bs0-lct1 BETWEEN 26 AND 30.”所有者權益 a31yamt2 = gt_alv_bs0-yamt2 + a31yamt2. a31ysamt2 = gt_alv_bs0-ysamt2 + a31ysamt2. ENDIF. ENDLOOP. a33yamt1 = a13yamt1 + a32yamt1.”資產(chǎn)總計 a33ysamt1 = a13ysamt1 + a32ysamt1. a24yamt2 = a14yamt2 + a23yamt2.”負債總計 a24ysamt2 = a14ysamt2 + a23ysamt2. a33yamt2 = a24yamt2 + a31yamt2.”負債+所有者權益 a33ysamt2 = a24ysamt2 + a31ysamt2. ” a30yamt2 = a33yamt1 - a33yamt2. “a30ysamt2 = a33ysamt1 - a33ysamt2. * ? ? ?READ TABLE gt_alv_bs0 WITH KEY lct1 = 26. * ? ? ?a26yamt2 = gt_alv_bs0-yamt2. * ? ? ?a26ysamt2 = gt_alv_bs0-ysamt2. * ? ? ?READ TABLE gt_alv_bs0 WITH KEY lct1 = 27. * ? ? ?a27yamt2 = gt_alv_bs0-yamt2. * ? ? ?a27ysamt2 = gt_alv_bs0-ysamt2. * ? ? ?READ TABLE gt_alv_bs0 WITH KEY lct1 = 29. * ? ? ?a29yamt2 = gt_alv_bs0-yamt2. * ? ? ?a29ysamt2 = gt_alv_bs0-ysamt2. * ? ? ?a30yamt2 = a33yamt1 - a24yamt2 - a26yamt2 - a27yamt2 - a29yamt2.”本年利潤調平 * ? ? ?a30ysamt2 = a33ysamt1 - a24ysamt2 - a26ysamt2 - a27ysamt2 - a29ysamt2. * ? ? ?a31yamt2 = ?a26yamt2 + a27yamt2 + a29yamt2 + a30yamt2. * ? ? ?a31ysamt2 = ?a26ysamt2 + a27ysamt2 + a29ysamt2 + a30ysamt2. LOOP AT gt_alv_bs0. IF gt_alv_bs0-lct1 = 13. gt_alv_bs0-yamt1 = a13yamt1. gt_alv_bs0-ysamt1 = a13ysamt1. ELSEIF gt_alv_bs0-lct1 = 14. gt_alv_bs0-yamt2 = a14yamt2. gt_alv_bs0-ysamt2 = a14ysamt2. ELSEIF gt_alv_bs0-lct1 = 23. gt_alv_bs0-yamt2 = a23yamt2. gt_alv_bs0-ysamt2 = a23ysamt2. ELSEIF gt_alv_bs0-lct1 = 24. gt_alv_bs0-yamt2 = a24yamt2. gt_alv_bs0-ysamt2 = a24ysamt2. * ? ? ? ?ELSEIF gt_alv_bs0-lct1 = 30. * ? ? ? ? ?gt_alv_bs0-yamt2 = a30yamt2. * ? ? ? ? ?gt_alv_bs0-ysamt2 = a30ysamt2. ELSEIF gt_alv_bs0-lct1 = 31. gt_alv_bs0-yamt2 = a31yamt2. gt_alv_bs0-ysamt2 = a31ysamt2. ELSEIF gt_alv_bs0-lct1 = 32. gt_alv_bs0-yamt1 = a32yamt1. gt_alv_bs0-ysamt1 = a32ysamt1. ELSEIF gt_alv_bs0-lct1 = 33. gt_alv_bs0-yamt1 = a33yamt1. gt_alv_bs0-ysamt1 = a33ysamt1. gt_alv_bs0-yamt2 = a33yamt2. gt_alv_bs0-ysamt2 = a33ysamt2. ENDIF. MODIFY gt_alv_bs0. ENDLOOP. IF p_curr = ‘KRW’. LOOP AT gt_alv_bs0. gt_alv_bs0-yamt1 = gt_alv_bs0-yamt1 * gv_bs. gt_alv_bs0-ysamt1 = gt_alv_bs0-ysamt1 * gv_bs. gt_alv_bs0-yamt2 = gt_alv_bs0-yamt2 * gv_bs. gt_alv_bs0-ysamt2 = gt_alv_bs0-ysamt2 * gv_bs. gt_alv_bs0-waers = ‘KRW’. MODIFY gt_alv_bs0. ENDLOOP. ELSE. LOOP AT gt_alv_bs0. gt_alv_bs0-waers = ‘CNY’. MODIFY gt_alv_bs0. ENDLOOP. ENDIF. gv_iden = ‘BS’. CALL SCREEN ‘0100′. ELSEIF p_rp = ‘IS’. PERFORM getisdb. CALL SCREEN ‘0200′. ENDIF. ENDIF. ENDFORM. ? ? ? ? ? ? ? ? ? ?” GETRV *&———————————————————————* *& ? ? ?Form ?SETISITEM *&———————————————————————* * ? ? ? fill the profit table *———————————————————————-* * ?–> ?p1 ? ? ? ?text * ?<– ?p2 ? ? ? ?text *———————————————————————-* FORM setisitem . gt_alv_is0-lct = 1. gt_alv_is0-item = ‘一、營業(yè)收入’. APPEND gt_alv_is0. gt_alv_is0-lct = 2. gt_alv_is0-item = ‘ 減:營業(yè)成本’. APPEND gt_alv_is0. gt_alv_is0-lct = 3. gt_alv_is0-item = ‘ ?營業(yè)稅金及附加’. APPEND gt_alv_is0. gt_alv_is0-lct = 4. gt_alv_is0-item = ‘ ? 銷售費用’. APPEND gt_alv_is0. gt_alv_is0-lct = 5. gt_alv_is0-item = ‘ ? 管理費用’. APPEND gt_alv_is0. gt_alv_is0-lct = 6. gt_alv_is0-item = ‘ ? 財務費用’. APPEND gt_alv_is0. gt_alv_is0-lct = 7. gt_alv_is0-item = ‘ ?資產(chǎn)減值損失’. APPEND gt_alv_is0. gt_alv_is0-lct = 8. gt_alv_is0-item = ‘ 加:公允價值變動收益(損失以“-”號填列)’. APPEND gt_alv_is0. gt_alv_is0-lct = 9. gt_alv_is0-item = ‘ ? ? ? 投資收益(損失以“-”號填列)’. APPEND gt_alv_is0. gt_alv_is0-lct = 10. gt_alv_is0-item = ‘ ? ?其中:對聯(lián)營企業(yè)和合營企業(yè)的投資收益’. APPEND gt_alv_is0. gt_alv_is0-lct = 11. gt_alv_is0-item = ‘二、營業(yè)利潤(虧損以“-”號填列)’. APPEND gt_alv_is0. gt_alv_is0-lct = 12. gt_alv_is0-item = ‘ ? 加:營業(yè)外收入’. APPEND gt_alv_is0. gt_alv_is0-lct = 13. gt_alv_is0-item = ‘ ? 減:營業(yè)外支出’. APPEND gt_alv_is0. gt_alv_is0-lct = 14. gt_alv_is0-item = ‘ ?其中:非流動資產(chǎn)處置損失’. APPEND gt_alv_is0. gt_alv_is0-lct = 15. gt_alv_is0-item = ‘ ?加:以前年度損益調整’. APPEND gt_alv_is0. gt_alv_is0-lct = 16. gt_alv_is0-item = ‘三、利潤總額(虧損總額以“-”號填列)’. APPEND gt_alv_is0. gt_alv_is0-lct = 17. gt_alv_is0-item = ‘ ? 減:所得稅費用’. APPEND gt_alv_is0. gt_alv_is0-lct = 18. gt_alv_is0-item = ‘四、凈利潤(凈虧損以“-”號填列)’. APPEND gt_alv_is0. gt_alv_is0-lct = 19. gt_alv_is0-item = ‘五、每股收益:’. APPEND gt_alv_is0. gt_alv_is0-lct = 20. gt_alv_is0-item = ‘ ? (一)基本每股收益’. APPEND gt_alv_is0. gt_alv_is0-lct = 21. gt_alv_is0-item = ‘ ? (二)稀釋每股收益’. APPEND gt_alv_is0. ENDFORM. ? ? ? ? ? ? ? ? ? ?” SETISITEM *&———————————————————————* *& ? ? ?Form ?getisamt *&———————————————————————* * ? ? ? get the is amount by itemid *———————————————————————-* FORM getisamt USING ?p_yamt p_mamt value(p_itemid) value(p_id). “構造科目查詢范圍的查詢條件 p_yamt = 0. p_mamt = 0. PERFORM getaccrange USING p_itemid. CLEAR gs_hsl. REFRESH gt_monv. CHECK gr_act[] IS NOT INITIAL. CASE p_rpv. WHEN ‘2070′.”不考慮利潤中心 IF p_id = 4.”6600取功能范圍1200 SELECT SUM( hsl ) INTO p_mamt FROM faglflexa WHERE ryear = p_y AND rldnr = ‘0L’ AND racct IN gr_act AND rbukrs = ‘N207′ AND pprctr = ””抵消內部交易 AND rfarea = ‘1200′ AND poper = p_m. SELECT SUM( hsl ) INTO p_yamt FROM faglflexa WHERE ( ryear = p_y AND poper BETWEEN ‘001′ AND p_m ) AND rldnr = ‘0L’ AND racct IN gr_act AND rbukrs = ‘N207′ AND pprctr = ””抵消內部交易 AND rfarea = ‘1200′. ELSEIF p_id = 5.”6600取功能范圍1300 SELECT SUM( hsl ) INTO p_mamt FROM faglflexa WHERE ryear = p_y AND rldnr = ‘0L’ AND racct IN gr_act AND rbukrs = ‘N207′ AND pprctr = ””抵消內部交易 AND rfarea = ‘1300′ AND poper = p_m. SELECT SUM( hsl ) INTO p_yamt FROM faglflexa WHERE ( ryear = p_y AND poper BETWEEN ‘001′ AND p_m ) AND rldnr = ‘0L’ AND racct IN gr_act AND rbukrs = ‘N207′ AND pprctr = ””抵消內部交易 AND rfarea = ‘1300′. ELSEIF p_id = 14.”按照科目進行取數(shù) SELECT SUM( hsl ) INTO p_mamt FROM faglflexa WHERE ryear = p_y AND rldnr = ‘0L’ AND racct BETWEEN ‘962101′ AND ‘962201′ AND rbukrs = ‘N207′ AND pprctr = ””抵消內部交易 AND poper = p_m. SELECT SUM( hsl ) INTO p_yamt FROM faglflexa WHERE ( ryear = p_y AND poper BETWEEN ‘001′ AND p_m ) AND rldnr = ‘0L’ AND racct BETWEEN ‘962101′ AND ‘962201′ AND rbukrs = ‘N207′ AND pprctr = ”.”抵消內部交易. ELSE.”正常取 SELECT SUM( hsl ) INTO p_mamt FROM faglflexa WHERE ryear = p_y AND rldnr = ‘0L’ AND racct IN gr_act AND rbukrs = ‘N207′ AND pprctr = ””抵消內部交易 AND poper = p_m. SELECT SUM( hsl ) INTO p_yamt FROM faglflexa WHERE ?( ryear = p_y AND poper BETWEEN ‘001′ AND p_m ) AND rldnr = ‘0L’ AND racct IN gr_act AND rbukrs = ‘N207′ AND pprctr = ”.”抵消內部交易 ENDIF. WHEN ‘2071′ OR ‘2072′ OR ‘2073′.”自選利潤中心組,利潤中心可輸可不輸 IF p_pc <> ”. IF p_id = 4.”6600取功能范圍1200 SELECT SUM( hsl ) INTO p_mamt FROM faglflexa WHERE ryear = p_y AND rldnr = ‘0L’ AND racct IN gr_act AND rbukrs = ‘N207′ AND prctr = p_pc”抵消內部交易 AND rfarea = ‘1200′ AND poper = p_m. SELECT SUM( hsl ) INTO p_yamt FROM faglflexa WHERE ?( ryear = p_y AND poper BETWEEN ‘001′ AND p_m ) AND rldnr = ‘0L’ AND racct IN gr_act AND rbukrs = ‘N207′ AND prctr = p_pc”抵消內部交易 AND rfarea = ‘1200′. ELSEIF p_id = 5.”6600取功能范圍1300 SELECT SUM( hsl ) INTO p_mamt FROM faglflexa WHERE ryear = p_y AND rldnr = ‘0L’ AND racct IN gr_act AND rbukrs = ‘N207′ AND prctr = p_pc”抵消內部交易 AND rfarea = ‘1300′ AND poper = p_m. SELECT SUM( hsl ) INTO p_yamt FROM faglflexa WHERE ( ryear = p_y AND poper BETWEEN ‘001′ AND p_m ) AND rldnr = ‘0L’ AND racct IN gr_act AND rbukrs = ‘N207′ AND prctr = p_pc”抵消內部交易 AND rfarea = ‘1300′. ELSEIF p_id = 14.”按照科目進行取數(shù) SELECT SUM( hsl ) INTO p_mamt FROM faglflexa WHERE ryear = p_y AND rldnr = ‘0L’ AND racct BETWEEN ‘962101′ AND ‘962201′ AND rbukrs = ‘N207′ AND prctr = p_pc”抵消內部交易 AND poper = p_m. SELECT SUM( hsl ) INTO p_yamt FROM faglflexa WHERE ( ryear = p_y AND poper BETWEEN ‘001′ AND p_m ) AND rldnr = ‘0L’ AND racct BETWEEN ‘962101′ AND ‘962201′ AND rbukrs = ‘N207′ AND prctr = p_pc.”抵消內部交易. ELSE.”正常取 SELECT SUM( hsl ) INTO p_mamt FROM faglflexa WHERE ryear = p_y AND rldnr = ‘0L’ AND racct IN gr_act AND rbukrs = ‘N207′ AND prctr = p_pc”抵消內部交易 AND poper = p_m. SELECT SUM( hsl ) INTO p_yamt FROM faglflexa WHERE ( ryear = p_y AND poper BETWEEN ‘001′ AND p_m ) AND rldnr = ‘0L’ AND racct IN gr_act AND rbukrs = ‘N207′ AND prctr = p_pc.”抵消內部交易 ENDIF. ELSEIF p_pcg <> ” AND p_pc IS INITIAL.”利潤中心為空,選取所有的利潤中心 IF p_id = 4.”6600取功能范圍1200 SELECT SUM( hsl ) INTO p_mamt FROM faglflexa WHERE ryear = p_y AND rldnr = ‘0L’ AND racct IN gr_act AND rbukrs = ‘N207′ AND prctr IN ( SELECT valfrom ?FROM setleaf WHERE setname = p_pcg ) AND rfarea = ‘1200′ AND poper = p_m. SELECT SUM( hsl ) INTO p_yamt FROM faglflexa WHERE ( ryear = p_y AND poper BETWEEN ‘001′ AND p_m ) AND rldnr = ‘0L’ AND racct IN gr_act AND rbukrs = ‘N207′ AND prctr IN ( SELECT valfrom ?FROM setleaf WHERE setname = p_pcg ) AND rfarea = ‘1200′. ELSEIF p_id = 5.”6600取功能范圍1300 SELECT SUM( hsl ) INTO p_mamt FROM faglflexa WHERE ryear = p_y AND rldnr = ‘0L’ AND racct IN gr_act AND rbukrs = ‘N207′ AND prctr IN ( SELECT valfrom ?FROM setleaf WHERE setname = p_pcg ) AND rfarea = ‘1300′ AND poper = p_m. SELECT SUM( hsl ) INTO p_yamt FROM faglflexa WHERE ?( ryear = p_y AND poper BETWEEN ‘001′ AND p_m ) AND rldnr = ‘0L’ AND racct IN gr_act AND rbukrs = ‘N207′ AND prctr IN ( SELECT valfrom ?FROM setleaf WHERE setname = p_pcg ) AND rfarea = ‘1300′. ELSEIF p_id = 14.”按照科目進行取數(shù) SELECT SUM( hsl ) INTO p_mamt FROM faglflexa WHERE ryear = p_y AND rldnr = ‘0L’ AND racct BETWEEN ‘962101′ AND ‘962201′ AND rbukrs = ‘N207′ AND prctr IN ( SELECT valfrom ?FROM setleaf WHERE setname = p_pcg ) AND poper = p_m. SELECT SUM( hsl ) INTO p_yamt FROM faglflexa WHERE ( ryear = p_y AND poper BETWEEN ‘001′ AND p_m ) AND rldnr = ‘0L’ AND racct BETWEEN ‘962101′ AND ‘962201′ AND rbukrs = ‘N207′ AND prctr IN ( SELECT valfrom ?FROM setleaf WHERE setname = p_pcg ). ELSE.”正常取 SELECT SUM( hsl ) INTO p_mamt FROM faglflexa WHERE ryear = p_y AND rldnr = ‘0L’ AND racct IN gr_act AND rbukrs = ‘N207′ AND prctr IN ( SELECT valfrom ?FROM setleaf WHERE setname = p_pcg ) AND poper = p_m. SELECT SUM( hsl ) INTO p_yamt FROM faglflexa WHERE ?( ryear = p_y AND poper BETWEEN ‘001′ AND p_m ) AND rldnr = ‘0L’ AND racct IN gr_act AND rbukrs = ‘N207′ AND prctr IN ( SELECT valfrom ?FROM setleaf WHERE setname = p_pcg ). ENDIF. ENDIF. ENDCASE. “獲取結果數(shù)值,p_mamt是本期,p_yamt是累計 IF p_id <> 6. p_yamt = ABS( p_yamt ). p_mamt = ABS( p_mamt ). ENDIF. ENDFORM. ? ? ? ? ? ? ? ? ? ?”getisamt *&———————————————————————* *& ? ? ?Form ?fillgt_monv *&———————————————————————* * ? ? ? FILL THE MONTH VALUE *———————————————————————-* FORM fillgt_monv. CLEAR gt_monv[]. gt_monv-month = ‘01′. gt_monv-value = gs_hsl-hsl01. APPEND gt_monv. gt_monv-month = ‘02′. gt_monv-value = gs_hsl-hsl02. APPEND gt_monv. gt_monv-month = ‘03′. gt_monv-value = gs_hsl-hsl03. APPEND gt_monv. gt_monv-month = ‘04′. gt_monv-value = gs_hsl-hsl04. APPEND gt_monv. gt_monv-month = ‘05′. gt_monv-value = gs_hsl-hsl05. APPEND gt_monv. gt_monv-month = ‘06′. gt_monv-value = gs_hsl-hsl06. APPEND gt_monv. gt_monv-month = ‘07′. gt_monv-value = gs_hsl-hsl07. APPEND gt_monv. gt_monv-month = ‘08′. gt_monv-value = gs_hsl-hsl08. APPEND gt_monv. gt_monv-month = ‘09′. gt_monv-value = gs_hsl-hsl09. APPEND gt_monv. gt_monv-month = ‘10′. gt_monv-value = gs_hsl-hsl10. APPEND gt_monv. gt_monv-month = ‘11′. gt_monv-value = gs_hsl-hsl11. APPEND gt_monv. gt_monv-month = ‘12′. gt_monv-value = gs_hsl-hsl12. APPEND gt_monv. ENDFORM. ? ? ? ? ? ? ? ? ? ?”fillgt_monv *&———————————————————————* *& ? ? ?Form ?FILLGT_MONV1 *&———————————————————————* * ? ? ? text *———————————————————————-* FORM fillgt_monv1. CLEAR gt_monv[]. gt_monv-month = ‘01′. gt_monv-value = gs_hsl1-hsl01. APPEND gt_monv. gt_monv-month = ‘02′. gt_monv-value = gs_hsl1-hsl02. APPEND gt_monv. gt_monv-month = ‘03′. gt_monv-value = gs_hsl1-hsl03. APPEND gt_monv. gt_monv-month = ‘04′. gt_monv-value = gs_hsl1-hsl04. APPEND gt_monv. gt_monv-month = ‘05′. gt_monv-value = gs_hsl1-hsl05. APPEND gt_monv. gt_monv-month = ‘06′. gt_monv-value = gs_hsl1-hsl06. APPEND gt_monv. gt_monv-month = ‘07′. gt_monv-value = gs_hsl1-hsl07. APPEND gt_monv. gt_monv-month = ‘08′. gt_monv-value = gs_hsl1-hsl08. APPEND gt_monv. gt_monv-month = ‘09′. gt_monv-value = gs_hsl1-hsl09. APPEND gt_monv. gt_monv-month = ‘10′. gt_monv-value = gs_hsl1-hsl10. APPEND gt_monv. gt_monv-month = ‘11′. gt_monv-value = gs_hsl1-hsl11. APPEND gt_monv. gt_monv-month = ‘12′. gt_monv-value = gs_hsl1-hsl12. APPEND gt_monv. ENDFORM. ? ? ? ? ? ? ? ? ? ?”fillgt_monv *&———————————————————————* *& ? ? ?Form ?fm_user_command *&———————————————————————* * ? ? ? text *———————————————————————-* * ? ? ?–>P_UCOMM ? ?text *———————————————————————-* FORM fm_user_command ?USING ? ?p_ucomm. CASE p_ucomm . WHEN ‘GETEXC’ . * –>2012.01.16 CCYU START PERFORM get_excel. * <–2012.01.16 CCYU END. * ? ?WHEN ‘Mod’. ** ? ? ?CALL METHOD gs_alv->set_frontend_fieldcatalog ** ? ? ?CALL METHOD gs_alv->refresh_table_display . * ? ?WHEN ‘SAVE’. * ? ?WHEN ‘New’. * ? ?WHEN ‘Delete’. * ? ?WHEN ‘IMPO’. ENDCASE . ENDFORM. ? ? ? ? ? ? ? ? ? ?” fm_user_command *&———————————————————————* *& ? ? ?Form ?modify_toolbar *&———————————————————————* * ? ? ? text *———————————————————————-* * ? ? ?–>P_OBJECT ? ? ? text * ? ? ?–>P_INTERACTIVE ?text *———————————————————————-* FORM modify_toolbar ?USING ? ?p_object TYPE REF TO cl_alv_event_toolbar_set p_interactive . * –>2012.01.16 CCYU START DATA: ls_toolbar TYPE stb_button . CLEAR ls_toolbar. MOVE 3 ? ? ?TO ls_toolbar-butn_type . APPEND ls_toolbar ?TO p_object->mt_toolbar . CLEAR ls_toolbar. MOVE ‘GETEXC’ ? ?TO ls_toolbar-function .”function code MOVE icon_xxl ? TO ls_toolbar-icon .”icon MOVE ‘導出EXCEL’ ? ?TO ls_toolbar-quickinfo .”the tip MOVE ‘導出EXCEL’ ?TO ls_toolbar-text. MOVE ” ? ? ? ? ? ?TO ls_toolbar-disabled .”if disabled APPEND ls_toolbar ?TO p_object->mt_toolbar . * <–2012.01.16 CCYU END. ENDFORM. ? ? ? ? ? ? ? ? ? ?” MODIFY_TOOLBAR *&———————————————————————* *& ? ? ?Form ?fill_field_category *&———————————————————————* * ? ? ? text *———————————————————————-* * ? ? ?–>P_SECTION ?text * ? ? ?–>P_FNAME ? ?text * ? ? ?–>P_VALUE ? ?text *———————————————————————-* FORM fill_field_category ?USING ? ?p_section p_fname p_value. DATA: l_col(40) . FIELD-SYMBOLS <l_fs> . IF p_section = ‘S’ . CLEAR gs_fieldcat . ENDIF . CONCATENATE ‘GS_FIELDCAT-’ p_fname INTO l_col . ASSIGN (l_col) TO <l_fs> . MOVE p_value ? TO <l_fs> . IF p_section = ‘E’ . APPEND gs_fieldcat TO gt_fieldcat . ENDIF . ENDFORM. ? ? ? ? ? ? ? ? ? ?” FILL_FIELD_CATEGORY *&———————————————————————* *& ? ? ?Form ?DISPLAYIS *&———————————————————————* * ? ? ? text *———————————————————————-* * ?–> ?p1 ? ? ? ?text * ?<– ?p2 ? ? ? ?text *———————————————————————-* FORM displayis . PERFORM setlayout. PERFORM buildfieldcat_is. PERFORM excluding_tb_function. ENDFORM. ? ? ? ? ? ? ? ? ? ?” DISPLAYIS *&———————————————————————* *& ? ? ?Form ?setlayout *&———————————————————————* * ? ? ? text *———————————————————————-* FORM setlayout . CLEAR gs_layout. gs_layout-cwidth_opt = ‘X’ . gs_layout-zebra = ‘X’ . gs_layout-sel_mode = ‘A’. ENDFORM. ? ? ? ? ? ? ? ? ? ?” set layout *&———————————————————————* *& ? ? ?Form ?BUILDFIELDCAT_IS *&———————————————————————* * ? ? ? text *———————————————————————-* * ?–> ?p1 ? ? ? ?text * ?<– ?p2 ? ? ? ?text *———————————————————————-* FORM buildfieldcat_is . CLEAR gt_fieldcat[]. PERFORM fill_field_category USING : ‘S’ ‘TABNAME’ ? ‘GT_ALV_IS0′ , ” ?’SCRTEXT_M’ ‘項目’ , ” ?’OUTPUTLEN’ ‘20′ , ‘E’ ‘FIELDNAME’ ‘ITEM’ , ‘S’ ‘TABNAME’ ? ‘GT_ALV_IS0′ , ” ?’SCRTEXT_M’ ‘行次’ , ” ?’OUTPUTLEN’ ‘20′ , ” ?’KEY’ ? ? ? ‘X’, ‘E’ ‘FIELDNAME’ ‘LCT’ , ‘S’ ‘TABNAME’ ? ‘GT_ALV_IS0′ , ” ?’SCRTEXT_M’ ‘本期金額’ , ” ?’OUTPUTLEN’ ‘20′ , ” ?’HotSpot’ ? ‘X’, ‘E’ ‘FIELDNAME’ ‘MAMT’ , ‘S’ ‘TABNAME’ ? ‘GT_ALV_IS0′ , ” ?’SCRTEXT_M’ ‘累計余額’ , ” ?’OUTPUTLEN’ ‘20′ , ‘E’ ‘FIELDNAME’ ‘YAMT’ . ENDFORM. ? ? ? ? ? ? ? ? ? ?” BUILDFIELDCAT_IS *&———————————————————————* *& ? ? ?Form ?fm_add_topofpage *&———————————————————————* * ? ? ? text *———————————————————————-* * ? ? ?–>P_E_DYNDOC_ID ?text *———————————————————————-* FORM fm_add_topofpage ?USING ?p_e_dyndoc_id TYPE REF TO cl_dd_document. DATA l_text(255). IF gv_iden = ‘IS’. CALL METHOD gs_dyndoc_id->add_text EXPORTING text ? ? ? ? = ‘利潤表(非金融類)INCOME STATEMENT (NON-financial enterprise)’ sap_fontsize = cl_dd_document=>large sap_emphasis = cl_dd_document=>strong. CALL METHOD gs_dyndoc_id->new_line . CONCATENATE p_y ‘年’ ‘ ?’ p_m ‘月’ ‘ 會企02表 單位:’ p_curr INTO l_text. CALL METHOD gs_dyndoc_id->new_line . CALL METHOD gs_dyndoc_id->add_text EXPORTING text = l_text. CALL METHOD gs_dyndoc_id->new_line . CALL METHOD gs_dyndoc_id->new_line . CALL METHOD gs_dyndoc_id->add_text EXPORTING text = ‘愛思開實業(yè)(上海)商貿(mào)有限公司’. PERFORM fm_control_html . ELSEIF gv_iden = ‘BS’. CALL METHOD gs_dyndoc_id->add_text EXPORTING text ? ? ? ? = ‘資產(chǎn)負債表(非金融類)BALANCE SHEET(NON-financial enterprise)’ sap_fontsize = cl_dd_document=>large sap_emphasis = cl_dd_document=>strong. CALL METHOD gs_dyndoc_id->new_line . CONCATENATE p_y ‘年’ ‘ ?’ p_m ‘月’ ‘ 會企02表 單位:’ p_curr INTO l_text. CALL METHOD gs_dyndoc_id->new_line . CALL METHOD gs_dyndoc_id->add_text EXPORTING text = l_text. CALL METHOD gs_dyndoc_id->new_line . CALL METHOD gs_dyndoc_id->new_line . CALL METHOD gs_dyndoc_id->add_text EXPORTING text = ‘愛思開實業(yè)(上海)商貿(mào)有限公司’. PERFORM fm_control_html . ENDIF. ENDFORM. ? ? ? ? ? ? ? ? ? ?” FM_ADD_TOPOFPAGE *&———————————————————————* *& ? ? ?Form ?fm_control_html *&———————————————————————* * ? ? ? text *———————————————————————-* FORM fm_control_html . * Define local variables DATA: lv_length ? ? ? ?TYPE i, ? ? ? ? ? ? ? ? ? ?” Length lv_background_id TYPE sdydo_key VALUE space.” Background id * Creating HTML Control IF gs_html_cntrl IS INITIAL. CREATE OBJECT gs_html_cntrl EXPORTING parent = gs_parent_html. ENDIF. * Call function ‘REUSE_ALV_GRID_COMMENTARY_SET’ to set CALL FUNCTION ‘REUSE_ALV_GRID_COMMENTARY_SET’ EXPORTING document = gs_dyndoc_id bottom ? = ‘E’ “SPACE IMPORTING length ? = lv_length. * Get TOP->HTML_TABLE Ready CALL METHOD gs_dyndoc_id->merge_document. * Set wallpaper CALL METHOD gs_dyndoc_id->set_document_background EXPORTING picture_id = lv_background_id. * Connect Top of page document to HTML Control gs_dyndoc_id->html_control = gs_html_cntrl. * Display Top of page document CALL METHOD gs_dyndoc_id->display_document EXPORTING reuse_control ? ? ?= ‘X’ parent ? ? ? ? ? ? = gs_parent_html EXCEPTIONS html_display_error = 1. ENDFORM. ? ? ? ? ? ? ? ? ? ?”FM_CONTROL_HTML *&———————————————————————* *& ? ? ?Form ?excluding_tb_function *&———————————————————————* * ? ? ? text *———————————————————————-* FORM excluding_tb_function . CLEAR: g_toolbar . REFRESH: g_toolbar . PERFORM append_alv_exclude_functions TABLES g_toolbar USING : cl_gui_alv_grid=>mc_fc_loc_undo ? ? ? ? ?, cl_gui_alv_grid=>mc_fc_auf ? ? ? ? ? ? ? ? , cl_gui_alv_grid=>mc_fc_average ? ? ? ? ? ?, ? ? ?”Mean Value cl_gui_alv_grid=>mc_fc_back_classic ? ? ? , cl_gui_alv_grid=>mc_fc_call_abc ? ? ? ? ? ?, cl_gui_alv_grid=>mc_fc_check ? ? ? ? ? ? ? , cl_gui_alv_grid=>mc_fc_call_chain ? ? ? ? , cl_gui_alv_grid=>mc_fc_call_crbatch ? ? ? ?, cl_gui_alv_grid=>mc_fc_call_crweb ? ? ? ? , cl_gui_alv_grid=>mc_fc_call_lineitems ? ? ?, cl_gui_alv_grid=>mc_fc_call_master_data ? , cl_gui_alv_grid=>mc_fc_call_more ? ? ? ? ?, cl_gui_alv_grid=>mc_fc_call_report ? ? ? ?, cl_gui_alv_grid=>mc_fc_call_xint ? ? ? ? ?, * ? ? ? ? ?CL_GUI_ALV_GRID=>MC_FC_CALL_XXL ? ? ? ? ? ?,”導出EXCEL cl_gui_alv_grid=>mc_fc_col_invisible ? ? ?, cl_gui_alv_grid=>mc_fc_col_optimize ? ? ? , cl_gui_alv_grid=>mc_fc_count ? ? ? ? ? ? ? , cl_gui_alv_grid=>mc_fc_current_variant ? ?, cl_gui_alv_grid=>mc_fc_data_save ? ? ? ? ? ?, cl_gui_alv_grid=>mc_fc_delete_filter ? ? ? , cl_gui_alv_grid=>mc_fc_deselect_all ? ? ? ?, cl_gui_alv_grid=>mc_fc_detail ? ? ? ? ? , cl_gui_alv_grid=>mc_fc_expcrdata ? ? ? ? , cl_gui_alv_grid=>mc_fc_expcrdesig ? ? ? ? ?, cl_gui_alv_grid=>mc_fc_expcrtempl ? ? ? ?, cl_gui_alv_grid=>mc_fc_expmdb ? ? ? ? ? ?, cl_gui_alv_grid=>mc_fc_extend ? ? ? ? , cl_gui_alv_grid=>mc_fc_f4 ? ? ? ? ? ? ? ?, ” ? ? ? ? CL_GUI_ALV_GRID=>MC_FC_FILTER ? ? ? ? ? , ” ? ? ? ? ?CL_GUI_ALV_GRID=>MC_FC_FIND ? ? ? ? ? ? ?, ” ? ? ? ? CL_GUI_ALV_GRID=>MC_FC_FIX_COLUMNS ? ? ? ?, cl_gui_alv_grid=>mc_fc_graph ? ? ? ? ? ? ?, cl_gui_alv_grid=>mc_fc_help ? ? ? ? ? ? ? , cl_gui_alv_grid=>mc_fc_info ? ? ? ? ? , cl_gui_alv_grid=>mc_fc_load_variant ? ?, cl_gui_alv_grid=>mc_fc_html ? ? ? ? ? ? ? , cl_gui_alv_grid=>mc_fc_loc_move_row ? ? , cl_gui_alv_grid=>mc_fc_loc_append_row ? ? ?, cl_gui_alv_grid=>mc_fc_loc_paste ? ? ? ?, cl_gui_alv_grid=>mc_fc_loc_paste_new_row ?, cl_gui_alv_grid=>mc_fc_maintain_variant ? ? , cl_gui_alv_grid=>mc_fc_maximum ? ? ? ? ? ? , cl_gui_alv_grid=>mc_fc_minimum ? ? ? ? ? ?, cl_gui_alv_grid=>mc_fc_pc_file ? ? ? ? ? , cl_gui_alv_grid=>mc_fc_print ? ? ? ? ? ? ?, cl_gui_alv_grid=>mc_fc_print_back ? ? ? ? ? , cl_gui_alv_grid=>mc_fc_print_prev ? ? ? ?, cl_gui_alv_grid=>mc_fc_refresh ? ? ? ? ? ? , cl_gui_alv_grid=>mc_fc_reprep ? ? ? ? ? ?, cl_gui_alv_grid=>mc_fc_url_copy_to_clipboard , cl_gui_alv_grid=>mc_fc_send ? ? ? ? ? ? ?, cl_gui_alv_grid=>mc_fc_separator ? ? ? ? ? ?, ” ? ? ? ?CL_GUI_ALV_GRID=>MC_FC_SORT ? ? ? ? ? ? ? , ” ? ? ? CL_GUI_ALV_GRID=>MC_FC_SORT_ASC ? ? ? ? ?, ” ? ? ? ?CL_GUI_ALV_GRID=>MC_FC_SORT_DSC ? ? ? ? ? ?, cl_gui_alv_grid=>mc_fc_subtot ? ? ? ? ? ?, cl_gui_alv_grid=>mc_fc_sum ? ? ? ? ? ? ? ?, cl_gui_alv_grid=>mc_fc_to_office ? ? ? ? , cl_gui_alv_grid=>mc_fc_to_rep_tree ? ? ? , cl_gui_alv_grid=>mc_fc_unfix_columns ? ? ? , cl_gui_alv_grid=>mc_fc_views ? ? ? ? ? ? ? , cl_gui_alv_grid=>mc_fc_view_crystal ? ? ? , cl_gui_alv_grid=>mc_fc_view_excel ? ? ? ? ?, cl_gui_alv_grid=>mc_fc_view_grid ? ? ? ?, cl_gui_alv_grid=>mc_fc_word_processor ? ? ?. ” ? CL_GUI_ALV_GRID=>MC_MB_EXPORT ? ? ? ? ? ? ?. ENDFORM. ? ? ? ? ? ? ? ? ? ?” excluding_tb_function *&———————————————————————* *& ? ? ?Form ?EXCLUDING_TB_FUNCTION1 *&———————————————————————* * ? ? ? text *———————————————————————-* FORM excluding_tb_function1 . CLEAR: g_toolbar . REFRESH: g_toolbar . PERFORM append_alv_exclude_functions TABLES g_toolbar1 USING : cl_gui_alv_grid=>mc_fc_loc_undo ? ? ? ? ?, cl_gui_alv_grid=>mc_fc_auf ? ? ? ? ? ? ? ? , cl_gui_alv_grid=>mc_fc_average ? ? ? ? ? ?, ? ? ?”Mean Value cl_gui_alv_grid=>mc_fc_back_classic ? ? ? , cl_gui_alv_grid=>mc_fc_call_abc ? ? ? ? ? ?, cl_gui_alv_grid=>mc_fc_check ? ? ? ? ? ? ? , cl_gui_alv_grid=>mc_fc_call_chain ? ? ? ? , cl_gui_alv_grid=>mc_fc_call_crbatch ? ? ? ?, cl_gui_alv_grid=>mc_fc_call_crweb ? ? ? ? , cl_gui_alv_grid=>mc_fc_call_lineitems ? ? ?, cl_gui_alv_grid=>mc_fc_call_master_data ? , cl_gui_alv_grid=>mc_fc_call_more ? ? ? ? ?, cl_gui_alv_grid=>mc_fc_call_report ? ? ? ?, cl_gui_alv_grid=>mc_fc_call_xint ? ? ? ? ?, ” ? ? CL_GUI_ALV_GRID=>MC_FC_CALL_XXL ? ? ? ? ? ?,”導出EXCEL cl_gui_alv_grid=>mc_fc_col_invisible ? ? ?, cl_gui_alv_grid=>mc_fc_col_optimize ? ? ? , cl_gui_alv_grid=>mc_fc_count ? ? ? ? ? ? ? , cl_gui_alv_grid=>mc_fc_current_variant ? ?, cl_gui_alv_grid=>mc_fc_data_save ? ? ? ? ? ?, cl_gui_alv_grid=>mc_fc_delete_filter ? ? ? , cl_gui_alv_grid=>mc_fc_deselect_all ? ? ? ?, cl_gui_alv_grid=>mc_fc_detail ? ? ? ? ? , cl_gui_alv_grid=>mc_fc_expcrdata ? ? ? ? , cl_gui_alv_grid=>mc_fc_expcrdesig ? ? ? ? ?, cl_gui_alv_grid=>mc_fc_expcrtempl ? ? ? ?, cl_gui_alv_grid=>mc_fc_expmdb ? ? ? ? ? ?, cl_gui_alv_grid=>mc_fc_extend ? ? ? ? , cl_gui_alv_grid=>mc_fc_f4 ? ? ? ? ? ? ? ?, ” ? ? ? ? CL_GUI_ALV_GRID=>MC_FC_FILTER ? ? ? ? ? , ” ? ? ? ? ?CL_GUI_ALV_GRID=>MC_FC_FIND ? ? ? ? ? ? ?, ” ? ? ? ? CL_GUI_ALV_GRID=>MC_FC_FIX_COLUMNS ? ? ? ?, cl_gui_alv_grid=>mc_fc_graph ? ? ? ? ? ? ?, cl_gui_alv_grid=>mc_fc_help ? ? ? ? ? ? ? , cl_gui_alv_grid=>mc_fc_info ? ? ? ? ? , cl_gui_alv_grid=>mc_fc_load_variant ? ?, cl_gui_alv_grid=>mc_fc_html ? ? ? ? ? ? ? , cl_gui_alv_grid=>mc_fc_loc_move_row ? ? , cl_gui_alv_grid=>mc_fc_loc_append_row ? ? ?, cl_gui_alv_grid=>mc_fc_loc_paste ? ? ? ?, cl_gui_alv_grid=>mc_fc_loc_paste_new_row ?, cl_gui_alv_grid=>mc_fc_maintain_variant ? ? , cl_gui_alv_grid=>mc_fc_maximum ? ? ? ? ? ? , cl_gui_alv_grid=>mc_fc_minimum ? ? ? ? ? ?, cl_gui_alv_grid=>mc_fc_pc_file ? ? ? ? ? , cl_gui_alv_grid=>mc_fc_print ? ? ? ? ? ? ?, cl_gui_alv_grid=>mc_fc_print_back ? ? ? ? ? , cl_gui_alv_grid=>mc_fc_print_prev ? ? ? ?, cl_gui_alv_grid=>mc_fc_refresh ? ? ? ? ? ? , cl_gui_alv_grid=>mc_fc_reprep ? ? ? ? ? ?, cl_gui_alv_grid=>mc_fc_url_copy_to_clipboard , cl_gui_alv_grid=>mc_fc_send ? ? ? ? ? ? ?, cl_gui_alv_grid=>mc_fc_separator ? ? ? ? ? ?, ” ? ? ? ?CL_GUI_ALV_GRID=>MC_FC_SORT ? ? ? ? ? ? ? , ” ? ? ? CL_GUI_ALV_GRID=>MC_FC_SORT_ASC ? ? ? ? ?, ” ? ? ? ?CL_GUI_ALV_GRID=>MC_FC_SORT_DSC ? ? ? ? ? ?, cl_gui_alv_grid=>mc_fc_subtot ? ? ? ? ? ?, cl_gui_alv_grid=>mc_fc_sum ? ? ? ? ? ? ? ?, cl_gui_alv_grid=>mc_fc_to_office ? ? ? ? , cl_gui_alv_grid=>mc_fc_to_rep_tree ? ? ? , cl_gui_alv_grid=>mc_fc_unfix_columns ? ? ? , cl_gui_alv_grid=>mc_fc_views ? ? ? ? ? ? ? , cl_gui_alv_grid=>mc_fc_view_crystal ? ? ? , cl_gui_alv_grid=>mc_fc_view_excel ? ? ? ? ?, cl_gui_alv_grid=>mc_fc_view_grid ? ? ? ?, cl_gui_alv_grid=>mc_fc_word_processor ? ? ?. ” ? CL_GUI_ALV_GRID=>MC_MB_EXPORT ? ? ? ? ? ? ?. ENDFORM. ? ? ? ? ? ? ? ? ? ?” excluding_tb_function *&———————————————————————* *& ? ? ?Form ?append_alv_exclude_functions *&———————————————————————* * ? ? ? text *———————————————————————-* * ? ? ?–>PT_EXCLUDE text * ? ? ?–>P_VALUE ? ?text *———————————————————————-* FORM append_alv_exclude_functions TABLES pt_exclude TYPE ui_functions USING p_value ? ? TYPE ui_func. APPEND p_value TO pt_exclude. ENDFORM. ? ? ? ? ? ? ? ? ? ?” APPEND_ALV_EXCLUDE_FUNCTIONS *&———————————————————————* *& ? ? ?Form ?GETBS *&———————————————————————* * ? ? ? text *———————————————————————-* * ?–> ?p1 ? ? ? ?text * ?<– ?p2 ? ? ? ?text *———————————————————————-* FORM getbs . SELECT ?ukurs gdatu INTO CORRESPONDING FIELDS OF TABLE gt_bs FROM tcurr WHERE ?fcurr = ‘CNY’ AND tcurr = ‘KRW’ AND kurst = ‘M’ AND gdatu >= sy-datum ORDER BY gdatu ASCENDING. IF gt_bs[] IS NOT INITIAL. READ TABLE gt_bs INDEX 1. gv_bs = gt_bs-ukurs. gv_bs = ABS( gv_bs ). ENDIF. ENDFORM. ? ? ? ? ? ? ? ? ? ?” GETBS *&———————————————————————* *& ? ? ?Form ?PPSMARTFORMS_IS *&———————————————————————* * ? ? ? preview the is report *———————————————————————-* * ?–> ?p1 ? ? ? ?text * ?<– ?p2 ? ? ? ?text *———————————————————————-* FORM ppsmartforms_is . DATA:lv_dat TYPE zcte. CONCATENATE p_y ‘年 ?’ p_m ‘月’ INTO lv_dat. DATA lv_fm_name TYPE rs38l_fnam. DATA: ctrl_param TYPE ssfctrlop,”控制參數(shù) out_option TYPE ssfcompop.”控制選項 ctrl_param-preview = ‘X’. out_option-tddest = ‘LP01′. ctrl_param-no_dialog = ‘X’. IF gv_iden = ‘IS’. CALL FUNCTION ‘SSF_FUNCTION_MODULE_NAME’ EXPORTING formname = ‘Z_N207_IS1′ IMPORTING fm_name ?= lv_fm_name. IF sy-subrc <> 0. EXIT. ENDIF. CALL FUNCTION lv_fm_name EXPORTING control_parameters = ctrl_param output_options ? ? = out_option user_settings ? ? ?= space dates ? ? ? ? ? ? ?= lv_dat TABLES itab_is ? ? ? ? ? ?= gt_alv_is0[]. IF sy-subrc <> 0. ENDIF. ELSE. CALL FUNCTION ‘SSF_FUNCTION_MODULE_NAME’ EXPORTING formname = ‘Z_N207_BS’ IMPORTING fm_name ?= lv_fm_name. IF sy-subrc <> 0. EXIT. ENDIF. CALL FUNCTION lv_fm_name EXPORTING control_parameters = ctrl_param output_options ? ? = out_option user_settings ? ? ?= space date ? ? ? ? ? ? ? = lv_dat TABLES it_tab ? ? ? ? ? ? = gt_alv_bs0[]. IF sy-subrc <> 0. ENDIF. ENDIF. ENDFORM. ? ? ? ? ? ? ? ? ? ?” PPSMARTFORMS_IS *&———————————————————————* *& ? ? ?Form ?SETBSITEM *&———————————————————————* * ? ? ? text *———————————————————————-* * ?–> ?p1 ? ? ? ?text * ?<– ?p2 ? ? ? ?text *———————————————————————-* FORM setbsitem . SELECT * FROM zn207_bs_item INTO ?CORRESPONDING FIELDS OF TABLE gt_alv_bs0. ENDFORM. ? ? ? ? ? ? ? ? ? ?” SETBSITEM *&———————————————————————* *& ? ? ?Form ?GETBSAMT *&———————————————————————* * ? ? ? text *———————————————————————-* * ? ? ?–>P_YAMT ? ? ? ? ? text ? — ? 期末余額 * ? ? ?–>P_YSAMT ? ? ? ? ?text ? — ? 年初余額 * ? ? ?–>VALUE(P_ITEMID) ?text ? — *———————————————————————-* FORM getbsamt USING ?p_yamt p_ysamt value(p_itemid) value(ly). p_yamt = 0. p_ysamt = 0. PERFORM getaccrange USING p_itemid.”構造資產(chǎn)負債表項目編號下的科目范圍 CHECK gr_act[] IS NOT INITIAL. CASE p_rpv. WHEN ‘2070′.”不考慮利潤中心 “本年度截止到查詢月的發(fā)生額 SELECT SUM( hsl ) INTO ?p_yamt FROM faglflexa WHERE ryear = p_y AND rldnr = ‘0L’ AND racct IN gr_act AND rbukrs = ‘N207′ AND poper BETWEEN ‘001′ AND p_m AND pprctr = ”.”抵消內部交易’ “截止到去年的發(fā)生額 SELECT SUM( hsl ) INTO ?p_ysamt FROM faglflexa WHERE ryear LE ly AND rldnr = ‘0L’ AND racct IN gr_act AND rbukrs = ‘N207′ AND pprctr = ”.”抵消內部交易’ p_yamt = p_yamt + p_ysamt. WHEN ‘2071′ OR ‘2072′ OR ‘2073′.”自選利潤中心組,利潤中心可輸可不輸 IF p_pc <> ”.”有利潤中心的情況 “本年度截止到查詢月的發(fā)生額 SELECT SUM( hsl ) INTO ?p_yamt FROM faglflexa WHERE ryear = p_y AND rldnr = ‘0L’ AND racct IN gr_act AND rbukrs = ‘N207′ AND poper BETWEEN ‘001′ AND p_m AND prctr = p_pc.”抵消內部交易’ “截止到去年的發(fā)生額 SELECT SUM( hsl ) INTO ?p_ysamt FROM faglflexa WHERE ryear LE ly AND rldnr = ‘0L’ AND racct IN gr_act AND rbukrs = ‘N207′ AND prctr = p_pc. p_yamt = p_yamt + p_ysamt. ELSEIF p_pc IS INITIAL AND p_pcg IS NOT INITIAL.”利潤中心為空,選取所有的利潤中心 “本年度截止到查詢月的發(fā)生額 SELECT SUM( hsl ) INTO ?p_yamt FROM faglflexa WHERE ryear = p_y AND rldnr = ‘0L’ AND racct IN gr_act AND rbukrs = ‘N207′ AND poper BETWEEN ‘001′ AND p_m AND prctr IN ( SELECT valfrom ?FROM setleaf WHERE setname = p_pcg AND subclass = ‘N207′ AND setclass = ‘0106′ ). “截止到去年的發(fā)生額 SELECT SUM( hsl ) INTO ?p_ysamt FROM faglflexa WHERE ryear LE ly AND rldnr = ‘0L’ AND racct IN gr_act AND rbukrs = ‘N207′ AND prctr IN ( SELECT valfrom ?FROM setleaf WHERE setname = p_pcg AND subclass = ‘N207′ AND setclass = ‘0106′ ). p_yamt = p_yamt + p_ysamt. ENDIF. ENDCASE. ” p_yamt = ABS( p_yamt ).“取消轉正 ” p_ysamt = ABS( p_ysamt ). ENDFORM. ? ? ? ? ? ? ? ? ? ?”getisamt *&———————————————————————* *& ? ? ?Form ?getprofitamt *&———————————————————————* * ? ? ? 計算年結留存收益科目的未分配利潤 *———————————————————————-* * ? ? ?–>P_YAMT ? ? ? ? ? text * ? ? ?–>P_YSAMT ? ? ? ? ?text * ? ? ?–>VALUE(P_ITEMID) ?text * ? ? ?–>VALUE(LY) ? ? ? ?text *———————————————————————-* FORM getprofitamt USING ?p_yamt value(ly). p_yamt = 0. CASE p_rpv. WHEN ‘2070′.”不考慮利潤中心 “本年度截止到查詢月的發(fā)生額 SELECT SUM( hsl ) INTO ?p_yamt FROM faglflexa WHERE ryear = ly AND rldnr = ‘0L’ AND racct ?= ‘0000465201′ AND rbukrs = ‘N207′ AND pprctr = ”.”抵消內部交易’ WHEN ‘2071′ OR ‘2072′ OR ‘2073′.”自選利潤中心組,利潤中心可輸可不輸 IF p_pc <> ”.”有利潤中心的情況 SELECT SUM( hsl ) INTO ?p_yamt FROM faglflexa WHERE ryear = ly AND rldnr = ‘0L’ AND racct ?= ‘0000465201′ AND rbukrs = ‘N207′ AND prctr = p_pc. ELSEIF p_pc IS INITIAL AND p_pcg IS NOT INITIAL.”利潤中心為空,選取所有的利潤中心 “本年度截止到查詢月的發(fā)生額 SELECT SUM( hsl ) INTO ?p_yamt FROM faglflexa WHERE ryear = ly AND rldnr = ‘0L’ AND racct ?= ‘0000465201′ AND rbukrs = ‘N207′ AND prctr IN ( SELECT valfrom ?FROM setleaf WHERE setname = p_pcg AND subclass = ‘N207′ AND setclass = ‘0106′ ). ENDIF. ENDCASE. p_yamt = ( -1 ) * p_yamt. ENDFORM. ? ? ? ? ? ? ? ? ? ?”getisamt *&———————————————————————* *& ? ? ?Form ?SETCON *&———————————————————————* * ? ? ? set container for alv *———————————————————————-* * ?–> ?p1 ? ? ? ?text * ?<– ?p2 ? ? ? ?text *———————————————————————-* FORM setcon . CREATE OBJECT gs_con EXPORTING container_name = ‘CON’. CREATE OBJECT gs_dyndoc_id EXPORTING style = ‘ALV_GRID’. CREATE OBJECT gs_splitter ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? “分割為1到5行 EXPORTING parent ?= gs_con rows ? ?= 2 columns = 1. CALL METHOD gs_splitter->get_container”獲取第一行給GS_PARENT_HTML EXPORTING row ? ? ? = 1 column ? ?= 1 RECEIVING container = gs_parent_html. CALL METHOD gs_splitter->get_container EXPORTING row ? ? ? = 2 column ? ?= 1 RECEIVING container = gs_parent_grid. CALL METHOD gs_splitter->set_row_height EXPORTING id ? ? = 1 height = 20. IF gv_iden = ‘IS’. IF gs_alv_is IS INITIAL. CREATE OBJECT gs_alv_is EXPORTING i_parent = gs_parent_grid. ENDIF. ELSEIF gv_iden = ‘BS’. IF gs_alv_bs IS INITIAL. CREATE OBJECT gs_alv_bs EXPORTING i_parent = gs_parent_grid. ENDIF. ENDIF. ENDFORM. ? ? ? ? ? ? ? ? ? ?” SETCON *&———————————————————————* *& ? ? ?Form ?SETCON1 *&———————————————————————* * ? ? ? text *———————————————————————-* FORM setcon1 . CREATE OBJECT gs_con1 EXPORTING container_name = ‘CON1′. CREATE OBJECT gs_dyndoc_id1 EXPORTING style = ‘ALV_GRID’. CREATE OBJECT gs_splitter1 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?”分割為1到5行 EXPORTING parent ?= gs_con1 rows ? ?= 1 columns = 1. * ?CALL METHOD GS_SPLITTER1->GET_CONTAINER”獲取第一行給GS_PARENT_HTML * ? ?EXPORTING * ? ? ?ROW ? ? ? = 1 * ? ? ?COLUMN ? ?= 1 * ? ?RECEIVING * ? ? ?CONTAINER = GS_PARENT_HTML1. CALL METHOD gs_splitter1->get_container EXPORTING row ? ? ? = 1 column ? ?= 1 RECEIVING container = gs_parent_grid1. ENDFORM. ? ? ? ? ? ? ? ? ? ?” SETCON *&———————————————————————* *& ? ? ?Form ?DISPLAYBS *&———————————————————————* * ? ? ? text *———————————————————————-* * ?–> ?p1 ? ? ? ?text * ?<– ?p2 ? ? ? ?text *———————————————————————-* FORM displaybs . PERFORM setlayout . PERFORM buildfieldcat_bs. PERFORM excluding_tb_function. ENDFORM. ? ? ? ? ? ? ? ? ? ?” DISPLAYBS *&———————————————————————* *& ? ? ?Form ?BUILDFIELDCAT_BS *&———————————————————————* * ? ? ? text *———————————————————————-* * ?–> ?p1 ? ? ? ?text * ?<– ?p2 ? ? ? ?text *———————————————————————-* FORM buildfieldcat_bs . CLEAR gt_fieldcat[]. PERFORM fill_field_category USING : ‘S’ ‘TABNAME’ ? ‘GT_ALV_BS0′ , ” ?’SCRTEXT_M’ ‘行次’ , ” ?’OUTPUTLEN’ ‘20′ , ” ?’KEY’ ? ? ? ‘X’, ” ?’COL_POS’ ? ‘2′, ‘E’ ‘FIELDNAME’ ‘LCT1′ , ‘S’ ‘TABNAME’ ? ‘GT_ALV_BS0′ , ” ?’SCRTEXT_M’ ‘資產(chǎn)’ , ” ?’OUTPUTLEN’ ‘20′ , ” ?’COL_POS’ ? ‘1′, ‘E’ ‘FIELDNAME’ ‘ITEM1′ , ‘S’ ‘TABNAME’ ? ‘GT_ALV_BS0′ , ” ?’SCRTEXT_M’ ‘期末余額’ , ” ?’OUTPUTLEN’ ‘20′ , ” ?’HOTSPOT’ ? ‘X’, ” ?’COL_POS’ ? ‘3′, ‘E’ ‘FIELDNAME’ ‘YAMT1′ , ‘S’ ‘TABNAME’ ? ‘GT_ALV_BS0′ , ” ?’SCRTEXT_M’ ‘年初余額’ , ” ?’OUTPUTLEN’ ‘20′ , ” ?’COL_POS’ ? ‘4′, ‘E’ ‘FIELDNAME’ ‘YSAMT1′ , ‘S’ ‘TABNAME’ ? ‘GT_ALV_BS0′ , ” ?’SCRTEXT_M’ ‘行次’ , ” ?’OUTPUTLEN’ ‘20′ , ” ?’KEY’ ? ? ? ‘X’, ” ?’COL_POS’ ? ‘6′, ‘E’ ‘FIELDNAME’ ‘LCT2′ , ‘S’ ‘TABNAME’ ? ‘GT_ALV_BS0′ , ” ?’SCRTEXT_M’ ‘負債和所有者權益(或股東權益)’ , ” ?’OUTPUTLEN’ ‘20′ , ” ?’COL_POS’ ? ‘5′, ‘E’ ‘FIELDNAME’ ‘ITEM2′ , ‘S’ ‘TABNAME’ ? ‘GT_ALV_BS0′ , ” ?’SCRTEXT_M’ ‘期末余額’ , ” ?’COL_POS’ ? ‘7′, ” ?’HOTSPOT’ ? ‘X’, ” ?’OUTPUTLEN’ ‘20′ , ‘E’ ‘FIELDNAME’ ‘YAMT2′ , ‘S’ ‘TABNAME’ ? ‘GT_ALV_BS0′ , ” ?’SCRTEXT_M’ ‘年初余額’ , ” ?’OUTPUTLEN’ ‘20′ , ” ?’COL_POS’ ? ‘8′, ‘E’ ‘FIELDNAME’ ‘YSAMT2′ . ENDFORM. ? ? ? ? ? ? ? ? ? ?” BUILDFIELDCAT_BS *&———————————————————————* *& ? ? ?Form ?PRINT *&———————————————————————* * ? ? ? text *———————————————————————-* * ?–> ?p1 ? ? ? ?text * ?<– ?p2 ? ? ? ?text *———————————————————————-* FORM print . DATA:lv_dat TYPE zcte. CONCATENATE p_y ‘年 ?’ p_m ‘月’ INTO lv_dat. DATA lv_fm_name TYPE rs38l_fnam.”定義一個rs38l_fnam類型的變量存儲功能模塊名 IF gv_iden = ‘BS’. CALL FUNCTION ‘SSF_FUNCTION_MODULE_NAME’ EXPORTING”輸入?yún)?shù),傳遞SmartForms名子 formname = ‘Z_N207_BS’ IMPORTING:”輸出參數(shù),返回SmartForms激活時生成的功能模塊名 fm_name ?= lv_fm_name. IF sy-subrc <> 0. EXIT. ENDIF. CALL FUNCTION lv_fm_name EXPORTING date ? = lv_dat TABLES it_tab = gt_alv_bs0[]. ELSE. CALL FUNCTION ‘SSF_FUNCTION_MODULE_NAME’ EXPORTING”輸入?yún)?shù),傳遞SmartForms名子 formname = ‘Z_N207_IS1′ IMPORTING:”輸出參數(shù),返回SmartForms激活時生成的功能模塊名 fm_name ?= lv_fm_name. IF sy-subrc <> 0. EXIT. ENDIF. CALL FUNCTION lv_fm_name EXPORTING dates ? = lv_dat TABLES itab_is = gt_alv_is0[]. ENDIF. ENDFORM. ? ? ? ? ? ? ? ? ? ?” PRINT *&———————————————————————* *& ? ? ?Form ?DRILLDOWNIS1 *&———————————————————————* * ? ? ? 獲取利潤表和資產(chǎn)負債表中本期金額的詳細信息 *———————————————————————-* * ? ? ?–>P_E_ROW_ID ?text * ? ? ?–>P_E_COLUMN_ID ?text * ? ? ?–>P_ES_ROW_NO ?text *———————————————————————-* FORM drilldownis1 ?USING ? ?p_e_row_id p_e_column_id TYPE lvc_s_col p_es_row_no TYPE lvc_s_roid. IF gv_iden = ‘IS’. CLEAR gt_alv_is_dp1[]. CASE ?p_es_row_no-row_id. WHEN 1. PERFORM getisdpdata USING ‘6001′ p_es_row_no-row_id. APPEND LINES OF gt_alv_is_dp1 TO gt_alv_is_dp2. PERFORM getisdpdata USING ‘6100′ p_es_row_no-row_id. APPEND LINES OF gt_alv_is_dp2 TO gt_alv_is_dp1. SORT gt_alv_is_dp1 BY racct ASCENDING. CLEAR gt_alv_is_dp2[]. WHEN 2. PERFORM getisdpdata USING ‘6400′ p_es_row_no-row_id. APPEND LINES OF gt_alv_is_dp1 TO gt_alv_is_dp2. PERFORM getisdpdata USING ‘6500′ p_es_row_no-row_id. APPEND LINES OF gt_alv_is_dp2 TO gt_alv_is_dp1. CLEAR gt_alv_is_dp2[]. APPEND LINES OF gt_alv_is_dp1 TO gt_alv_is_dp2. PERFORM getisdpdata USING ‘6610′ p_es_row_no-row_id. APPEND LINES OF gt_alv_is_dp2 TO gt_alv_is_dp1. SORT gt_alv_is_dp1 BY racct ASCENDING. CLEAR gt_alv_is_dp2[]. WHEN 3. PERFORM getisdpdata USING ‘6450′ p_es_row_no-row_id. WHEN 4. PERFORM getisdpdata USING ‘6600′ p_es_row_no-row_id. WHEN 5. PERFORM getisdpdata USING ‘6600′ p_es_row_no-row_id. WHEN 6. PERFORM getisdpdata USING ‘6620′ p_es_row_no-row_id. WHEN 7. PERFORM getisdpdata USING ‘6630′ p_es_row_no-row_id. WHEN 8. PERFORM getisdpdata USING ‘6640′ p_es_row_no-row_id. WHEN 9. PERFORM getisdpdata USING ‘6645′ p_es_row_no-row_id. WHEN 12. PERFORM getisdpdata USING ‘6301′ p_es_row_no-row_id. WHEN 13. PERFORM getisdpdata USING ‘6711′ p_es_row_no-row_id. WHEN 14. PERFORM getisdpdata USING ‘0000′ p_es_row_no-row_id. WHEN 15. PERFORM getisdpdata USING ‘6901′ p_es_row_no-row_id. WHEN 17. PERFORM getisdpdata USING ‘6801′ p_es_row_no-row_id. ENDCASE. * –>2012.01.16 CCYU START IF gt_alv_is_dp1[] IS NOT INITIAL. SELECT saknr txt50 FROM skat INTO CORRESPONDING FIELDS OF TABLE gt_skat FOR ALL ENTRIES IN gt_alv_is_dp1 WHERE saknr = gt_alv_is_dp1-racct AND spras = ‘1′ AND ktopl = ‘SKGC’. ENDIF. SORT gt_alv_is_dp1 BY racct. SORT gt_skat BY saknr. LOOP AT gt_alv_is_dp1. READ TABLE gt_skat WITH KEY saknr = gt_alv_is_dp1-racct. IF sy-subrc = 0. gt_alv_is_dp1-txt50 = gt_skat-txt50. ENDIF. MODIFY gt_alv_is_dp1. ENDLOOP. * <–2012.01.16 CCYU END. LOOP AT gt_alv_is_dp1. CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_OUTPUT’ EXPORTING input ?= gt_alv_is_dp1-racct IMPORTING output = gt_alv_is_dp1-racct. MODIFY ?gt_alv_is_dp1. ENDLOOP. IF p_es_row_no-row_id = 10 OR p_es_row_no-row_id = 11 OR p_es_row_no-row_id = 16 OR p_es_row_no-row_id = 18 OR p_es_row_no-row_id = 19 OR p_es_row_no-row_id = 20 OR p_es_row_no-row_id = 21. ELSE. CALL SCREEN ‘0300′ STARTING AT 10 10 ENDING AT 65 25. ENDIF. ELSE.”資產(chǎn)負債表的下鉆報表 CLEAR gt_alv_bs_dp1[]. CLEAR gt_alv_bs_dp2[]. DATA:p_tran(1) VALUE ‘0′. CASE ?p_es_row_no-row_id.”選中行的行號 WHEN 2. IF p_e_column_id-fieldname = ‘YAMT1′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘1000′. ELSEIF p_e_column_id-fieldname = ‘YAMT2′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘2001′. ENDIF. p_tran = ‘1′. WHEN 3. IF p_e_column_id-fieldname = ‘YAMT1′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘1101′. ELSEIF p_e_column_id-fieldname = ‘YAMT2′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘2010′. ENDIF. p_tran = ‘1′. WHEN 4. IF p_e_column_id-fieldname = ‘YAMT1′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘1121′. ELSEIF p_e_column_id-fieldname = ‘YAMT2′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘2201′. ENDIF. p_tran = ‘1′. WHEN 5. IF p_e_column_id-fieldname = ‘YAMT1′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘1122′. ELSEIF p_e_column_id-fieldname = ‘YAMT2′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘2202′. ENDIF. p_tran = ‘1′. WHEN 6. IF p_e_column_id-fieldname = ‘YAMT1′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘1123′. ELSEIF p_e_column_id-fieldname = ‘YAMT2′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘2203′. ENDIF. p_tran = ‘1′. WHEN 7. IF p_e_column_id-fieldname = ‘YAMT1′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘1132′. ELSEIF p_e_column_id-fieldname = ‘YAMT2′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘2211′. ENDIF. p_tran = ‘1′. WHEN 8. IF p_e_column_id-fieldname = ‘YAMT1′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘1131′. ELSEIF p_e_column_id-fieldname = ‘YAMT2′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘2221′. ENDIF. p_tran = ‘1′. WHEN 9. IF p_e_column_id-fieldname = ‘YAMT1′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘1221′. ELSEIF p_e_column_id-fieldname = ‘YAMT2′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘2231′. ENDIF. p_tran = ‘1′. WHEN 10. IF p_e_column_id-fieldname = ‘YAMT1′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘1400′. ELSEIF p_e_column_id-fieldname = ‘YAMT2′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘2232′. ENDIF. p_tran = ‘1′. WHEN 11. IF p_e_column_id-fieldname = ‘YAMT1′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘1507′. ELSEIF p_e_column_id-fieldname = ‘YAMT2′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘2241′. ENDIF. p_tran = ‘1′. WHEN 12. IF p_e_column_id-fieldname = ‘YAMT1′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘1499′. ELSEIF p_e_column_id-fieldname = ‘YAMT2′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘2240′. ENDIF. p_tran = ‘1′. WHEN 13. IF p_e_column_id-fieldname = ‘YAMT2′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘2222′. p_tran = ‘1′. ENDIF. WHEN 15. IF p_e_column_id-fieldname = ‘YAMT1′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘1503′. p_tran = ‘1′. ENDIF. WHEN 16. IF p_e_column_id-fieldname = ‘YAMT1′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘1501′. ELSEIF p_e_column_id-fieldname = ‘YAMT2′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘2501′. ENDIF. p_tran = ‘1′. WHEN 17. IF p_e_column_id-fieldname = ‘YAMT1′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘1504′. ELSEIF p_e_column_id-fieldname = ‘YAMT2′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘2502′. ENDIF. p_tran = ‘1′. WHEN 18. IF p_e_column_id-fieldname = ‘YAMT1′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘1511′. ELSEIF p_e_column_id-fieldname = ‘YAMT2′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘2701′. ENDIF. p_tran = ‘1′. WHEN 19. IF p_e_column_id-fieldname = ‘YAMT1′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘1521′. ELSEIF p_e_column_id-fieldname = ‘YAMT2′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘2711′. ENDIF. p_tran = ‘1′. WHEN 20. IF p_e_column_id-fieldname = ‘YAMT2′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘2801′. p_tran = ‘1′. ENDIF. WHEN 21. IF p_e_column_id-fieldname = ‘YAMT1′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘1604′. ELSEIF p_e_column_id-fieldname = ‘YAMT2′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘2901′. ENDIF. p_tran = ‘1′. WHEN 22. IF p_e_column_id-fieldname = ‘YAMT1′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘1605′. ELSEIF p_e_column_id-fieldname = ‘YAMT2′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘2000′. ENDIF. p_tran = ‘1′. WHEN 23. IF p_e_column_id-fieldname = ‘YAMT1′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘1606′. p_tran = ‘1′. ENDIF. WHEN 26. IF p_e_column_id-fieldname = ‘YAMT1′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘1701′. p_tran = ‘1′. ENDIF. WHEN 27. IF p_e_column_id-fieldname = ‘YAMT1′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘1710′. ELSEIF p_e_column_id-fieldname = ‘YAMT2′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘4002′. ENDIF. p_tran = ‘1′. WHEN 28. IF p_e_column_id-fieldname = ‘YAMT1′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘1711′. p_tran = ‘1′. ENDIF. WHEN 29. IF p_e_column_id-fieldname = ‘YAMT1′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘1801′. ELSEIF p_e_column_id-fieldname = ‘YAMT2′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘4101′. ENDIF. p_tran = ‘1′. WHEN 30. IF p_e_column_id-fieldname = ‘YAMT1′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘1811′. p_tran = ‘1′. ENDIF. WHEN 31. IF p_e_column_id-fieldname = ‘YAMT1′. PERFORM getbsdp TABLES gt_alv_bs_dp1 USING ‘1901′. p_tran = ‘1′. ENDIF. ENDCASE. * –>2012.01.16 CCYU START IF gt_alv_bs_dp1[] IS NOT INITIAL. CLEAR gt_skat[]. SELECT saknr txt50 FROM skat INTO CORRESPONDING FIELDS OF TABLE gt_skat FOR ALL ENTRIES IN gt_alv_bs_dp1 WHERE saknr = gt_alv_bs_dp1-racct AND spras = ‘1′ AND ktopl = ‘SKGC’. ENDIF. SORT gt_alv_bs_dp1 BY racct. SORT gt_skat BY saknr. LOOP AT gt_alv_bs_dp1. READ TABLE gt_skat WITH KEY saknr = gt_alv_bs_dp1-racct. IF sy-subrc = 0. gt_alv_bs_dp1-txt50 = gt_skat-txt50. ENDIF. MODIFY gt_alv_bs_dp1. ENDLOOP. * <–2012.01.16 CCYU END. LOOP AT gt_alv_bs_dp1.”去除科目編號的前導零 CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_OUTPUT’ EXPORTING input ?= gt_alv_bs_dp1-racct IMPORTING output = gt_alv_bs_dp1-racct. MODIFY ?gt_alv_bs_dp1. ENDLOOP. IF p_tran = ‘1′. CALL SCREEN ‘0400′ STARTING AT 10 10 ENDING AT 65 25. ENDIF. ENDIF. ENDFORM. ? ? ? ? ? ? ? ? ? ?” DRILLDOWNIS1 *&———————————————————————* *& ? ? ?Form ?GETACCRANGE *&———————————————————————* * ? ? ? 獲取報表版本下的科目范圍 *———————————————————————-* * ?–> ?p1 ? ? ? ?text * ?<– ?p2 ? ? ? ?text *———————————————————————-* FORM getaccrange USING p_itemid. CLEAR gr_act[]. LOOP AT gt_fagl_011zc WHERE ergsl = p_itemid. gr_act-sign = ‘I’. gr_act-low = gt_fagl_011zc-vonkt. gr_act-high = gt_fagl_011zc-biskt. gr_act-option = ‘BT’. CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_INPUT’ EXPORTING input ?= gr_act-low IMPORTING output = gr_act-low. CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_INPUT’ EXPORTING input ?= gr_act-high IMPORTING output = gr_act-high. APPEND gr_act. ENDLOOP. ENDFORM. ? ? ? ? ? ? ? ? ? ?” GETACCRANGE *&———————————————————————* *& ? ? ?Form ?GETISAMT *&———————————————————————* * ? ? ? 獲取利潤表下鉆的報表數(shù)據(jù) *———————————————————————-* * ? ? ?–>P_YAMT ? ? ? ? ? text * ? ? ?–>P_MAMT ? ? ? ? ? text * ? ? ?–>VALUE(P_ITEMID) ?text * ? ? ?–>VALUE(P_ID) ? ? ?text *———————————————————————-* FORM getisdpdata USING value(p_itemid) value(p_id). CLEAR gt_alv_is_dp1[]. “構造科目查詢范圍的查詢條件 PERFORM getaccrange USING p_itemid. CHECK gr_act[] IS NOT INITIAL. CASE p_rpv. WHEN ‘2070′.”不考慮利潤中心 IF p_id = 4.”6600取功能范圍1200 SELECT racct AS racct SUM( hsl ) AS hsl FROM faglflexa INTO CORRESPONDING FIELDS OF TABLE gt_alv_is_dp1 WHERE ryear = p_y AND poper = p_m AND rldnr = ‘0L’ AND racct IN gr_act AND pprctr = ””抵消內部交易 AND rfarea = ‘1200′ AND rbukrs = ‘N207′ GROUP BY racct ORDER BY racct ASCENDING. ELSEIF p_id = 5.”6600取功能范圍1300 SELECT racct AS racct SUM( hsl ) AS hsl FROM faglflexa INTO CORRESPONDING FIELDS OF TABLE gt_alv_is_dp1 WHERE ryear = p_y AND poper = p_m AND rldnr = ‘0L’ AND racct IN gr_act AND pprctr = ””抵消內部交易 AND rbukrs = ‘N207′ AND rfarea = ‘1300′ GROUP BY racct ORDER BY racct ASCENDING. ELSEIF p_id = 14.”按照科目進行取數(shù) SELECT racct AS racct SUM( hsl ) AS hsl FROM faglflexa INTO CORRESPONDING FIELDS OF TABLE gt_alv_is_dp1 WHERE ryear = p_y AND poper = p_m AND rbukrs = ‘N207′ AND rldnr = ‘0L’ AND racct BETWEEN ‘962101′ AND ‘962201′ AND pprctr = ””抵消內部交易 GROUP BY racct ORDER BY racct ASCENDING. ELSE.”正常取 SELECT racct AS racct SUM( hsl ) AS hsl FROM faglflexa INTO CORRESPONDING FIELDS OF TABLE gt_alv_is_dp1 WHERE ryear = p_y AND poper = p_m AND rldnr = ‘0L’ AND rbukrs = ‘N207′ AND racct IN gr_act AND pprctr = ””抵消內部交易 GROUP BY racct ORDER BY racct ASCENDING. ENDIF. WHEN ‘2071′ OR ‘2072′ OR ‘2073′.”自選利潤中心組,利潤中心可輸可不輸 IF p_pc <> ”. IF p_id = 4.”6600取功能范圍1200 SELECT racct AS racct SUM( hsl ) AS hsl FROM faglflexa INTO CORRESPONDING FIELDS OF TABLE gt_alv_is_dp1 WHERE ryear = p_y AND poper = p_m AND rldnr = ‘0L’ AND racct IN gr_act AND rbukrs = ‘N207′ AND prctr = p_pc AND rfarea = ‘1200′ GROUP BY racct ORDER BY racct ASCENDING. ELSEIF p_id = 5.”6600取功能范圍1300 SELECT racct AS racct SUM( hsl ) AS hsl FROM faglflexa INTO CORRESPONDING FIELDS OF TABLE gt_alv_is_dp1 WHERE ryear = p_y AND poper = p_m AND rldnr = ‘0L’ AND racct IN gr_act AND rbukrs = ‘N207′ AND prctr = p_pc AND rfarea = ‘1300′ GROUP BY racct ORDER BY racct ASCENDING. ELSEIF p_id = 14.”按照科目進行取數(shù) SELECT racct AS racct SUM( hsl ) AS hsl FROM faglflexa INTO CORRESPONDING FIELDS OF TABLE gt_alv_is_dp1 WHERE ryear = p_y AND poper = p_m AND rldnr = ‘0L’ AND racct BETWEEN ‘962101′ AND ‘962201′ AND prctr = p_pc AND rbukrs = ‘N207′ GROUP BY racct ORDER BY racct ASCENDING. ELSE.”正常取 SELECT racct AS racct SUM( hsl ) AS hsl FROM faglflexa INTO CORRESPONDING FIELDS OF TABLE gt_alv_is_dp1 WHERE ryear = p_y AND poper = p_m AND rldnr = ‘0L’ AND racct IN gr_act AND rbukrs = ‘N207′ AND prctr = p_pc GROUP BY racct ORDER BY racct ASCENDING. ENDIF. ELSEIF p_pc = ”.”利潤中心為空,選取所有的利潤中心 IF p_id = 4.”6600取功能范圍1200 SELECT racct AS racct SUM( hsl ) AS hsl FROM faglflexa INTO CORRESPONDING FIELDS OF TABLE gt_alv_is_dp1 WHERE ryear = p_y AND poper = p_m AND rldnr = ‘0L’ AND rbukrs = ‘N207′ AND racct IN gr_act AND prctr IN ( SELECT valfrom ?FROM setleaf WHERE setname = p_pcg AND subclass = ‘N207′ AND setclass = ‘0106′) AND rfarea = ‘1200′ GROUP BY racct ORDER BY racct ASCENDING. ELSEIF p_id = 5.”6600取功能范圍1300 SELECT racct AS racct SUM( hsl ) AS hsl FROM faglflexa INTO CORRESPONDING FIELDS OF TABLE gt_alv_is_dp1 WHERE ryear = p_y AND poper = p_m AND rldnr = ‘0L’ AND rbukrs = ‘N207′ AND racct IN gr_act AND prctr IN ( SELECT valfrom ?FROM setleaf WHERE setname = p_pcg AND subclass = ‘N207′ AND setclass = ‘0106′) AND rfarea = ‘1300′ GROUP BY racct ORDER BY racct ASCENDING. ELSEIF p_id = 14.”按照科目進行取數(shù) SELECT racct AS racct SUM( hsl ) AS hsl FROM faglflexa INTO CORRESPONDING FIELDS OF TABLE gt_alv_is_dp1 WHERE ryear = p_y AND poper = p_m AND rldnr = ‘0L’ AND rbukrs = ‘N207′ AND racct BETWEEN ‘962101′ AND ‘962201′ AND prctr IN ( SELECT valfrom ?FROM setleaf WHERE setname = p_pcg AND subclass = ‘N207′ AND setclass = ‘0106′) GROUP BY racct ORDER BY racct ASCENDING. ELSE.”正常取 SELECT racct AS racct SUM( hsl ) AS hsl FROM faglflexa INTO CORRESPONDING FIELDS OF TABLE gt_alv_is_dp1 WHERE ryear = p_y AND poper = p_m AND rbukrs = ‘N207′ AND rldnr = ‘0L’ AND racct IN gr_act AND prctr IN ( SELECT valfrom ?FROM setleaf WHERE setname = p_pcg ) GROUP BY racct ORDER BY racct ASCENDING. ENDIF. ENDIF. ENDCASE. ENDFORM. ? ? ? ? ? ? ? ? ? ?”getisamt *&———————————————————————* *& ? ? ?Form ?DISPLAYISDP *&———————————————————————* * ? ? ? text *———————————————————————-* * ?–> ?p1 ? ? ? ?text * ?<– ?p2 ? ? ? ?text *———————————————————————-* FORM displayisdp . PERFORM setlayoutisdp. PERFORM buildfieldcat_isdp. PERFORM excluding_tb_function1. ENDFORM. ? ? ? ? ? ? ? ? ? ?” DISPLAYISDP *&———————————————————————* *& ? ? ?Form ?DISPLAYBSDP *&———————————————————————* * ? ? ? text *———————————————————————-* FORM displaybsdp . PERFORM setlayoutisdp. PERFORM buildfieldcat_bsdp. PERFORM excluding_tb_function1. ENDFORM. ? ? ? ? ? ? ? ? ? ?” DISPLAYISDP *&———————————————————————* *& ? ? ?Form ?SETLAYOUTISDP *&———————————————————————* * ? ? ? SET THE LAYOUT *———————————————————————-* * ?–> ?p1 ? ? ? ?text * ?<– ?p2 ? ? ? ?text *———————————————————————-* FORM setlayoutisdp . CLEAR gs_layout. gs_layout-cwidth_opt = ‘X’ . gs_layout-zebra = ‘X’ . gs_layout-sel_mode = ‘A’. gs_layout-numc_total = ‘X’. ENDFORM. ? ? ? ? ? ? ? ? ? ?” SETLAYOUTISDP *&———————————————————————* *& ? ? ?Form ?BUILDFIELDCAT_ISDP *&———————————————————————* * ? ? ? text *———————————————————————-* * ?–> ?p1 ? ? ? ?text * ?<– ?p2 ? ? ? ?text *———————————————————————-* FORM buildfieldcat_isdp . CLEAR gt_fieldcat[]. PERFORM fill_field_category USING : ‘S’ ‘TABNAME’ ? ‘GT_ALV_IS_DP1′ , ” ?’SCRTEXT_M’ ‘科目’ , ” ?’KEY’ ? ? ? ‘X’, ” ?’COL_POS’ ? ‘1′, ‘E’ ‘FIELDNAME’ ‘RACCT’ , * –>2012.01.16 CCYU START ‘S’ ‘TABNAME’ ? ‘GT_ALV_IS_DP1′ , ” ?’SCRTEXT_M’ ‘科目描述’ , ” ?’KEY’ ? ? ? ‘X’, ” ?’OUTPUTLEN’ ‘20′, ” ?’COL_POS’ ? ‘2′, ‘E’ ‘FIELDNAME’ ‘TXT50′ , * <–2012.01.16 CCYU END. ‘S’ ‘TABNAME’ ? ‘GT_ALV_IS_DP1′ , ” ?’SCRTEXT_M’ ‘金額’ , ” ?’COL_POS’ ? ‘3′, ” ?’DO_SUM’ ? ?’X’, ‘E’ ‘FIELDNAME’ ‘HSL’ . ENDFORM. ? ? ? ? ? ? ? ? ? ?” BUILDFIELDCAT_ISDP *&———————————————————————* *& ? ? ?Form ?GETBSDP *&———————————————————————* * ? ? ? 獲取資產(chǎn)負債表的下鉆信息 *———————————————————————-* * ? ? ?–>P_YAMT ? ? ? ? ? text * ? ? ?–>P_YSAMT ? ? ? ? ?text * ? ? ?–>VALUE(P_ITEMID) ?text *———————————————————————-* FORM getbsdp TABLES p_gt_alv_bs_dp1 TYPE gt_alv_bs_dp”tables參數(shù)是輸入輸出參數(shù) USING ?value(p_itemid). “構造科目查詢范圍的查詢條件 CLEAR gt_alv_bs_dp2[]. CLEAR p_gt_alv_bs_dp1[]. PERFORM getaccrange USING p_itemid. CHECK gr_act[] IS NOT INITIAL. DATA ly TYPE n LENGTH 4. ly = p_y - 1. CASE p_rpv. WHEN ‘2070′.”不考慮利潤中心 SELECT racct hsl FROM faglflexa INTO CORRESPONDING FIELDS OF TABLE gt_alv_bs_dp2 WHERE ( ( ryear = p_y AND poper BETWEEN ‘01′ AND p_m ) OR ( ryear LE ly ) ) AND rldnr = ‘0L’ AND rbukrs = ‘N207′ AND racct IN gr_act AND pprctr = ”.”抵消內部交易. WHEN ‘2071′ OR ‘2072′ OR ‘2073′.”自選利潤中心組,利潤中心可輸可不輸 IF p_pc <> ”.”有利潤中心的情況 SELECT racct hsl FROM faglflexa INTO CORRESPONDING FIELDS OF TABLE gt_alv_bs_dp2 WHERE ( ( ryear = p_y AND poper BETWEEN ‘01′ AND p_m ) OR ( ryear LE ly ) ) AND rldnr = ‘0L’ AND rbukrs = ‘N207′ AND racct IN gr_act AND prctr = p_pc. ELSEIF p_pc = ”.”利潤中心為空,選取利潤中心組下的利潤中心 SELECT racct hsl FROM faglflexa INTO CORRESPONDING FIELDS OF TABLE gt_alv_bs_dp2 WHERE ( ( ryear = p_y AND poper BETWEEN ‘01′ AND p_m ) OR ( ryear LE ly ) ) AND rldnr = ‘0L’ AND rbukrs = ‘N207′ AND racct IN gr_act AND prctr IN ( SELECT valfrom ?FROM setleaf WHERE setname = p_pcg AND subclass = ‘N207′ AND setclass = ‘0106′). ENDIF. ENDCASE. LOOP AT gt_alv_bs_dp2.”利用collect進行合計 MOVE-CORRESPONDING gt_alv_bs_dp2 TO gs_alv_bs_dp_obj1. COLLECT gs_alv_bs_dp_obj1 INTO p_gt_alv_bs_dp1. ENDLOOP. SORT p_gt_alv_bs_dp1 BY racct ASCENDING. ENDFORM. ? ? ? ? ? ? ? ? ? ?”getisamt *&———————————————————————* *& ? ? ?Form ?BUILDFIELDCAT_BSDP *&———————————————————————* * ? ? ? text *———————————————————————-* * ?–> ?p1 ? ? ? ?text * ?<– ?p2 ? ? ? ?text *———————————————————————-* FORM buildfieldcat_bsdp . CLEAR gt_fieldcat[]. PERFORM fill_field_category USING : ‘S’ ‘TABNAME’ ? ‘GT_ALV_BS_DP1′ , ” ?’SCRTEXT_M’ ‘科目’ , ” ?’KEY’ ? ? ? ‘X’, ” ?’COL_POS’ ? ‘1′, ‘E’ ‘FIELDNAME’ ‘RACCT’ , * –>2012.01.16 CCYU START ‘S’ ‘TABNAME’ ? ‘GT_ALV_BS_DP1′ , ” ?’SCRTEXT_M’ ‘科目描述’ , ” ?’KEY’ ? ? ? ‘X’, ” ?’OUTPUTLEN’ ‘20′, ” ?’COL_POS’ ? ‘2′, ‘E’ ‘FIELDNAME’ ‘TXT50′ , * <–2012.01.16 CCYU END. ‘S’ ‘TABNAME’ ? ‘GT_ALV_BS_DP1′ , ” ?’SCRTEXT_M’ ‘金額’ , ” ?’COL_POS’ ? ‘3′, ” ?’DO_SUM’ ? ?’X’, ‘E’ ‘FIELDNAME’ ‘HSL’ . ENDFORM. ? ? ? ? ? ? ? ? ? ?” BUILDFIELDCAT_BSDP *&———————————————————————* *& ? ? ?Form ?porcess_show *&———————————————————————* * ? ? ? text *———————————————————————-* FORM porcess_show USING value(p_pro). CALL FUNCTION ‘SAPGUI_PROGRESS_INDICATOR’ EXPORTING percentage = p_pro text ? ? ? = ‘正在查詢…’. ENDFORM. ? ? ? ? ? ? ? ? ? ?”porcess_show *&———————————————————————* *& ? ? ?Form ?GET_EXCEL *&———————————————————————* * ? ? ? text *———————————————————————-* * ?–> ?p1 ? ? ? ?text * ?<– ?p2 ? ? ? ?text *———————————————————————-* FORM get_excel . * –>2012.01.17 ccyu START DATA:gv_fname LIKE rlgrap-filename, gv_filename TYPE string. IF gv_iden = ‘BS’.”資產(chǎn)負債表 CLEAR gt_head1[]. gt_head1-t1 = ‘行次’. gt_head1-t2 = ‘資產(chǎn)’. gt_head1-t3 = ‘期末余額’. gt_head1-t4 = ‘年初余額’. gt_head1-t5 = ‘行次’. gt_head1-t6 = ‘負債和所有者權益(或股東權益)’. gt_head1-t7 = ‘期末余額’. gt_head1-t8 = ‘年初余額’. APPEND gt_head1. CLEAR:gt_alv_bs01,gt_alv_bs01[]. LOOP AT gt_alv_bs0. gt_alv_bs01-lct1 = gt_alv_bs0-lct1. gt_alv_bs01-item1 = gt_alv_bs0-item1. gt_alv_bs01-yamt1 = gt_alv_bs0-yamt1. gt_alv_bs01-ysamt1 = gt_alv_bs0-ysamt1. gt_alv_bs01-lct2 = gt_alv_bs0-lct2. gt_alv_bs01-item2 = gt_alv_bs0-item2. gt_alv_bs01-yamt2 = gt_alv_bs0-yamt2. gt_alv_bs01-ysamt2 = gt_alv_bs0-ysamt2. APPEND gt_alv_bs01. ENDLOOP. CALL FUNCTION ‘WS_FILENAME_GET’ EXPORTING mask ? ? ? ? ? ? = ‘,*.XLS,*.XLS.’ mode ? ? ? ? ? ? = ‘S’ IMPORTING filename ? ? ? ? = gv_fname EXCEPTIONS inv_winsys ? ? ? = 1 no_batch ? ? ? ? = 2 selection_cancel = 3 selection_error ?= 4 OTHERS ? ? ? ? ? = 5. IF gv_fname IS NOT INITIAL. gv_filename = gv_fname. *————————————————————-* * ? ? ? ? ? ? ? ? DOWNLOAD HEADER ? ? ? ? ? ? ? ? ? ? ? ? ? ? * *————————————————————-* CALL FUNCTION ‘GUI_DOWNLOAD’ EXPORTING filename ? ? ? ? ? ? ? ?= gv_filename filetype ? ? ? ? ? ? ? ?= ‘ASC’ write_field_separator ? = ‘X’ TABLES data_tab ? ? ? ? ? ? ? ?= gt_head1 EXCEPTIONS file_write_error ? ? ? ?= 1 no_batch ? ? ? ? ? ? ? ?= 2 gui_refuse_filetransfer = 3 invalid_type ? ? ? ? ? ?= 4 no_authority ? ? ? ? ? ?= 5 unknown_error ? ? ? ? ? = 6 header_not_allowed ? ? ?= 7 separator_not_allowed ? = 8 filesize_not_allowed ? ?= 9 header_too_long ? ? ? ? = 10 dp_error_create ? ? ? ? = 11 dp_error_send ? ? ? ? ? = 12 dp_error_write ? ? ? ? ?= 13 unknown_dp_error ? ? ? ?= 14 access_denied ? ? ? ? ? = 15 dp_out_of_memory ? ? ? ?= 16 disk_full ? ? ? ? ? ? ? = 17 dp_timeout ? ? ? ? ? ? ?= 18 file_not_found ? ? ? ? ?= 19 dataprovider_exception ?= 20 control_flush_error ? ? = 21 OTHERS ? ? ? ? ? ? ? ? ?= 22. *————————————————————-* * ? ? ? ? ? ? ? ? DOWNLOAD TABLE ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?* *————————————————————-* CALL FUNCTION ‘GUI_DOWNLOAD’ EXPORTING filename ? ? ? ? ? ? ? ?= gv_filename filetype ? ? ? ? ? ? ? ?= ‘ASC’ append ? ? ? ? ? ? ? ? ?= ‘X’ write_field_separator ? = ‘X’ TABLES data_tab ? ? ? ? ? ? ? ?= gt_alv_bs01[] EXCEPTIONS file_write_error ? ? ? ?= 1 no_batch ? ? ? ? ? ? ? ?= 2 gui_refuse_filetransfer = 3 invalid_type ? ? ? ? ? ?= 4 no_authority ? ? ? ? ? ?= 5 unknown_error ? ? ? ? ? = 6 header_not_allowed ? ? ?= 7 separator_not_allowed ? = 8 filesize_not_allowed ? ?= 9 header_too_long ? ? ? ? = 10 dp_error_create ? ? ? ? = 11 dp_error_send ? ? ? ? ? = 12 dp_error_write ? ? ? ? ?= 13 unknown_dp_error ? ? ? ?= 14 access_denied ? ? ? ? ? = 15 dp_out_of_memory ? ? ? ?= 16 disk_full ? ? ? ? ? ? ? = 17 dp_timeout ? ? ? ? ? ? ?= 18 file_not_found ? ? ? ? ?= 19 dataprovider_exception ?= 20 control_flush_error ? ? = 21 OTHERS ? ? ? ? ? ? ? ? ?= 22. IF sy-subrc = 0. MESSAGE i003(zn207m). ENDIF. ENDIF. ELSEIF gv_iden = ‘IS’.”利潤表 CALL FUNCTION ‘WS_FILENAME_GET’ EXPORTING mask ? ? ? ? ? ? = ‘,*.XLS,*.XLS.’ mode ? ? ? ? ? ? = ‘S’ IMPORTING filename ? ? ? ? = gv_fname EXCEPTIONS inv_winsys ? ? ? = 1 no_batch ? ? ? ? = 2 selection_cancel = 3 selection_error ?= 4 OTHERS ? ? ? ? ? = 5. IF gv_fname IS NOT INITIAL. CLEAR: gt_alv_is01[],gt_alv_is01. LOOP AT gt_alv_is0. MOVE-CORRESPONDING gt_alv_is0 TO gt_alv_is01. APPEND gt_alv_is01. ENDLOOP. CLEAR gt_head2[]. gt_head2-t1 = ‘行次’. gt_head2-t2 = ‘項目’. gt_head2-t3 = ‘本期余額’. gt_head2-t4 = ‘累計余額’. APPEND gt_head2. gv_filename = gv_fname. *————————————————————-* * ? ? ? ? ? ? ? ? DOWNLOAD HEADER ? ? ? ? ? ? ? ? ? ? ? ? ? ? * *————————————————————-* CALL FUNCTION ‘GUI_DOWNLOAD’ EXPORTING filename ? ? ? ? ? ? ? ?= gv_filename filetype ? ? ? ? ? ? ? ?= ‘ASC’ write_field_separator ? = ‘X’ TABLES data_tab ? ? ? ? ? ? ? ?= gt_head2[] EXCEPTIONS file_write_error ? ? ? ?= 1 no_batch ? ? ? ? ? ? ? ?= 2 gui_refuse_filetransfer = 3 invalid_type ? ? ? ? ? ?= 4 no_authority ? ? ? ? ? ?= 5 unknown_error ? ? ? ? ? = 6 header_not_allowed ? ? ?= 7 separator_not_allowed ? = 8 filesize_not_allowed ? ?= 9 header_too_long ? ? ? ? = 10 dp_error_create ? ? ? ? = 11 dp_error_send ? ? ? ? ? = 12 dp_error_write ? ? ? ? ?= 13 unknown_dp_error ? ? ? ?= 14 access_denied ? ? ? ? ? = 15 dp_out_of_memory ? ? ? ?= 16 disk_full ? ? ? ? ? ? ? = 17 dp_timeout ? ? ? ? ? ? ?= 18 file_not_found ? ? ? ? ?= 19 dataprovider_exception ?= 20 control_flush_error ? ? = 21 OTHERS ? ? ? ? ? ? ? ? ?= 22. *————————————————————-* * ? ? ? ? ? ? ? ? DOWNLOAD TABLE ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?* *————————————————————-* CALL FUNCTION ‘GUI_DOWNLOAD’ EXPORTING filename ? ? ? ? ? ? ? ?= gv_filename filetype ? ? ? ? ? ? ? ?= ‘ASC’ append ? ? ? ? ? ? ? ? ?= ‘X’ write_field_separator ? = ‘X’ TABLES data_tab ? ? ? ? ? ? ? ?= gt_alv_is01[] EXCEPTIONS file_write_error ? ? ? ?= 1 no_batch ? ? ? ? ? ? ? ?= 2 gui_refuse_filetransfer = 3 invalid_type ? ? ? ? ? ?= 4 no_authority ? ? ? ? ? ?= 5 unknown_error ? ? ? ? ? = 6 header_not_allowed ? ? ?= 7 separator_not_allowed ? = 8 filesize_not_allowed ? ?= 9 header_too_long ? ? ? ? = 10 dp_error_create ? ? ? ? = 11 dp_error_send ? ? ? ? ? = 12 dp_error_write ? ? ? ? ?= 13 unknown_dp_error ? ? ? ?= 14 access_denied ? ? ? ? ? = 15 dp_out_of_memory ? ? ? ?= 16 disk_full ? ? ? ? ? ? ? = 17 dp_timeout ? ? ? ? ? ? ?= 18 file_not_found ? ? ? ? ?= 19 dataprovider_exception ?= 20 control_flush_error ? ? = 21 OTHERS ? ? ? ? ? ? ? ? ?= 22. IF sy-subrc = 0. MESSAGE i003(zn207m). ENDIF. ENDIF. ENDIF. ENDFORM. ? ? ? ? ? ? ? ? ? ?” GET_EXCEL *&———————————————————————* *& ? ? ?Form ?SYNCHRODATA *&———————————————————————* * ? ? ? 同步BSEG表和FAGLFLEXA表的利潤中心和伙伴利潤中心的數(shù)據(jù) *———————————————————————-* * ?–> ?p1 ? ? ? ?text * ?<– ?p2 ? ? ? ?text *———————————————————————-* FORM synchrodata . CALL FUNCTION ‘SAPGUI_PROGRESS_INDICATOR’ EXPORTING * ? PERCENTAGE ? ? ? = 0 text ? ? ? ? ? ? = ‘正在同步數(shù)據(jù)…’. “取抬頭 SELECT gjahr bukrs belnr FROM bkpf INTO CORRESPONDING FIELDS OF TABLE gt_bkpfsyn WHERE bukrs = ‘N207′ AND gjahr = p_y AND monat = p_m. IF gt_bkpfsyn[] IS NOT INITIAL. “取抬頭下的行項目 SELECT gjahr bukrs belnr prctr pprct buzei INTO CORRESPONDING FIELDS OF TABLE gt_bsegsyn FROM bseg FOR ALL ENTRIES IN gt_bkpfsyn WHERE bukrs = gt_bkpfsyn-bukrs AND gjahr = gt_bkpfsyn-gjahr AND belnr = gt_bkpfsyn-belnr. “SORT gt_bsegsyn BY belnr ASCENDING. “按月份取行項目 SELECT ryear rbukrs docnr prctr pprctr buzei FROM faglflexa INTO CORRESPONDING FIELDS OF TABLE gt_fagasyn WHERE ryear = p_y AND rbukrs = ‘N207′ AND poper = p_m AND rldnr = ‘0L’. LOOP AT gt_fagasyn. ” gt_fagasyn-rclnt = sy-mandt. READ TABLE gt_bsegsyn WITH KEY belnr = gt_fagasyn-docnr buzei = gt_fagasyn-buzei. IF sy-subrc = 0. IF gt_bsegsyn-prctr IS NOT INITIAL.”不為空才更改 IF gt_fagasyn-prctr NE gt_bsegsyn-prctr. UPDATE faglflexa SET prctr = gt_bsegsyn-prctr WHERE rbukrs = ‘N207′ AND ryear = p_y AND docnr = gt_fagasyn-docnr AND buzei = gt_fagasyn-buzei AND rldnr = ‘0L’. IF sy-subrc = 0. COMMIT WORK. ENDIF. ENDIF. ENDIF. IF gt_bsegsyn-pprct IS NOT INITIAL.”不為空才更改 IF gt_fagasyn-pprctr NE gt_bsegsyn-pprct. UPDATE faglflexa SET pprctr = gt_bsegsyn-pprct WHERE rbukrs = ‘N207′ AND ryear = p_y AND docnr = gt_fagasyn-docnr AND buzei = gt_fagasyn-buzei AND rldnr = ‘0L’. IF sy-subrc = 0. COMMIT WORK. ENDIF. ENDIF. ENDIF. ENDIF. ENDLOOP. ” ?MODIFY faglflexa FROM TABLE gt_fagasyn[]. :不行? CLEAR: gt_fagasyn[],gt_fagasyn, gt_bsegsyn[],gt_bsegsyn, gt_bkpfsyn[],gt_bkpfsyn. ENDIF. ENDFORM. ? ? ? ? ? ? ? ? ? ?” SYNCHRODATA *&———————————————————————* *& ? ? ?Form ?getisdb *&———————————————————————* * ? ? ? text *———————————————————————-* FORM getisdb. DATA:lv_pro1(10) TYPE p DECIMALS 2 VALUE ‘5′, lv_i1(10) TYPE p DECIMALS 2 VALUE ‘5′. gv_iden = ‘IS’. CLEAR ?gt_alv_is0[]. PERFORM setisitem.”設置利潤表項目 DATA:a LIKE faglflext-hslvt, b LIKE faglflext-hslvt, c LIKE faglflext-hslvt, d LIKE faglflext-hslvt, e LIKE faglflext-hslvt, f LIKE faglflext-hslvt. LOOP AT gt_alv_is0. IF gt_alv_is0-lct = 1. PERFORM getisamt USING a b ‘6001′ 1. PERFORM getisamt USING c d ‘6100′ 1. gt_alv_is0-yamt = a + c. gt_alv_is0-mamt = b + d. ELSEIF gt_alv_is0-lct = 2. PERFORM getisamt USING a b ‘6400′ 2. PERFORM getisamt USING c d ‘6500′ 2. PERFORM getisamt USING e f ‘6610′ 2. gt_alv_is0-yamt = a + c + e. gt_alv_is0-mamt = b + d + f. ELSEIF gt_alv_is0-lct = 3. PERFORM getisamt USING a b ‘6450′ 3. gt_alv_is0-yamt = a. gt_alv_is0-mamt = b. ELSEIF gt_alv_is0-lct = 4. PERFORM getisamt USING a b ‘6600′ 4. gt_alv_is0-yamt = a. gt_alv_is0-mamt = b. ELSEIF gt_alv_is0-lct = 5. PERFORM getisamt USING a b ‘6600′ 5. gt_alv_is0-yamt = a. gt_alv_is0-mamt = b. ELSEIF gt_alv_is0-lct = 6. PERFORM getisamt USING a b ‘6620′ 6. gt_alv_is0-yamt = a. gt_alv_is0-mamt = b. ELSEIF gt_alv_is0-lct = 7. PERFORM getisamt USING a b ‘6630′ 7. gt_alv_is0-yamt = a. gt_alv_is0-mamt = b. ELSEIF gt_alv_is0-lct = 8. PERFORM getisamt USING a b ‘6640′ 8. gt_alv_is0-yamt = a. gt_alv_is0-mamt = b. ELSEIF gt_alv_is0-lct = 9. PERFORM getisamt USING a b ‘6645′ 9. gt_alv_is0-yamt = a. gt_alv_is0-mamt = b. ELSEIF gt_alv_is0-lct = 12. PERFORM getisamt USING a b ‘6301′ 12. gt_alv_is0-yamt = a. gt_alv_is0-mamt = b. ELSEIF gt_alv_is0-lct = 13. PERFORM getisamt USING a b ‘6711′ 13. gt_alv_is0-yamt = a. gt_alv_is0-mamt = b. ELSEIF gt_alv_is0-lct = 14.”按科目直接取數(shù) PERFORM getisamt USING a b ‘0000′ 14. gt_alv_is0-yamt = a. gt_alv_is0-mamt = b. ELSEIF gt_alv_is0-lct = 15. PERFORM getisamt USING a b ‘6901′ 15. gt_alv_is0-yamt = a. gt_alv_is0-mamt = b. ELSEIF gt_alv_is0-lct = 17. PERFORM getisamt USING a b ‘6801′ 17. gt_alv_is0-yamt = a. gt_alv_is0-mamt = b. ENDIF. MODIFY gt_alv_is0. PERFORM porcess_show USING lv_pro1. lv_pro1 = lv_pro1 + lv_i1. ENDLOOP. DATA:a1 LIKE faglflext-hslvt, a1_1 LIKE faglflext-hslvt, a2 LIKE faglflext-hslvt, a2_1 LIKE faglflext-hslvt, a3 LIKE faglflext-hslvt, a3_1 LIKE faglflext-hslvt, a4 LIKE faglflext-hslvt, a4_1 LIKE faglflext-hslvt, a5 LIKE faglflext-hslvt, a5_1 LIKE faglflext-hslvt, a6 LIKE faglflext-hslvt, a6_1 LIKE faglflext-hslvt, a7 LIKE faglflext-hslvt, a7_1 LIKE faglflext-hslvt, a8 LIKE faglflext-hslvt, a8_1 LIKE faglflext-hslvt, a9 LIKE faglflext-hslvt, a9_1 LIKE faglflext-hslvt, a10 LIKE faglflext-hslvt, a10_1 LIKE faglflext-hslvt, a11 LIKE faglflext-hslvt, a11_1 LIKE faglflext-hslvt, a12 LIKE faglflext-hslvt, a12_1 LIKE faglflext-hslvt, a13 LIKE faglflext-hslvt, a13_1 LIKE faglflext-hslvt, a14 LIKE faglflext-hslvt, a14_1 LIKE faglflext-hslvt, a15 LIKE faglflext-hslvt, a15_1 LIKE faglflext-hslvt, a16 LIKE faglflext-hslvt, a16_1 LIKE faglflext-hslvt, a17 LIKE faglflext-hslvt, a17_1 LIKE faglflext-hslvt, a18 LIKE faglflext-hslvt, a18_1 LIKE faglflext-hslvt, a19 LIKE faglflext-hslvt, a19_1 LIKE faglflext-hslvt. READ TABLE gt_alv_is0 WITH KEY lct = 1. a1 = gt_alv_is0-yamt. a1_1 = gt_alv_is0-mamt. READ TABLE gt_alv_is0 WITH KEY lct = 2. a2 = gt_alv_is0-yamt. a2_1 = gt_alv_is0-mamt. READ TABLE gt_alv_is0 WITH KEY lct = 3. a3 = gt_alv_is0-yamt. a3_1 = gt_alv_is0-mamt. READ TABLE gt_alv_is0 WITH KEY lct = 4. a4 = gt_alv_is0-yamt. a4_1 = gt_alv_is0-mamt. READ TABLE gt_alv_is0 WITH KEY lct = 5. a5 = gt_alv_is0-yamt. a5_1 = gt_alv_is0-mamt. READ TABLE gt_alv_is0 WITH KEY lct = 6. a6 = gt_alv_is0-yamt. a6_1 = gt_alv_is0-mamt. READ TABLE gt_alv_is0 WITH KEY lct = 7. a7 = gt_alv_is0-yamt. a7_1 = gt_alv_is0-mamt. READ TABLE gt_alv_is0 WITH KEY lct = 8. a8 = gt_alv_is0-yamt. a8_1 = gt_alv_is0-mamt. READ TABLE gt_alv_is0 WITH KEY lct = 9. a9 = gt_alv_is0-yamt. a9_1 = gt_alv_is0-mamt. READ TABLE gt_alv_is0 WITH KEY lct = 12. a12 = gt_alv_is0-yamt. a12_1 = gt_alv_is0-mamt. READ TABLE gt_alv_is0 WITH KEY lct = 13. a13 = gt_alv_is0-yamt. a13_1 = gt_alv_is0-mamt. READ TABLE gt_alv_is0 WITH KEY lct = 15. a15 = gt_alv_is0-yamt. a15_1 = gt_alv_is0-mamt. READ TABLE gt_alv_is0 WITH KEY lct = 17. a17 = gt_alv_is0-yamt. a17_1 = gt_alv_is0-mamt. READ TABLE gt_alv_is0 WITH KEY lct = 14. a14 = gt_alv_is0-yamt. a14_1 = gt_alv_is0-mamt. a11 = a1 - a2 - a3 - a4 - a5 - a6 - a7 + a8 + a9. a11_1 = a1_1 - a2_1 - a3_1 - a4_1 - a5_1 - a6_1 - a7_1 + a8_1 + a9_1. a16 = a11 + a12 - a13 - a14 + a15. a16_1 = a11_1 + a12_1 - a13_1 - a14_1 + a15_1. a18 = a16 - a17. a18_1 = a16_1 - a17_1. LOOP AT gt_alv_is0. IF gt_alv_is0-lct = 11. gt_alv_is0-yamt = a11. gt_alv_is0-mamt = a11_1. ELSEIF gt_alv_is0-lct = 16. gt_alv_is0-yamt = a16. gt_alv_is0-mamt = a16_1. ELSEIF gt_alv_is0-lct = 18. gt_alv_is0-yamt = a18. gt_alv_is0-mamt = a18_1. ENDIF. MODIFY ?gt_alv_is0. ENDLOOP. IF p_curr = ‘KRW’. LOOP AT gt_alv_is0. gt_alv_is0-yamt = gt_alv_is0-yamt * gv_bs. gt_alv_is0-mamt = gt_alv_is0-mamt * gv_bs. gt_alv_is0-waers = ‘KRW’. MODIFY gt_alv_is0. ENDLOOP. ELSE. LOOP AT gt_alv_is0. gt_alv_is0-waers = ‘CNY’. MODIFY gt_alv_is0. ENDLOOP. ENDIF. ENDFORM. ? ? ? ? ? ? ? ? ? ?”getisdb *&———————————————————————* *& ?Include ? ? ? ? ? ZFIR00026_I01 *&———————————————————————* *&———————————————————————* *& ? ? ?Module ?USER_COMMAND_0200 ?INPUT *&———————————————————————* * ? ? ? text *———————————————————————-* MODULE USER_COMMAND_0200 INPUT. CASE SY-UCOMM. WHEN ‘EXIT’ OR ‘BACK’ OR ‘CANCLE’. LEAVE TO SCREEN 0. WHEN ‘PP’. PERFORM PPSMARTFORMS_IS. WHEN ‘PR’. PERFORM PRINT. ENDCASE. ENDMODULE. ? ? ? ? ? ? ? ? ” USER_COMMAND_0200 ?INPUT *&———————————————————————* *& ? ? ?Module ?USER_COMMAND_0100 ?INPUT *&———————————————————————* * ? ? ? text *———————————————————————-* MODULE USER_COMMAND_0100 INPUT. CASE SY-UCOMM. WHEN ‘CANCLE’ OR ‘EXIT’ OR ‘BACK’. LEAVE TO SCREEN 0. WHEN ‘PP’. PERFORM PPSMARTFORMS_IS. WHEN ‘PR’. PERFORM PRINT. ENDCASE. ENDMODULE. ? ? ? ? ? ? ? ? ” USER_COMMAND_0100 ?INPUT *&———————————————————————* *& ? ? ?Module ?USER_COMMAND_0300 ?INPUT *&———————————————————————* * ? ? ? text *———————————————————————-* MODULE USER_COMMAND_0300 INPUT. CASE SY-UCOMM. WHEN ‘CANCLE’ OR ‘EXIT’ OR ‘BACK’. LEAVE TO SCREEN 0. ENDCASE. ENDMODULE. ? ? ? ? ? ? ? ? ” USER_COMMAND_0300 ?INPUT *&———————————————————————* *& ? ? ?Module ?USER_COMMAND_0400 ?INPUT *&———————————————————————* * ? ? ? text *———————————————————————-* MODULE USER_COMMAND_0400 INPUT. CASE SY-UCOMM. WHEN ‘CANCLE’ OR ‘EXIT’ OR ‘BACK’. LEAVE TO SCREEN 0. ENDCASE. ENDMODULE. ? ? ? ? ? ? ? ? ” USER_COMMAND_0400 ?INPUT *&———————————————————————* *& ?Include ? ? ? ? ? ZFIR00026_O01 *&———————————————————————* *&———————————————————————* *& ? ? ?Module ?INITIAL ?OUTPUT *&———————————————————————* * ? ? ? text *———————————————————————-* MODULE initial OUTPUT. DATA: lv_object TYPE REF TO lcl_app_compt. CREATE OBJECT lv_object. IF gs_alv_is IS INITIAL. PERFORM setcon. PERFORM displayis. SET HANDLER lv_object->handle_toolbar FOR gs_alv_is ?. *–>2012.01.18 CCYU START SET HANDLER lv_object->handle_user_command FOR gs_alv_is . *<–2012.01.18 CCYU END. SET HANDLER lv_object->handle_topofpage FOR gs_alv_is . SET HANDLER lv_object->handle_hotspot_click FOR gs_alv_is . CALL METHOD gs_alv_is->set_table_for_first_display EXPORTING is_layout ? ? ? ? ? ?= gs_layout it_toolbar_excluding = g_toolbar CHANGING it_outtab ? ? ? ? ? ?= gt_alv_is0[] it_fieldcatalog ? ? ?= gt_fieldcat. CALL METHOD gs_alv_is->list_processing_events EXPORTING i_event_name = ‘TOP_OF_PAGE’ i_dyndoc_id ?= gs_dyndoc_id. ENDIF. ENDMODULE. ? ? ? ? ? ? ? ? ” INITIAL ?OUTPUT *&———————————————————————* *& ? ? ?Module ?SETPF ?OUTPUT *&———————————————————————* * ? ? ? text *———————————————————————-* MODULE setpf OUTPUT. SET PF-STATUS ‘0200′. SET TITLEBAR ‘0200′. ENDMODULE. ? ? ? ? ? ? ? ? ” SETPF ?OUTPUT *&———————————————————————* *& ? ? ?Module ?STATUS_0100 ?OUTPUT *&———————————————————————* * ? ? ? text *———————————————————————-* MODULE status_0100 OUTPUT. SET PF-STATUS ‘0100′. SET TITLEBAR ‘0100′. ENDMODULE. ? ? ? ? ? ? ? ? ” STATUS_0100 ?OUTPUT *&———————————————————————* *& ? ? ?Module ?INITIAL_0100 ?OUTPUT *&———————————————————————* * ? ? ? text *———————————————————————-* MODULE initial_0100 OUTPUT. DATA: lv_object1 TYPE REF TO lcl_app_compt. CREATE OBJECT lv_object1. IF gs_alv_bs IS INITIAL. PERFORM setcon. PERFORM displaybs. SET HANDLER lv_object1->handle_toolbar FOR gs_alv_bs. *–>2012.01.18 CCYU START SET HANDLER lv_object1->handle_user_command FOR gs_alv_bs . *<–2012.01.18 CCYU END. SET HANDLER lv_object1->handle_topofpage FOR gs_alv_bs . SET HANDLER lv_object1->handle_hotspot_click FOR gs_alv_bs .”給GS_ALV_BS注冊事件 CALL METHOD gs_alv_bs->set_table_for_first_display EXPORTING is_layout ? ? ? ? ? ?= gs_layout it_toolbar_excluding = g_toolbar CHANGING it_outtab ? ? ? ? ? ?= gt_alv_bs0[] it_fieldcatalog ? ? ?= gt_fieldcat. CALL METHOD gs_alv_bs->list_processing_events EXPORTING i_event_name = ‘TOP_OF_PAGE’ i_dyndoc_id ?= gs_dyndoc_id. ENDIF. ENDMODULE. ? ? ? ? ? ? ? ? ” INITIAL_0100 ?OUTPUT *&———————————————————————* *& ? ? ?Module ?STATUS_0300 ?OUTPUT *&———————————————————————* * ? ? ? text *———————————————————————-* MODULE status_0300 OUTPUT. SET PF-STATUS ‘0300′. SET TITLEBAR ‘0300′. ENDMODULE. ? ? ? ? ? ? ? ? ” STATUS_0300 ?OUTPUT *&———————————————————————* *& ? ? ?Module ?INITIAL_0300 ?OUTPUT *&———————————————————————* * ? ? ? text *———————————————————————-* MODULE initial_0300 OUTPUT. DATA: lv_object2 TYPE REF TO lcl_app_compt. CREATE OBJECT lv_object2. IF gs_alv_is_dp1 IS INITIAL. PERFORM setcon1. CREATE OBJECT gs_alv_is_dp1 EXPORTING i_parent = gs_parent_grid1. PERFORM displayisdp. *–>2012.01.18 CCYU START SET HANDLER lv_object2->handle_user_command FOR gs_alv_is_dp1 ?. *<–2012.01.18 CCYU END. “SET HANDLER LV_OBJECT2->HANDLE_TOOLBAR FOR GS_ALV_IS_DP1. ” ? SET HANDLER LV_OBJECT2->HANDLE_TOPOFPAGE FOR GS_ALV_IS_DP1 . CALL METHOD gs_alv_is_dp1->set_table_for_first_display EXPORTING is_layout ? ? ? ? ? ?= gs_layout it_toolbar_excluding = g_toolbar1 CHANGING it_outtab ? ? ? ? ? ?= gt_alv_is_dp1[] it_fieldcatalog ? ? ?= gt_fieldcat. ELSE. “CALL METHOD GS_ALV_IS_DP1->REFRESH_TABLE_DISPLAY. “根據(jù)GT_ALV_IS_DP1[]中的數(shù)據(jù)重新刷新ALV CALL METHOD gs_alv_is_dp1->set_table_for_first_display EXPORTING is_layout ? ? ? ? ? ?= gs_layout it_toolbar_excluding = g_toolbar1 CHANGING it_outtab ? ? ? ? ? ?= gt_alv_is_dp1[] it_fieldcatalog ? ? ?= gt_fieldcat. ENDIF. ENDMODULE. ? ? ? ? ? ? ? ? ” INITIAL_0300 ?OUTPUT *&———————————————————————* *& ? ? ?Module ?STATUS_0400 ?OUTPUT *&———————————————————————* * ? ? ? text *———————————————————————-* MODULE status_0400 OUTPUT. SET PF-STATUS ‘0300′. SET TITLEBAR ‘0300′. ENDMODULE. ? ? ? ? ? ? ? ? ” STATUS_0400 ?OUTPUT *&———————————————————————* *& ? ? ?Module ?INITIAL_0400 ?OUTPUT *&———————————————————————* * ? ? ? text *———————————————————————-* MODULE initial_0400 OUTPUT. DATA: lv_object3 TYPE REF TO lcl_app_compt. CREATE OBJECT lv_object3. IF gs_alv_bs_dp1 IS INITIAL. PERFORM setcon1. CREATE OBJECT gs_alv_bs_dp1 EXPORTING i_parent = gs_parent_grid1. PERFORM displaybsdp. *–>2012.01.18 CCYU START SET HANDLER lv_object3->handle_user_command FOR gs_alv_bs_dp1 ?. *<–2012.01.18 CCYU END. “SET HANDLER LV_OBJECT2->HANDLE_TOOLBAR FOR GS_ALV_IS_DP1. ” ? SET HANDLER LV_OBJECT2->HANDLE_TOPOFPAGE FOR GS_ALV_IS_DP1 . CALL METHOD gs_alv_bs_dp1->set_table_for_first_display EXPORTING is_layout ? ? ? ? ? ?= gs_layout it_toolbar_excluding = g_toolbar1 CHANGING it_outtab ? ? ? ? ? ?= gt_alv_bs_dp1[] it_fieldcatalog ? ? ?= gt_fieldcat. ELSE. CALL METHOD gs_alv_bs_dp1->set_table_for_first_display EXPORTING is_layout ? ? ? ? ? ?= gs_layout it_toolbar_excluding = g_toolbar1 CHANGING it_outtab ? ? ? ? ? ?= gt_alv_bs_dp1[] it_fieldcatalog ? ? ?= gt_fieldcat. ENDIF. ENDMODULE. ? ? ? ? ? ? ? ? ” INITIAL_0400 ?OUTPUT 最終效果: 資產(chǎn)負債表: 損益表:
與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的ABAP实现本地化的资产负债表和损益表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产一区二区综合 | 国产无遮挡aaa片爽爽 | 亚洲天堂三区 | 国产亚洲av在线 | 国产精品国语 | www.五月.com | 无码人妻少妇色欲av一区二区 | 美女四肢被绑在床扒衣 | 国产毛茸茸 | 天天摸天天操 | 特大黑人娇小亚洲女mp4 | 国产精品日韩欧美一区二区三区 | 日韩亚洲精品中文字幕 | 在线高清观看免费观看 | 亚洲免费一二三区 | h文在线观看 | 国产精品久久久久999 | 亚洲一区91| 亚洲精品国产精品国 | 日批网站在线观看 | 女人天堂网站 | 美女福利一区 | 潘金莲一级淫片免费放动漫 | 成人免费在线视频网站 | 无码精品一区二区三区在线播放 | xxxxx在线观看 | 精品人妻av在线 | 久久免费精彩视频 | 免费一级毛片麻豆精品 | 色图插插插 | 婷婷国产| 黄色a级大片 | 人人做人人爱人人爽 | 无码一区二区三区在线观看 | www五月婷婷| 中文字幕+乱码+中文字幕一区 | www.插插插 | 麻豆一区二区三区四区 | 99久久久无码国产精品衣服 | 天躁夜夜躁狼狠躁 | av手机天堂网 | 日韩香蕉视频 | 欧美成人视 | 国产精品视频福利 | 久久综合综合久久 | 欧美a级免费 | 国产1区2区在线观看 | 天天噜夜夜噜 | 黄色国产一区二区 | 成人av免费 | 欧美日韩性 | 亚洲国产精品99久久久久久久久 | 男人靠女人免费视频网站 | 久久99热这里只频精品6学生 | 人妻精品一区一区三区蜜桃91 | 国产成人在线免费视频 | 三级黄网 | 国产精品自拍在线 | 亚洲男人天堂影院 | 免费毛片在线播放 | 亚洲 欧美 日韩系列 | 依人成人网 | 成人在线观看一区二区 | 男生把女生困困的视频 | 国产黄色小说 | 麻豆回家视频区一区二 | 国产一区二区视频在线观看 | 国产毛片3| 日韩中文字幕av电影 | heyzo国产 | 户外少妇对白啪啪野战 | 黄色录像毛片 | 中文字幕欧美人妻精品一区蜜臀 | 美女被男人桶出白浆喷水 | free性护士vidos猛交 | 一区二区三区 中文字幕 | 亚洲一级片免费 | 亚洲精品乱码久久久久 | 青青艹在线视频 | 日本少妇喷水 | 青青草原国产视频 | 欧美亚洲精品一区二区 | 一级黄色片在线免费观看 | 成人涩涩视频 | 激情久久综合 | 在线播放不卡av | 亚洲一区二区国产 | 落日余晖| 成人人伦一区二区三区 | 亚洲av成人精品日韩在线播放 | 黄页网址大全免费观看 | 成人av电影网站 | 91久久精品国产91久久性色tv | 精品黑人一区二区三区在线观看 | 一区二区三区成人 | 僵尸叔叔在线观看国语高清免费观看 | 午夜寂寞剧场 | 国产原创在线 | 在线免费观看网站入口在哪 |