日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

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

编程问答

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

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

1.設計思路:

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

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

獲取科目借貸匯總的值。

SAP中資產負債表的配置圖示:

我們傳統的資產負債表如下格式: 我們可以在程序中用項目編號找到其下面的科目范圍,然后取科目匯總值,因為資產負債表是固定的,所以我們要 建立一個CBO表來存放各個具體的項目和在SAP中對應的項目編號。 最后要強調的是在資產負債表中未分配利潤的計算: 未分配利潤的期末余額=年初結轉額(留存收益的上年余額)+今年截至到本月的盈利額(利潤表中有體現) 利潤表的思路和資產負債表是一樣的。 具體的代碼實現: *&———————————————————————* *&Company Code:N207 *& module:FI *& create by:rrzhang *& create date:2011.12.28 *&———————————————————————* *& title:資產負債表,利潤表 *& Description:資產負債表,利潤表報表呈現 *&———————————————————————* *& 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 = ‘愛思開實業(上海)商貿有限公司合并財務報表版本’. c = ‘X’. gv_rp = ‘資產負債表’. ELSE. PERFORM setpcg USING p_rpv. CASE p_rpv. WHEN ‘2070′. gv_name = ‘愛思開實業(上海)商貿有限公司合并財務報表版本’. WHEN ‘2071′. gv_name = ‘愛思開實業(上海)商貿有限公總部財務報表版本’. WHEN ‘2072′. gv_name = ‘愛思開實業(上海)商貿有限公司直營店財務報表版本’. WHEN ‘2073′. gv_name = ”. ENDCASE. IF p_rp = ‘BS’. gv_rp = ‘資產負債表’. ELSE. gv_rp = ‘利潤表’. ENDIF. ENDIF. START-OF-SELECTION. PERFORM synchrodata. PERFORM get_data1. *&———————————————————————* *& ?Include ? ? ? ? ? ZFIR00026_TOP *&———————————————————————* *Data definition TYPE-POOLS vrm. TABLES:faglflexa. “同步數據用的憑證抬頭表 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. “同步數據用的憑證行項目表(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,”倍數 gv_iden(2). “要顯示的資產負債表 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,”本年累計數 mamt LIKE faglflext-hslvt,”本月累計數 waers LIKE t001-waers, END OF gt_alv_is0. “下載數據的內表 DATA:BEGIN OF gt_alv_is01 OCCURS 0, lct TYPE int1, item TYPE zitem, yamt LIKE faglflext-hslvt,”本年累計數 mamt LIKE faglflext-hslvt,”本月累計數 END OF gt_alv_is01. *利潤表下鉆數據內表 * –>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. *利潤表下鉆數據內表 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. *利潤表下鉆臨時數據內表 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. ? ? ? ? ? ? ? “lcl_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′. “為核算固定資產等項目設置的臨時變量 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 = ‘交易性金融資產’. 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 = ‘應收票據’. 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 = ‘一年內到期的非流動資產’. 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 = ‘其他流動資產’. 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 = ‘流動資產合計’. PERFORM getbsamt USING gt_alv_bs0-yamt2 gt_alv_bs0-ysamt2 ‘2222′ ly. ELSEIF gt_alv_bs0-item1 = ‘可供出售金融資產’. 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 = ‘投資性房地產’. 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 = ‘固定資產’. 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 = ‘固定資產清理’. PERFORM getbsamt USING:gt_alv_bs0-yamt1 gt_alv_bs0-ysamt1 ‘1606′ ly. ELSEIF gt_alv_bs0-item1 = ‘無形資產’. 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 = ‘開發支出’. 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 = ‘遞延所得稅資產’. “計算本年利潤 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 = ‘其他非流動資產’. 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.”流動資產 a13yamt1 = gt_alv_bs0-yamt1 + a13yamt1. a13ysamt1 = gt_alv_bs0-ysamt1 + a13ysamt1. ENDIF. IF gt_alv_bs0-lct1 BETWEEN 15 AND 31.”非流動資產 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.”資產總計 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 = ‘一、營業收入’. APPEND gt_alv_is0. gt_alv_is0-lct = 2. gt_alv_is0-item = ‘ 減:營業成本’. APPEND gt_alv_is0. gt_alv_is0-lct = 3. gt_alv_is0-item = ‘ ?營業稅金及附加’. 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 = ‘ ?資產減值損失’. 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 = ‘ ? ?其中:對聯營企業和合營企業的投資收益’. APPEND gt_alv_is0. gt_alv_is0-lct = 11. gt_alv_is0-item = ‘二、營業利潤(虧損以“-”號填列)’. APPEND gt_alv_is0. gt_alv_is0-lct = 12. gt_alv_is0-item = ‘ ? 加:營業外收入’. APPEND gt_alv_is0. gt_alv_is0-lct = 13. gt_alv_is0-item = ‘ ? 減:營業外支出’. APPEND gt_alv_is0. gt_alv_is0-lct = 14. gt_alv_is0-item = ‘ ?其中:非流動資產處置損失’. 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.”按照科目進行取數 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.”按照科目進行取數 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.”按照科目進行取數 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. “獲取結果數值,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 = ‘愛思開實業(上海)商貿有限公司’. PERFORM fm_control_html . ELSEIF gv_iden = ‘BS’. CALL METHOD gs_dyndoc_id->add_text EXPORTING text ? ? ? ? = ‘資產負債表(非金融類)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 = ‘愛思開實業(上海)商貿有限公司’. 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,”控制參數 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.”構造資產負債表項目編號下的科目范圍 CHECK gr_act[] IS NOT INITIAL. CASE p_rpv. WHEN ‘2070′.”不考慮利潤中心 “本年度截止到查詢月的發生額 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 = ”.”抵消內部交易’ “截止到去年的發生額 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 <> ”.”有利潤中心的情況 “本年度截止到查詢月的發生額 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.”抵消內部交易’ “截止到去年的發生額 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.”利潤中心為空,選取所有的利潤中心 “本年度截止到查詢月的發生額 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′ ). “截止到去年的發生額 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′.”不考慮利潤中心 “本年度截止到查詢月的發生額 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.”利潤中心為空,選取所有的利潤中心 “本年度截止到查詢月的發生額 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’ ‘資產’ , ” ?’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”輸入參數,傳遞SmartForms名子 formname = ‘Z_N207_BS’ IMPORTING:”輸出參數,返回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”輸入參數,傳遞SmartForms名子 formname = ‘Z_N207_IS1′ IMPORTING:”輸出參數,返回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 *&———————————————————————* * ? ? ? 獲取利潤表和資產負債表中本期金額的詳細信息 *———————————————————————-* * ? ? ?–>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.”資產負債表的下鉆報表 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 *&———————————————————————* * ? ? ? 獲取利潤表下鉆的報表數據 *———————————————————————-* * ? ? ?–>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.”按照科目進行取數 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.”按照科目進行取數 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.”按照科目進行取數 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 *&———————————————————————* * ? ? ? 獲取資產負債表的下鉆信息 *———————————————————————-* * ? ? ?–>P_YAMT ? ? ? ? ? text * ? ? ?–>P_YSAMT ? ? ? ? ?text * ? ? ?–>VALUE(P_ITEMID) ?text *———————————————————————-* FORM getbsdp TABLES p_gt_alv_bs_dp1 TYPE gt_alv_bs_dp”tables參數是輸入輸出參數 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’.”資產負債表 CLEAR gt_head1[]. gt_head1-t1 = ‘行次’. gt_head1-t2 = ‘資產’. 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表的利潤中心和伙伴利潤中心的數據 *———————————————————————-* * ?–> ?p1 ? ? ? ?text * ?<– ?p2 ? ? ? ?text *———————————————————————-* FORM synchrodata . CALL FUNCTION ‘SAPGUI_PROGRESS_INDICATOR’ EXPORTING * ? PERCENTAGE ? ? ? = 0 text ? ? ? ? ? ? = ‘正在同步數據…’. “取抬頭 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.”按科目直接取數 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. “根據GT_ALV_IS_DP1[]中的數據重新刷新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 最終效果: 資產負債表: 損益表:
與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

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

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

四虎4hu永久免费 | 97超碰人人模人人人爽人人爱 | 国产美腿白丝袜足在线av | 国产亚洲午夜高清国产拍精品 | 91.麻豆视频 | 久久在线观看视频 | 人人射人人爽 | 久久久免费播放 | 日本少妇高清做爰视频 | 91尤物国产尤物福利在线播放 | 九九色在线观看 | 国产成人精品一区二区在线观看 | 96视频在线| 在线观看国产高清视频 | www.神马久久 | 丁香激情综合 | 视频高清 | 久草视频免费在线播放 | 蜜臀久久99精品久久久久久网站 | 国产91国语对白在线 | av黄网站 | 欧美9999| av直接看| 国产视频1 | 911亚洲精品第一 | 久草在线资源观看 | 中文字幕在线视频免费播放 | 久草a视频| 午夜久久精品 | 天天狠狠操 | 久久精品美女 | 精品国产伦一区二区三区观看体验 | 一区二区三区四区在线 | 又大又硬又黄又爽视频在线观看 | av电影免费观看 | 91av久久| 成年人app网址 | 色噜噜日韩精品欧美一区二区 | 成片人卡1卡2卡3手机免费看 | 91视频免费看网站 | 亚洲高清视频在线播放 | 999电影免费在线观看 | 中文字幕五区 | 欧美精品被 | 久久久久久久久久亚洲精品 | 人人草在线视频 | 少妇搡bbbb搡bbb搡aa | 国产精品久久久 | 青青草在久久免费久久免费 | 欧美性色黄大片在线观看 | 国产精品一区专区欧美日韩 | 免费福利片2019潦草影视午夜 | 亚洲视频99 | 精品uu | www.色就是色 | 国产最新在线视频 | av女优中文字幕在线观看 | 成人免费亚洲 | 久久黄色片 | 在线观看国产一区二区 | 欧美一级黄大片 | 色播六月天 | 中文字幕中文字幕在线中文字幕三区 | 免费黄色网址大全 | 日日夜夜天天人人 | 久久亚洲区 | 粉嫩高清一区二区三区 | 久草手机视频 | 久草免费资源 | 久久成人亚洲欧美电影 | 久久久精品国产一区二区三区 | 永久免费av在线播放 | 奇米影视999 | 久久精品第一页 | 亚洲高清在线 | 免费在线视频一区二区 | 国产99久久九九精品 | 最近中文字幕在线 | 国内精品视频在线播放 | 午夜精品一区二区三区在线播放 | 91精品亚洲影视在线观看 | 亚洲国产日韩欧美 | 插久久| 久久免费视频在线观看 | 麻豆激情电影 | 国产又粗又长又硬免费视频 | 国产视频久久久 | 中文字幕日韩伦理 | 久久综合影音 | 亚洲精品高清一区二区三区四区 | 18国产精品福利片久久婷 | 国产xxxxx在线观看 | 国产精品欧美日韩 | 最新婷婷色 | 在线视频麻豆 | 久人人| 六月丁香婷 | 亚洲最大av在线播放 | 日本精品视频在线 | 成人av免费看 | 成人毛片在线视频 | 国偷自产视频一区二区久 | 亚洲精品高清一区二区三区四区 | 亚洲日本精品视频 | 成人av网站在线观看 | 91系列在线| 日日草视频 | 午夜精品视频一区二区三区在线看 | japanesefreesex中国少妇 | 亚州精品一二三区 | 国产中文在线视频 | 久久爱导航 | 久久激情电影 | 91喷水| 人人爽爽人人 | 国产精品欧美一区二区 | 波多野结衣最新 | 国产一级视频免费看 | 亚洲高清在线观看视频 | 国产成人精品一区二区三区在线观看 | 免费国产在线精品 | 国产香蕉视频在线播放 | 久艹视频在线观看 | 久久久久色 | 免费a级大片 | 成人黄色国产 | 人人艹人人 | 日本动漫做毛片一区二区 | 国产日韩欧美在线播放 | 中文字幕亚洲精品在线观看 | 五月婷婷综合在线 | av直接看| 午夜精品久久久久久久久久久 | 国产女教师精品久久av | 中文字幕网站视频在线 | 天堂av一区二区 | 精品久久久久久亚洲综合网站 | 国产大片免费久久 | 91精品在线免费观看视频 | av观看网站 | 一区二区三区动漫 | 91九色国产蝌蚪 | 丁香激情婷婷 | 免费福利在线播放 | 亚洲h视频在线 | 欧美韩国日本在线观看 | 91福利影院在线观看 | 国产免费嫩草影院 | 久久在线一区 | 久久精品久久久久电影 | 精品久久一区二区三区 | 五月婷婷在线观看视频 | 久久综合射| 精品久久久久久久久久久久久久久久 | 久久国产网站 | 中文字幕在线观看资源 | 黄色一级大片免费看 | 黄色免费av | 色播五月激情综合网 | 久久国产精品第一页 | 久久一区国产 | 三上悠亚在线免费 | 欧美精品在线观看免费 | 亚洲免费精品视频 | 久久综合九色综合97_ 久久久 | 亚洲精品婷婷 | 日韩精品1区2区 | 成人超碰在线 | 久久精品视频在线观看免费 | 国产一级视频在线免费观看 | 亚洲视频精品在线 | 国产裸体永久免费视频网站 | 91在线亚洲 | 国产一区视频在线观看免费 | 日韩中文字幕在线 | 亚洲成av人片一区二区梦乃 | 黄色精品国产 | 人人澡人摸人人添学生av | 成 人 免费 黄 色 视频 | 天天看天天干天天操 | 亚洲成人av在线播放 | 精品99免费视频 | 少妇bbbb搡bbbb搡bbbb | 丁香婷婷射| 在线观看视频日韩 | 久久久精品综合 | 夜夜骑天天操 | 97精品国产97久久久久久粉红 | 网站免费黄色 | 久久久国产毛片 | 啪啪小视频网站 | 人人添人人 | 韩日av一区二区 | 亚洲成人午夜在线 | 婷婷激情站 | 婷婷丁香色综合狠狠色 | 久久免费黄色大片 | 午夜aaaa | 欧美日韩国产mv | 国产午夜亚洲精品 | 久久99亚洲精品久久 | 国产成本人视频在线观看 | 国产精品久久久久久久久久久免费看 | www.色在线| 国产精品一区二区在线 | 国产视频1 | 麻豆91视频 | 国产精品一区二区三区在线播放 | 国产日产精品久久久久快鸭 | 91日韩在线专区 | 成人免费xxxxxx视频 | www好男人 | 国产精品一区二区在线免费观看 | 成人国产精品久久久久久亚洲 | 一二三精品视频 | 99久久精品免费看国产麻豆 | 五月开心综合 | 亚洲精品视频在线免费 | 狠狠躁天天躁 | 成人在线观看av | 国产福利av在线 | 处女av在线 | 天天操天天舔天天干 | 国产精品普通话 | 肉色欧美久久久久久久免费看 | 丁香花在线观看免费完整版视频 | 国产精品美女999 | 中文字幕在线观看一区二区三区 | 91在线资源 | 亚洲六月丁香色婷婷综合久久 | 97超视频 | 久久综合久久综合久久综合 | 国产成人专区 | 久久久久久久久久久久久国产精品 | 国产999精品久久久影片官网 | 美国av大片 | 国产视频2021| 久久艹在线| 国产精品免费久久久久久 | 久黄色| 亚洲黄色在线免费观看 | 久久人人爽人人 | 国产精品不卡在线观看 | 久久久99精品免费观看乱色 | 91精品麻豆 | 色综合久久久久 | 99在线观看视频 | 久久精品国产99 | 久久精品一区二区三区中文字幕 | av在线永久免费观看 | 日韩免费在线观看网站 | 久久久久久久久久电影 | 九九色综合 | 国产成人一区二区三区在线观看 | 黄色网址国产 | 在线中文日韩 | 成人视屏免费看 | 国产女人免费看a级丨片 | 国产乱对白刺激视频在线观看女王 | 欧美日韩视频在线 | 亚洲国产精品久久久久 | 日韩av资源在线观看 | 日日干日日 | 波多野结衣视频一区二区三区 | www操操操| 在线观看视频你懂得 | 亚洲第一中文网 | 成人97人人超碰人人99 | 黄色网免费 | 在线免费色视频 | 亚洲极色 | 成人在线免费视频观看 | 一级黄色网址 | 在线成人短视频 | 在线视频 一区二区 | 青草视频在线 | 免费视频区 | 最近的中文字幕大全免费版 | 青青河边草免费 | 夜夜操狠狠操 | 日韩大片免费在线观看 | 91福利区一区二区三区 | 一区三区在线欧 | a一片一级 | 国产精品久久久久999 | 99久久影视 | 奇米网444| 免费看的av片 | 中文字幕乱码一区二区 | 久草综合在线观看 | 午夜999 | 久久精品久久久久 | 日韩av图片| 中文字幕资源在线 | 久久国产乱 | 国产 中文 日韩 欧美 | 国产91在线看 | 夜夜澡人模人人添人人看 | 青青河边草免费观看完整版高清 | 亚洲网站在线看 | 国内精品一区二区 | 亚洲国产精品va在线看黑人 | 欧洲一区二区三区精品 | 毛片视频网址 | 久久久天天操 | 视频一区二区在线 | 久久久精品视频网站 | 亚洲国产精品va在线看黑人动漫 | 热久久电影| 日本中文字幕在线 | 超碰人人在 | 成人av一二三区 | 9在线观看免费高清完整 | www.夜夜干.com| 日本视频不卡 | 91九色在线播放 | 人人舔人人舔 | 久久久wwww| 激情综合亚洲精品 | 国产伦理久久精品久久久久_ | 国产精品久久嫩一区二区免费 | 天天综合天天做 | 成人免费观看大片 | 国产在线高清精品 | 国产成人久久av | 日韩在线高清免费视频 | 国产成人在线播放 | 在线高清一区 | 女人18毛片90分钟 | 人人澡人人爱 | 久久免费国产精品 | 粉嫩av一区二区三区四区在线观看 | 最新国产视频 | 国产自产在线视频 | 蜜桃视频成人在线观看 | 国产99自拍 | ,午夜性刺激免费看视频 | 国产色啪 | 91色亚洲 | 中文字幕在线国产 | 免费男女羞羞的视频网站中文字幕 | 亚洲激情视频在线 | 亚洲欧美成人在线 | 免费观看国产精品视频 | 97超碰免费在线观看 | 午夜影视一区 | 婷婷综合久久 | 日日爽夜夜操 | 超碰精品在线 | 国产一级在线看 | 成人在线视频你懂的 | 麻豆视屏| 日韩精品中文字幕久久臀 | 精品一区免费 | 在线观看国产成人av片 | 麻豆播放 | 在线免费观看不卡av | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 久久神马影院 | 91完整视频 | av一本久道久久波多野结衣 | 狠狠的操狠狠的干 | 88av色 | 97夜夜澡人人爽人人免费 | www.干| 日本aaaa级毛片在线看 | av大全在线免费观看 | 在线观看国产麻豆 | 国产精品永久久久久久久www | 天天草视频| 日韩免费视频网站 | 一级黄色片毛片 | 成年人国产视频 | 日韩视频免费在线 | 国产精品午夜久久久久久99热 | 欧美aa一级片 | 亚洲国产精品500在线观看 | 亚洲专区一二三 | 亚洲精品456在线播放 | 国产99在线免费 | 免费国产ww | 韩国av免费观看 | 久久99欧美 | 免费观看性生交大片3 | 成人av电影免费观看 | 亚洲福利精品 | 亚洲最新视频在线播放 | 国产精品久久久久永久免费观看 | 婷婷激情网站 | av资源在线看 | 97电影在线看视频 | 九九色在线观看 | 在线免费视 | 国内视频在线 | 99久久精品久久亚洲精品 | 国产精品久久久久久久久久久免费看 | 91亚瑟视频| 中文字幕 二区 | 视频在线一区 | 日韩高清黄色 | 久久男人视频 | 免费a视频| 久久伦理电影 | 日本特黄一级 | 亚洲视频综合在线 | 久久久久99精品国产片 | 91日韩在线视频 | 午夜av网站 | 亚洲一区二区三区四区在线视频 | 国产成人av电影在线 | 少妇bbbb搡bbbb搡bbbb | 在线免费日韩 | 亚洲欧美日韩一级 | 91少妇精拍在线播放 | 日韩精品一区二区三区丰满 | 丁香婷婷深情五月亚洲 | 国产一级二级av | 国产精品一区二区免费看 | 操少妇视频| 青青看片| 国产精品激情偷乱一区二区∴ | 国产资源网站 | 国产一区二区三区午夜 | 91精品国产麻豆国产自产影视 | 在线看国产视频 | 免费看久久久 | 在线观看爱爱视频 | 欧美精品亚洲二区 | 91久久国产自产拍夜夜嗨 | 欧美亚洲精品一区 | 成人免费在线观看入口 | 亚洲精品高清视频 | 久久精品免费 | 国产一区二区手机在线观看 | 天天人人| 91视频免费网址 | 亚洲天堂网站视频 | 制服丝袜成人在线 | 亚洲激情在线视频 | 911国产在线观看 | 欧美日韩视频在线 | 国产精品日韩欧美 | jizz欧美性9| 日韩免费在线观看网站 | 欧美日韩在线免费观看 | av电影 一区二区 | 免费毛片aaaaaa | 99久久婷婷国产一区二区三区 | 国产理论一区二区三区 | 精品中文字幕在线 | 国产人成精品一区二区三 | 亚洲第一香蕉视频 | 丰满少妇在线观看资源站 | 色视频在线观看免费 | 高潮毛片无遮挡高清免费 | 亚洲区另类春色综合小说校园片 | 狠狠色丁香婷婷综合久久片 | 色婷婷综合久色 | 456免费视频| 91成人观看 | 日韩高清一区 | 天天躁天天操 | 97精品免费视频 | 欧美日韩国产一区二区在线观看 | 97精品欧美91久久久久久 | 日韩欧美高清一区二区三区 | 日韩av区| 精品在线观 | 国产色视频网站2 | 国产理论一区二区三区 | 成人超碰在线 | 国产一级片播放 | 久草在线免费色站 | 欧美国产视频在线 | 美女网站色在线观看 | 亚洲激情 欧美激情 | 国产一级片免费观看 | 国产美女精品视频 | 美女在线免费观看视频 | 日本不卡123区 | 婷婷在线播放 | 人人玩人人添人人澡超碰 | 久久久久国产成人免费精品免费 | 久久综合狠狠综合 | 97超碰在线久草超碰在线观看 | 五月综合色 | 伊人婷婷综合 | 999久久精品 | 91精品在线播放 | 免费久久99精品国产婷婷六月 | 日本精品久久 | 成人黄色免费观看 | 81国产精品久久久久久久久久 | 91精品国自产在线观看 | 美腿丝袜av | 在线观看mv的中文字幕网站 | 日韩欧美精品一区二区三区经典 | 夜夜夜夜操 | 国产色在线,com | 久草在线欧美 | 高清av网 | 日韩高清av | 亚洲激情在线播放 | 成人久久亚洲 | 美女精品国产 | 久久蜜臀av| 成人在线免费观看视视频 | 国产麻豆传媒 | 成人免费电影 | 麻豆免费视频 | 狠狠天天 | 国产在线小视频 | 久久精品免费观看 | 久久人人爽人人爽人人 | 日日夜色 | 午夜av免费观看 | 天天综合网国产 | 久久精品视频网 | av免费片| 日韩欧美电影网 | 亚洲美女精品 | 中文字幕一区二 | 中文字幕在线字幕中文 | 欧美日韩国产色综合一二三四 | 国产精品一码二码三码在线 | 日本黄色免费电影网站 | 免费一级特黄毛大片 | 久久久久国产精品免费网站 | 日韩免费观看一区二区 | 成人免费视频a | 九九免费精品视频在线观看 | 国产在线播放一区二区三区 | 亚洲精品99久久久久中文字幕 | 婷婷综合导航 | 日韩欧美在线免费 | 久久视频精品在线观看 | 成人av网站在线观看 | 午夜美女网站 | 日韩免费三级 | 中文字幕一区二区三区视频 | 在线探花| 亚州精品天堂中文字幕 | 91在线九色 | 国产韩国日本高清视频 | 麻豆超碰| 婷婷久久丁香 | 香蕉视频在线免费 | 五月亚洲综合 | 特黄一级毛片 | 免费观看一区二区三区视频 | 一区二区在线电影 | 97电影院在线观看 | 三级在线视频观看 | 亚洲涩涩涩涩涩涩 | 99在线视频观看 | 久久国内精品99久久6app | 日韩亚洲国产中文字幕 | 99精品久久久久久久 | 国产高清在线免费 | 69亚洲视频 | 久草视频视频在线播放 | 久久a v电影 | 日本婷婷色| 亚洲一区日韩 | 黄色的网站免费看 | 免费人成在线观看网站 | 日韩精品一区二区三区免费观看 | 午夜精品一区二区三区可下载 | 五月天丁香视频 | 精品福利视频在线 | 午夜视频在线观看欧美 | 天天躁日日 | 天天干天天上 | 天天干天天干天天 | 免费日p视频 | 91精品一区国产高清在线gif | 996久久国产精品线观看 | 婷婷六月激情 | 国产夫妻性生活自拍 | 亚洲狠狠| 久久夜夜爽 | 免费高清在线观看电视网站 | 日韩免费一级电影 | 在线免费观看视频一区 | 久久草草影视免费网 | 久久开心激情 | 欧美一性一交一乱 | 97色国产 | 狠狠88综合久久久久综合网 | av夜夜操 | 日韩在线观看 | 波多野结衣精品 | 亚洲激精日韩激精欧美精品 | 尤物九九久久国产精品的分类 | 一区二区三区动漫 | 视频在线99re | 日本黄色免费播放 | 久久免费电影网 | 国产高清免费av | 超碰97国产 | 国产精品欧美精品 | 一区二区三区日韩视频在线观看 | 国产精品久久精品国产 | 天天色天天色天天色 | 99九九99九九九视频精品 | 九九热免费在线视频 | a在线v| 欧美a级一区二区 | 久久成人资源 | 国产五码一区 | 亚洲亚洲精品在线观看 | 天天综合视频在线观看 | 日韩精品在线免费观看 | 在线观看免费观看在线91 | 91看片在线 | 国产精品 视频 | 国产精品99久久免费黑人 | 综合视频在线 | 久久久黄色免费网站 | 视频在线观看91 | 久久精品99国产精品 | 精品一区二区三区四区在线 | 国产精品人人做人人爽人人添 | 中文字幕色网站 | 免费在线观看中文字幕 | 操久| 91精品视频观看 | 亚洲一区不卡视频 | 最近中文字幕国语免费高清6 | 久久久精品一区二区三区 | 亚洲专区 国产精品 | 欧美污网站| 国产精品一区二区av麻豆 | 久久久久精 | 69性欧美| 国产精品av免费 | 97爱 | 在线看欧美 | 在线视频福利 | 色插综合 | 97超碰人人澡人人爱 | 私人av| 日日日天天天 | 国产这里只有精品 | av在线收看 | 亚洲手机天堂 | 免费国产黄线在线观看视频 | 综合色伊人| 久爱综合 | 午夜在线免费观看 | 丁香婷婷亚洲 | 免费av成人在线 | 手机在线欧美 | 亚洲区视频在线 | 国产亚洲精品美女 | 婷婷色综 | 亚洲午夜久久久久久久久 | 午夜久久久久久久久久久 | 草免费视频| 久久久久电影网站 | 91精品国产99久久久久久久 | 亚洲h色精品 | 久久视频精品在线 | 亚洲免费在线看 | 国产亚洲va综合人人澡精品 | 久久国语露脸国产精品电影 | 欧美一二区视频 | 精品国产一区二区三区久久影院 | 99久久婷婷国产一区二区三区 | 日本中文字幕网 | 欧美激情操 | 四虎影视精品永久在线观看 | 日本精品久久久久中文字幕5 | 精品字幕在线 | 中文字幕日韩一区二区三区不卡 | av电影在线观看完整版一区二区 | 久久久精品一区二区三区 | 国产亚洲精品久久久久久久久久 | japanese黑人亚洲人4k | 超碰在线官网 | 成人精品国产免费网站 | 国产在线久久久 | 国产xvideos免费视频播放 | 午夜黄色一级片 | 丁香 久久 综合 | 国产在线欧美 | 超碰97人人在线 | 欧美日韩性| 成人午夜网址 | 日韩欧美有码在线 | 欧美人操人 | 国内精品免费 | 在线亚洲欧美视频 | 亚洲欧美视频在线观看 | 国内精品久久久久久久 | 狠狠的干狠狠的操 | 免费看的av片 | 人人爽人人做 | 看v片 | 国产xvideos免费视频播放 | 天天色天天干天天色 | 日日日日| 黄色a视频免费 | 黄色一级网 | 亚洲欧洲精品一区二区精品久久久 | 啪嗒啪嗒免费观看完整版 | 国产高清视频在线观看 | 超碰人在线 | 国产成人久久精品一区二区三区 | 天天操天天色天天射 | 中文字幕视频观看 | 在线观看色视频 | 97香蕉视频 | 一级国产视频 | 国产大陆亚洲精品国产 | 国产女v资源在线观看 | 久久久久久久久久久久久久av | 波多野结衣在线播放视频 | 波多野结衣在线视频免费观看 | 6080yy精品一区二区三区 | 国产精品系列在线播放 | 激情网五月婷婷 | 2021国产视频 | 韩国一区二区在线观看 | 婷婷在线网站 | 91在线91拍拍在线91 | 精品视频专区 | 午夜视频在线观看一区二区 | 国产视频一区二区在线 | 亚洲天堂自拍视频 | 亚洲综合色站 | 麻豆视频国产在线观看 | 中文在线免费观看 | 在线观看一级视频 | 日韩电影一区二区在线观看 | 久久久噜噜噜久久久 | 国产精品色视频 | 国产视频1 | 亚洲视频,欧洲视频 | 免费观看日韩av | 77国产精品 | 日韩av电影中文字幕在线观看 | 国产无区一区二区三麻豆 | 97在线观看免费高清 | 国产91在线免费视频 | 久久综合五月 | 久久艹在线| 日韩电影久久久 | 国产成人精品久久亚洲高清不卡 | 狠狠干 狠狠操 | 精品国产一区二区三区久久影院 | 成人一级在线 | 天天干视频在线 | 91麻豆精品国产 | 天天弄天天操 | 国产精品区免费视频 | 精品在线不卡 | 黄色毛片视频免费 | 亚洲一级电影在线观看 | 91精品国自产在线观看 | 精品在线不卡 | 另类五月激情 | 成人免费观看在线视频 | 成人资源在线观看 | 手机在线视频福利 | 国产精品九九九 | 一区二区三区视频在线 | 亚洲精品国产免费 | 韩国av免费观看 | 色婷婷国产在线 | 久精品视频在线 | 草久在线观看 | 成人久久18免费网站 | 婷婷色五 | 国产精品完整版 | 久久99精品热在线观看 | 欧美精品一区二区免费 | 免费观看一级视频 | 91激情视频在线观看 | 在线播放日韩av | 亚洲精品在线观看不卡 | 精品在线观看一区二区三区 | 亚洲精品中文字幕在线观看 | 午夜av色| 西西444www高清大胆 | 人人干人人草 | 国产a视频免费观看 | 九九综合久久 | 97在线观看视频国产 | 91热在线| 日韩二区在线播放 | 日韩免费中文 | 亚洲伊人网在线观看 | 麻豆av一区二区三区在线观看 | www.精选视频.com | 亚洲国产视频网站 | 在线国产能看的 | 亚洲五月六月 | 久久精品一区二区 | 日韩精品欧美专区 | 天天摸天天舔天天操 | 在线观看www. | 999色视频 | 亚洲性视频| 人人干人人艹 | 欧美日韩一区二区视频在线观看 | 黄色一级大片在线观看 | 婷婷六月天在线 | av高清一区 | 欧美精品色 | 99视频国产精品免费观看 | 999久久久免费视频 午夜国产在线观看 | 欧洲精品码一区二区三区免费看 | 亚洲精品福利在线 | 天天爽夜夜爽精品视频婷婷 | 成人免费观看大片 | 五月婷色 | 在线 国产 亚洲 欧美 | 天天综合网国产 | 综合天天色 | 992tv人人网tv亚洲精品 | 精品美女久久久久久免费 | 日韩一二三在线 | 日日夜夜狠狠操 | 99视频国产精品免费观看 | 久久国产视屏 | 婷婷午夜| 国产一区免费视频 | 99国产一区二区三精品乱码 | 日韩有码在线观看视频 | a午夜电影 | 国产又粗又硬又爽视频 | www.av免费观看 | 日韩欧美一区二区不卡 | 五月天激情综合 | 日韩av不卡播放 | 国产精品第54页 | 亚洲一区二区三区毛片 | 亚洲欧洲精品在线 | 国产 一区二区三区 在线 | 丁香色综合| 超碰免费97 | 久久久综合精品 | 国产精品自在线 | 国产成人精品久久亚洲高清不卡 | a在线一区 | 国产成人精品一区二三区 | 久草9视频 | www.com.日本一级| 91在线视频免费91 | 99视频免费在线观看 | 亚洲午夜久久久久久久久 | 午夜少妇一区二区三区 | 永久黄网站色视频免费观看w | 亚洲91精品在线观看 | 免费一级特黄毛大片 | 亚洲免费国产视频 | 色多视频在线观看 | 91在线免费观看网站 | 黄av在线| 日韩精品字幕 | 特级西西444www高清大视频 | 在线观看av大片 | 一区二区激情视频 | 久久人91精品久久久久久不卡 | 日韩| 狠狠做深爱婷婷综合一区 | 在线激情网 | 不卡的av片| 91亚洲国产成人久久精品网站 | 麻豆传媒在线免费看 | 日韩午夜大片 | 色综合久久久久综合体桃花网 | 一区二区精品在线 | 亚洲精品h| 黄色a一级视频 | 成人影音在线 | 福利视频区 | 人人澡人人干 | 在线最新av| 四虎免费在线观看视频 | 成 人 免费 黄 色 视频 | av在线免费在线观看 | 日韩av电影免费观看 | 久久久久久久久久久久久久av | 欧美 亚洲 另类 激情 另类 | 国产精品不卡在线观看 | 成人黄色在线电影 | 午夜免费久久看 | 综合婷婷久久 | 福利一区二区 | 成人免费视频网站在线观看 | 中文字幕专区高清在线观看 | 国产精品永久免费在线 | 国产精品av免费 | 91精品在线看| 国产精品久久久久久久7电影 | 国产一区二区中文字幕 | 欧美精品九九99久久 | 在线观看亚洲专区 | 最近久乱中文字幕 | 免费日韩 精品中文字幕视频在线 | 日韩高清免费在线观看 | 免费观看国产精品 | 伊人影院在线观看 | 欧美91视频 | 狠狠插狠狠操 | 在线视频欧美亚洲 | 天天色天天草天天射 | 91麻豆精品国产91久久久久久 | 久久久www免费电影网 | 欧美最猛性xxxxx(亚洲精品) | 久草免费在线观看视频 | 久久久99精品免费观看乱色 | 久久av网址 | 九草在线观看 | 国产精选在线观看 | 午夜精品久久久久久99热明星 | 亚洲最大成人免费网站 | 四虎在线永久免费观看 | 日日激情| 麻豆高清免费国产一区 | 久一久久| 日本在线观看视频一区 | 91在线看| 久久九九国产视频 | a黄色| 色wwwww| 国产精品久久久一区二区三区网站 | 欧美日韩一区二区免费在线观看 | 人人插超碰 | 久久九九九九 | 久久久久久久av麻豆果冻 | 国产美女视频免费观看的网站 | 人人澡av | 涩涩网站在线播放 | 激情婷婷久久 | 国产一区在线精品 | 日韩电影黄色 | 中文字幕在线观看免费高清完整版 | 欧美怡红院视频 | 精品免费观看 | 亚洲激情 在线 | 一级国产视频 | 国产亚洲精品久久久久久大师 | 国产va饥渴难耐女保洁员在线观看 | 在线免费91 | 国产视频一区在线播放 | 婷婷精品在线视频 | 成人久久影院 | 成人免费在线看片 | 人人狠狠综合久久亚洲 | 精品在线二区 | 爱色婷婷| 欧美福利网站 | 国内久久精品视频 | 91视频成人免费 | 永久免费看av| 欧美成人免费在线 | 日韩v欧美v日本v亚洲v国产v | 国产一区二区影院 | 3d黄动漫免费看 | 国产视频中文字幕在线观看 | 91精彩视频在线观看 | 中文字幕在线播放日韩 | 国产精品久久久久久超碰 | 天天操天天操天天操天天 | 精品一区二区三区四区在线 | 精品国产91亚洲一区二区三区www | 99精品视频中文字幕 | 日韩av电影中文字幕在线观看 | 99av在线视频| 成人午夜网 | 最新午夜电影 | 久久久午夜视频 | av久久久久久| 色网站在线免费观看 | 91精选 | 99久高清在线观看视频99精品热在线观看视频 | 日日夜夜亚洲 | 国产精品毛片一区二区 | 亚洲精品成人 | 国产在线最新 | 亚洲精品色视频 | 在线日韩亚洲 | 丁香花在线视频观看免费 | 欧美精品在线免费 | 日韩在线不卡视频 | 黄色网www| 国产99久久九九精品免费 | 超碰99人人 | 中文字幕一区二区三区四区在线视频 | 亚洲一区二区三区毛片 | 国产手机在线观看视频 | 天天精品视频 | 美女精品网站 | 又黄又爽免费视频 | 免费av网址在线观看 |