构造函数的作用'DYNP_GET_STEPL'的作用?

abap中资产负债表的开发
|主题 |帖子 |积分
马上注册,一起探讨正确快速的SAP实战方法
才可以下载或查看,没有帐号?
资产负债表(the Balance Sheet)亦称财务状况表,表示企业在一定日期(通常为各会计期末)的财务状况(即资产、负债和业主权益的状况)的主要会计,资产负债表利用会计平衡原则,将合乎会计原则的资产、负债、股东权益”交易科目分为“资产”和“负债及股东权益”两大区块,在经过分录、转帐、分类帐、试算、调整等等会计程序后,以特定日期的静态企业情况为基准,浓缩成一张报表。其报表功用除了企业内部除错、经营方向、防止弊端外,也可让所有阅读者于最短时间了解企业经营状况。
资产负债表选择屏幕.jpg (63.54 KB, 下载次数: 3)
20:45 上传
程序执行结果屏幕:
资产负债表.jpg (156.83 KB, 下载次数: 0)
20:45 上传
主程序代码:
*&---------------------------------------------------------------------*
*& Report&&ZDEMON_030
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT&&zdemon_030 MESSAGE-ID zfirpt.
*&---------------------------------------------------------------------*
*& tables & nodes
*&---------------------------------------------------------------------*
TABLES:&&t001,&&&公司主数据
& && && &bkpf,&&&会计凭证头
& && && &v_tcurr,&视图& &货币兑换利率
& && && &faglflext.&&&科目余额表
*&---------------------------------------------------------------------*
*& internal tables
*&---------------------------------------------------------------------*
DATA: BEGIN OF tb_result OCCURS 0, &资产负债表结果集
& && &&&companyid(4)&&TYPE c,
& && &&&asset1(30) TYPE c,& && && &&资产项目
& && &&&row1(2)& & TYPE c,& && && &&行次
& && &&&start1& &&&LIKE faglflext-hslvt,&期初值
& && &&&end1& && & LIKE faglflext-hslvt,&期未值
& && &&&asset2(30) TYPE c,& && && &&资产项目
& && &&&row2(2)& & TYPE c,& && && &&行次
& && &&&start2& &&&LIKE faglflext-hslvt,&期初值
& && &&&end2& && & LIKE faglflext-hslvt,&期未值
& && &END OF tb_result.
DATA: BEGIN OF prt_result OCCURS 0, &资产负债表结果集
& && &&&companyid(4)&&TYPE c,
& && &&&asset1(30) TYPE c,& && && & &资产项目
& && &&&row1(2)& & TYPE c,& && && &&行次
& && &&&start1(16) TYPE c,& && && & &期初值
& && &&&end1(16)& &TYPE c,& && && & &期未值
& && &&&asset2(30) TYPE c,& && && & &资产项目
& && &&&row2(2)& & TYPE c,& && && &&行次
& && &&&start2(16) TYPE c,& && && & &期初值
& && &&&end2(16)& &TYPE c,& && && & &期未值
& && &END OF prt_result.
*&---------------------------------------------------------------------*
*& variant declare
*&---------------------------------------------------------------------*
DATA:&&s_butxt(50) TYPE c,&&&公司名称
& && &s_m1(23)&&TYPE c,
& && &s_m2(23)&&TYPE c,
& && &s_m3(23)&&TYPE c,
& && &s_m4(23)&&TYPE c.
**PARAMTERS FOR OUTPUT FORMAT
DATA: i_lwidth TYPE i VALUE 185,&&&横线宽
& && &i_col1 TYPE i VALUE 35,& && && && && && && && && && & &列1宽
& && &i_col2 TYPE i VALUE 4,& && && && && && && && && && &&&&列2宽
& && &i_col3 TYPE i VALUE 20,& && && && && && && && && && & &列3宽
& && &i_col4 TYPE i VALUE 20.& && && && && && && && && && & &列4宽
DATA: dynpread LIKE TABLE OF dynpread WITH HEADER LINE.
DATA: dcurr LIKE TABLE OF bapi1093_0 WITH HEADER LINE.
TYPE-POOLS: slis.
DATA: fieldcat TYPE slis_t_fieldcat_ WITH HEADER LINE,
& && &fld_head TYPE slis_listheader,
& && &sortcat&&TYPE slis_t_sortinfo_alv,
& && &sortcatln& &LIKE& &LINE OF sortcat,
& && &itab_listhead TYPE slis_t_listheader,
& && &layout TYPE&&slis_layout_alv,
& && &v_repid LIKE sy-repid,
& && &rt_extab TYPE slis_t_extab,
& && &eventcat& &&&TYPE& &slis_t_event.
DATA: tmpdate LIKE sy-datum,
& && &prtdate LIKE sy-datum,
& && &tempcurr LIKE bapi1093_1-from_curr,
& && &exch_rate(10) TYPE c,
& && &txunit(10) TYPE c,
& && &errorflag&&TYPE c,
& && &txcurr(16) TYPE c.
*&---------------------------------------------------------------------*
*& selection-screen
*&---------------------------------------------------------------------*
SELECT-OPTIONS:
&&s_rbukrs FOR bkpf-bukrs OBLIGATORY .& &&&&公司代码
PARAMETERS:
&&i_gjahr LIKE bkpf-gjahr DEFAULT sy-datum+0(4) OBLIGATORY,&&&财务年度
&&i_monat LIKE bkpf-monat OBLIGATORY,& && &&期间
*&&waers& &like bkpf-waers OBLIGATORY.& && &&货币代码
&&p_butxt(40) TYPE c.
SELECTION-SCREEN BEGIN OF BLOCK b02 WITH FRAME TITLE tit.&&&选择屏幕
PARAMETERS:& && && && && && && && && && && && && && && && & &单选按钮
& &p_1&&RADIOBUTTON GROUP g1 DEFAULT 'X',
& &p_2&&RADIOBUTTON GROUP g1,
& &p_3&&RADIOBUTTON GROUP g1.
SELECTION-SCREEN END OF BLOCK b02.& && && && && && && && &&&&选择屏幕结束
SELECTION-SCREEN BEGIN OF BLOCK b01 WITH FRAME TITLE text-001.
PARAMETERS:& && && && && && && && && && && && && && && && & &单选按钮
& &m_1&&RADIOBUTTON GROUP g2 DEFAULT 'X',
& &m_2&&RADIOBUTTON GROUP g2,
& &waers& &LIKE bkpf-waers ,& && &&货币代码
& &p_flag AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK b01.
*&---------------------------------------------------------------------*
*& initialization
*&---------------------------------------------------------------------*
INITIALIZATION.
&&tit = '金额单位'.
*&---------------------------------------------------------------------*
*& AT SELECTION-SCREEN OUTPUT
*&---------------------------------------------------------------------*
*AT SELECTION-SCREEN OUTPUT.
*&&perform read_screen.
*&&LOOP AT SCREEN.
*& & IF m_2 = 'X' AND ( screen-name = 'WAERS' or screen-name = 'P_FLAG'
*& && & or screen-name = '%_WAERS_%_APP_%-TEXT').
*& && &screen-active = 1.
*& && &if screen-name = 'WAERS'.
*& && &&&screen-request&&= 1.
*& && &&&screen-required = 1.
*& && &endif.
*& && &MODIFY SCREEN.
*& & ENDIF.
*& & IF m_2 = '' AND ( screen-name = 'WAERS' or screen-name = 'P_FLAG'
*& && & or screen-name = '%_WAERS_%_APP_%-TEXT').
*& && &screen-active = 0.
*& && &if screen-name = 'WAERS'.
*& && &&&screen-request&&= 0.
*& && &&&screen-required = 0.
*& && &endif.
*& && &MODIFY SCREEN.
*& & ENDIF.
*&&ENDLOOP.
*&---------------------------------------------------------------------*
*& at selection-screen
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN.
&&PERFORM check.
*--&调试程序时 可以先把这里的权限代码注释掉在运行
&&SELECT * FROM t001 WHERE bukrs IN s_rbukrs .
& & errorflag = ''.
& & AUTHORITY-CHECK OBJECT 'ZFIRPT'& && && && && && && && &&&&权限判断
& && && && & ID 'BUKRS' FIELD t001-bukrs.
& & IF sy-subrc = 0.
& && &errorflag = 'f'.
& & ENDIF.
& & AUTHORITY-CHECK OBJECT 'ZPARK'& && && && && && && && &&&&权限判断
& && && && & ID 'BUKRS' FIELD t001-bukrs.
& & IF sy-subrc = 0.
& && &errorflag = 'f'.
& & ENDIF.
& & IF errorflag = ''.
& && &MESSAGE e999(z01) WITH '没有在公司代码' t001-bukrs '操作的权限!'.
& & ENDIF.
&&ENDSELECT.
&&IF i_monat & 1 OR i_monat & 16.&对期间值必须在1-16之间
& & MESSAGE e004.
&&ENDIF.
*&---------------------------------------------------------------------*
*& start-of-selection
*&---------------------------------------------------------------------*
START-OF-SELECTION.
&&CONCATENATE i_gjahr i_monat '01' INTO tmpdate.& && &&&&组合年份
&&CALL FUNCTION 'LAST_DAY_OF_MONTHS'
& & EXPORTING
& && &day_in& && && && &= tmpdate& && && && && && &&根据传入的参数,输出一个月的最后一天
& & IMPORTING
& && &last_day_of_month = prtdate
& & EXCEPTIONS
& && &day_in_no_date& & = 1
& && &OTHERS& && && && &= 2.
* 获得当前汇率
&&tempcurr = waers.
&&CALL FUNCTION 'BAPI_EXCHANGERATE_GETDETAIL'
& & EXPORTING
& && &rate_type&&= 'M'
& && &from_curr&&= tempcurr
& && &to_currncy = 'CNY'
& && &date& && & = tmpdate
& & IMPORTING
& && &exch_rate&&= dcurr
*& &&&RETURN& &&&=
& & .
&&READ TABLE dcurr INDEX 1.
&&exch_rate = dcurr-exch_rate.
&&IF p_1 = 'X'.& && && && && && &&根据单选框的值给变量值
& & txunit = '元'.
&&ENDIF.
&&IF p_2 = 'X'.
& & txunit(*) = '千元'.
&&ENDIF.
&&IF p_3 = 'X'.
& & txunit = '万元'.
&&ENDIF.
*&&if p_flag = 'X' and i_monat = '12'.&&&判断复选框
*& & i_monat = '16'.
*&&endif.
&&SELECT SINGLE ktext INTO txcurr& && & &根据货币单位的值返回货币名称
& & FROM tcurt
& &WHERE waers = waers.
&&IF m_1 = 'X'.
& & txcurr = '人民币(汇总)'.
&&ELSE.
& & IF p_flag = 'X'.
& && &CONCATENATE txcurr '折人民币' INTO txcurr.
& & ENDIF.
&&ENDIF.
* 取公司名称
&&IF s_rbukrs-high IS INITIAL OR s_rbukrs-low = s_rbukrs-high.& && &&判断是否为空
& & SELECT SINGLE butxt INTO s_butxt FROM t001 WHERE bukrs = s_rbukrs-low.
&&ELSE.
& & IF p_butxt IS NOT INITIAL.
& && &s_butxt = p_butxt.
& & ELSE.
& && &CONCATENATE '从' s_rbukrs-low '到' s_rbukrs-high INTO s_butxt.
& & ENDIF.
&&ENDIF.
&&IF s_rbukrs-low(2) = s_rbukrs-high(2) AND s_rbukrs-low && s_rbukrs-high.
& & CLEAR s_butxt.
& & SELECT SINGLE butxt INTO s_butxt FROM t001 WHERE bukrs = s_rbukrs-low.
& & CONCATENATE s_butxt '(汇总)' INTO s_butxt.
&&ENDIF.
&&DATA curr LIKE TABLE OF tcurr WITH HEADER LINE.
&&SELECT * INTO CORRESPONDING FIELDS OF TABLE curr FROM tcurr
& & WHERE kurst = 'M'
& && &AND fcurr = waers
& && &AND tcurr = 'CNY'.
&&DATA: f_tols1 LIKE faglflext-hslvt,&资产期初总计
& && &&&f_tole1 LIKE faglflext-hslvt,&资产期末总计
& && &&&f_tols2 LIKE faglflext-hslvt,&负债期初总计
& && &&&f_tole2 LIKE faglflext-hslvt,&负债期末总计
& && &&&f_sums1 LIKE faglflext-hslvt,&资产期初小计
& && &&&f_sume1 LIKE faglflext-hslvt,&资产期末小计
& && &&&f_sums2 LIKE faglflext-hslvt,&负债期初小计
& && &&&f_sume2 LIKE faglflext-hslvt,&负债期末小计
& && &&&f_rlts1 LIKE faglflext-hslvt,
& && &&&f_rlte1 LIKE faglflext-hslvt,
*& && &&&zx_s LIKE FAGLFLEXT-hslvt,
*& && &&&zx_e LIKE FAGLFLEXT-hslvt,
& && &&&f_rlts2 LIKE faglflext-hslvt,
& && &&&f_rlte2 LIKE faglflext-hslvt.
&&DATA: f_smny1 LIKE faglflext-hslvt,
& && &&&f_emny1 LIKE faglflext-hslvt.
**数据计算
&&PERFORM add_row USING '流动资产:' '' ''
& && && && && && && && &'流动负债:' '' ''
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&PERFORM add_row USING '&&现金'& && & '1001' '1'
& && && && && && && && &'&&短期借款'& &'2101' '46'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.& &&期间---公司代码---年份
&&f_sums2 = tb_result-start2.& && && && && && &&初始值
&&f_sume2 = tb_result-end2.& && && && && && &&&&初始值
&&f_tols1 = tb_result-start1.& && && && && && &&初始值
&&f_tole1 = tb_result-end1.& && && && && && &&&&初始值
&&PERFORM add_row USING '&&银行存款'& &'1002' '2'
& && && && && && && && &'&&拆入资金'& &'2102' '47'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums2 = f_sums2 + tb_result-start2.
&&f_sume2 = f_sume2 + tb_result-end2.
&&f_tols1 = f_tols1 + tb_result-start1.
&&f_tole1 = f_tole1 + tb_result-end1.
&&PERFORM add_row USING '&&其他货币'& &'' '2'
& && && && && && && && &'&&应付利息'& &'2110' '80'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums2 = f_sums2 + tb_result-start2.
&&f_sume2 = f_sume2 + tb_result-end2.
&&f_tols1 = f_tols1 + tb_result-start1.
&&f_tole1 = f_tole1 + tb_result-end1.
&&PERFORM add_row USING '&&短期投资'& &'1101' '3'
& && && && && && && && &'&&应付手续费' '2111' '48'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums2 = f_sums2 + tb_result-start2.
&&f_sume2 = f_sume2 + tb_result-end2.
&&f_tols1 = f_tols1 + tb_result-start1.
&&f_tole1 = f_tole1 + tb_result-end1.
*********************************************************************************************************
&&PERFORM add_row USING '&&短期投资跌价准备'& &'1102' '4'
& && && && && && && && &'&&待返售债券' '2109' '48'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums2 = f_sums2 + tb_result-start2.
&&f_sume2 = f_sume2 + tb_result-end2.
&&f_tols1 = f_tols1 + tb_result-start1.
&&f_tole1 = f_tole1 + tb_result-end1.
&&PERFORM add_row USING '&&待回购债券'& &'' '4'
& && && && && && && && &'&&应付佣金' '2112' '49'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums2 = f_sums2 + tb_result-start2.
&&f_sume2 = f_sume2 + tb_result-end2.
&&f_tols1 = f_tols1 + tb_result-start1.
&&f_tole1 = f_tole1 + tb_result-end1.
&&PERFORM add_row USING '&&拆出资金'& && && &&&'1111' '5'
& && && && && && && && &'&&应付分保帐款 '& && & '2113' '50'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums2 = f_sums2 + tb_result-start2.
&&f_sume2 = f_sume2 + tb_result-end2.
&&f_tols1 = f_tols1 + tb_result-start1.
&&f_tole1 = f_tole1 + tb_result-end1.
&&PERFORM add_row USING '&&保单质押贷款'& && && &&&'1112' '5'
& && && && && && && && &'&&预收保费'& && & '2121' '51'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums2 = f_sums2 + tb_result-start2.
&&f_sume2 = f_sume2 + tb_result-end2.
&&f_tols1 = f_tols1 + tb_result-start1.
&&f_tole1 = f_tole1 + tb_result-end1.
*------------------------------应收款项开始------------------------------------
&&PERFORM add_row USING '&&应收利息'& && && &&&'1121' '6'
& && && && && && && && &'&&预收分保赔款'& && & '2122' '52'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums1 = tb_result-start1.& && && && && &&&&应收款小计
&&f_sume1 = tb_result-end1.& && && && && && & &应收款小计
&&f_sums2 = f_sums2 + tb_result-start2.
&&f_sume2 = f_sume2 + tb_result-end2.
&&f_tols1 = f_tols1 + tb_result-start1.
&&f_tole1 = f_tole1 + tb_result-end1.
&&PERFORM add_row USING '&&应收红利'& & '1125' '6'
& && && && && && && && &'&&存入分保准备金'& &&&'2131' '53'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums1 = f_sums1 + tb_result-start1.& && && && && &&应收款小计
&&f_sume1 = f_sume1 + tb_result-end1.& && && && && &&&&应收款小计
&&f_sums2 = f_sums2 + tb_result-start2.
&&f_sume2 = f_sume2 + tb_result-end2.
&&f_tols1 = f_tols1 + tb_result-start1.
&&f_tole1 = f_tole1 + tb_result-end1.
&&PERFORM add_row USING '&&应收保费'& && && &&&'1122' '7'
& && && && && && && && &'&&存入保证金'& &&&'2132' '54'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums1 = f_sums1 + tb_result-start1.& && && && && & &应收款小计
&&f_sume1 = f_sume1 + tb_result-end1.& && && && && && &&应收款小计
&&f_sums2 = f_sums2 + tb_result-start2.
&&f_sume2 = f_sume2 + tb_result-end2.
&&f_tols1 = f_tols1 + tb_result-start1.
&&f_tole1 = f_tole1 + tb_result-end1.
&&PERFORM add_row USING '&&应收分保账款'& &'1123' '8'
& && && && && && && && &'&&应付工资'& && && &'2141' '55'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums1 = f_sums1 + tb_result-start1. &应收款项小计 - 减:坏帐准备
&&f_sume1 = f_sume1 + tb_result-end1.& &&应收款项小计 - 减:坏帐准备
&&f_sums2 = f_sums2 + tb_result-start2.
&&f_sume2 = f_sume2 + tb_result-end2.
&&f_tols1 = f_tols1 + tb_result-start1.
&&f_tole1 = f_tole1 + tb_result-end1.
&&PERFORM add_row USING '&&应收款项小计'& && & '' '9'
& && && && && && && && &'&&应付福利费' '2142' '56'
& && && && && && && && &i_monat s_rbukrs i_gjahr 2 1.
&&f_sums2 = f_sums2 + tb_result-start2.
&&f_sume2 = f_sume2 + tb_result-end2.
&&PERFORM add_row USING '& && &减:坏帐准备'&&'1124'&&'11'
& && && && && && && && &'&&应付保户红利'&&'2143' '57'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums1 = f_sums1 - tb_result-start1. &应收款项小计 - 减:坏帐准备
&&f_sume1 = f_sume1 - tb_result-end1.& &&应收款项小计 - 减:坏帐准备
&&f_sums2 = f_sums2 + tb_result-start2.
&&f_sume2 = f_sume2 + tb_result-end2.
&&f_tols1 = f_tols1 - tb_result-start1.
&&f_tole1 = f_tole1 - tb_result-end1.
&&PERFORM add_row USING '&&应收款项净额'&&'' '12'
& && && && && && && && &'&&应付利润'&&'2145' '58'
& && && && && && && && &i_monat s_rbukrs i_gjahr 2 1.
&&f_sums2 = f_sums2 + tb_result-start2.
&&f_sume2 = f_sume2 + tb_result-end2.
*------------------------------应收款项结束-----------------------------
&&PERFORM add_row USING '&&预付赔款' '1131' '13'
& && && && && && && && &'&&应交税金' '2146' '59'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums2 = f_sums2 + tb_result-start2.
&&f_sume2 = f_sume2 + tb_result-end2.
&&f_tols1 = f_tols1 + tb_result-start1.
&&f_tole1 = f_tole1 + tb_result-end1.
&&PERFORM add_row USING '&&存出分保准备金' '1141' '14'
& && && && && && && && &'&&卖出回购证券款'& &'2147' '60'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums2 = f_sums2 + tb_result-start2.
&&f_sume2 = f_sume2 + tb_result-end2.
&&f_tols1 = f_tols1 + tb_result-start1.
&&f_tole1 = f_tole1 + tb_result-end1.
&&PERFORM add_row USING '&&存出保证金' '1142' '15'
& && && && && && && && &'&&其他应付款'& &'2149' '61'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums2 = f_sums2 + tb_result-start2.
&&f_sume2 = f_sume2 + tb_result-end2.
&&f_tols1 = f_tols1 + tb_result-start1.
&&f_tole1 = f_tole1 + tb_result-end1.
&&PERFORM add_row USING '&&买入返售证券' '1151' '16'
& && && && && && && && &'&&预提费用'& &'2151' '62'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums2 = f_sums2 + tb_result-start2.
&&f_sume2 = f_sume2 + tb_result-end2.
&&f_tols1 = f_tols1 + tb_result-start1.
&&f_tole1 = f_tole1 + tb_result-end1.
&&PERFORM add_row USING '&&其他应收款'& && && &'1191' '17'
& && && && && && && && &'&&未决赔款准备金'& &'2161' '63'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums2 = f_sums2 + tb_result-start2.
&&f_sume2 = f_sume2 + tb_result-end2.
&&f_tols1 = f_tols1 + tb_result-start1.
&&f_tole1 = f_tole1 + tb_result-end1.
&&PERFORM add_row USING '&&系统往来'& && && &'1199' '66'
& && && && && && && && &'&&未到期责任准备金'& &'2162' '64'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums2 = f_sums2 + tb_result-start2.
&&f_sume2 = f_sume2 + tb_result-end2.
&&f_tols1 = f_tols1 + tb_result-start1.
&&f_tole1 = f_tole1 + tb_result-end1.
&&PERFORM add_row USING '&&委托资产'& &&&'1198' '66'
& && && && && && && && &'&&保户储金 '& &'2171' '65'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums2 = f_sums2 + tb_result-start2.
&&f_sume2 = f_sume2 + tb_result-end2.
&&f_tols1 = f_tols1 + tb_result-start1.
&&f_tole1 = f_tole1 + tb_result-end1.
&&PERFORM add_row USING '&&物料用品'& &'1201' '18'
& && && && && && && && &'&&其他流动负债'& &'' '67'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_tols1 = f_tols1 + tb_result-start1.
&&f_tole1 = f_tole1 + tb_result-end1.
&&PERFORM add_row USING '&&低值易耗品'& &'1211' '19'
& && && && && && && && &'&&流动负债合计'& &'' '68'
& && && && && && && && &i_monat s_rbukrs i_gjahr 3 1.
&&f_tols1 = f_tols1 + tb_result-start1.
&&f_tole1 = f_tole1 + tb_result-end1.
&&f_tols2 = f_sums2.
&&f_tole2 = f_sume2.
&&f_rlts2 = f_sums2. &流动负债合计临时结果,用于后面计算
&&f_rlte2 = f_sume2. &
&&PERFORM add_row USING '&&待摊费用'& &'1301' '20'
& && && && && && && && &'& &'& &'' ''
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
*&&f_sums2 = f_sums2 + tb_result-start2.
*&&f_sume2 = f_sume2 + tb_result-end2.
&&f_tols1 = f_tols1 + tb_result-start1.
&&f_tole1 = f_tole1 + tb_result-end1.
&&PERFORM add_row USING '&&待处理流动资产净损失'& &'190101' '21'
& && && && && && && && &'长期负债: '& &'' '69'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_tols1 = f_tols1 + tb_result-start1.
&&f_tole1 = f_tole1 + tb_result-end1.
&&PERFORM add_row USING '&&一年内到期的长期债券投资'& &'' '22'
& && && && && && && && &'&&长期责任准备金'& &'' '70'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&PERFORM add_row USING '&&其他流动资产'& &'' '23'
& && && && && && && && &'&&寿险责任准备金& &'& &'2202' '71'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums2 = tb_result-start2.
&&f_sume2 = tb_result-end2.
&&f_sums1 = f_tols1.
&&f_sume1 = f_tole1.
&&PERFORM add_row USING '& && & 流动资产合计'& &'' '24'
& && && && && && && && &'&&长期健康险责任准备金 '& &'2203' '72'
& && && && && && && && &i_monat s_rbukrs i_gjahr 2 1.
&&f_sums2 = f_sums2 + tb_result-start2.
&&f_sume2 = f_sume2 + tb_result-end2.
*-----------------------------------流动资产--------------------
&&PERFORM add_row USING '长期投资:'& &'' '25'
& && && && && && && && &'&&'& &'' ''
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&PERFORM add_row USING '&&长期股权投资'& &'1401' '26'
& && && && && && && && &'&&保险保障基金'& &'2211' '73'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums1 = tb_result-start1.
&&f_sume1 = tb_result-end1.
&&f_tols1 = f_tols1 + tb_result-start1.
&&f_tole1 = f_tole1 + tb_result-end1.
&&f_sums2 = f_sums2 + tb_result-start2.
&&f_sume2 = f_sume2 + tb_result-end2.
&&PERFORM add_row USING '&&长期债权投资'& &'1402' '27'
& && && && && && && && &'&&长期借款'& &'' '74'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums1 = f_sums1 + tb_result-start1.
&&f_sume1 = f_sume1 + tb_result-end1.
&&f_tols1 = f_tols1 + tb_result-start1.
&&f_tole1 = f_tole1 + tb_result-end1.
&&PERFORM add_row USING '&&长期基金投资'& &'1403' '35'
& && && && && && && && &'&&长期应付款'& &'' '75'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums1 = f_sums1 + tb_result-start1.
&&f_sume1 = f_sume1 + tb_result-end1.
&&f_tols1 = f_tols1 + tb_result-start1.
&&f_tole1 = f_tole1 + tb_result-end1.
&&PERFORM add_row USING '&&拨付所属资金'& &'' ''
& && && && && && && && &'&&贷币兑换' '2241' ''
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums2 = f_sums2 + tb_result-start2.
&&f_sume2 = f_sume2 + tb_result-end2.
&&PERFORM add_row USING '&&减:投资风险准备'& &'1405' '28'
& && && && && && && && &'&&住房周转金'& &'' '76'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums1 = f_sums1 - tb_result-start1.
&&f_sume1 = f_sume1 - tb_result-end1.
&&f_tols1 = f_tols1 - tb_result-start1.
&&f_tole1 = f_tole1 - tb_result-end1.
&&PERFORM add_row USING '&&长期投资合计'& &'' ''
& && && && && && && && &'&&其他长期负债'& &'' '77'
& && && && && && && && &i_monat s_rbukrs i_gjahr 2 3.
&&PERFORM add_row USING '固定资产:'& &'' ''
& && && && && && && && &'&&独立帐户负债' '' '78'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 3.
&&PERFORM add_row USING '&&固定资产原值'& &'1601' '30'
& && && && && && && && &'&&独立帐户未实现利得' '' '79'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums1 = tb_result-start1.
&&f_sume1 = tb_result-end1.
&&f_tols1 = f_tols1 + tb_result-start1.
&&f_tole1 = f_tole1 + tb_result-end1.
&&PERFORM add_row USING '& & 减:累计折旧'& &'1602' '31'
& && && && && && && && &'&&长期负债合计' '' '80'
& && && && && && && && &i_monat s_rbukrs i_gjahr 3 2.
&&f_sums1 = f_sums1 - tb_result-start1.
&&f_sume1 = f_sume1 - tb_result-end1.
&&f_tols1 = f_tols1 - tb_result-start1.
&&f_tole1 = f_tole1 - tb_result-end1.
&&f_tols2 = f_tols2 + f_sums2.
&&f_tole2 = f_tole2 + f_sume2.
&&f_sums2 = f_sums2 + f_rlts2.&&&长期负债合计 + 流动负债合计
&&f_sume2 = f_sume2 + f_rlte2.
&&PERFORM add_row USING '& & 减:固定资产减值准备'& &'1603' ''
& && && && && && && && &' 负债合计 ' '' '81'
& && && && && && && && &i_monat s_rbukrs i_gjahr 3 1.
&&f_sums1 = f_sums1 - tb_result-start1.
&&f_sume1 = f_sume1 - tb_result-end1.
&&f_tols1 = f_tols1 - tb_result-start1.
&&f_tole1 = f_tole1 - tb_result-end1.
*&&f_tols2 = f_tols2 + tb_result-start2.
*&&f_tole2 = f_tole2 + tb_result-end2.
&&PERFORM add_row USING '&&固定资产净值'& &'' '32'
& && && && && && && && &'所有者权益:' '' '82'
& && && && && && && && &i_monat s_rbukrs i_gjahr 2 3.
&&PERFORM add_row USING ' 在建工程'& &'1606' '33'
& && && && && && && && &'&&实收资本' '3101' '83'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums1 = f_sums1 + tb_result-start1.
&&f_sume1 = f_sume1 + tb_result-end1.
&&f_tols1 = f_tols1 + tb_result-start1.
&&f_tole1 = f_tole1 + tb_result-end1.
&&f_sums2 = tb_result-start2.
&&f_sume2 = tb_result-end2.
&&PERFORM add_row USING '&&减: 在建工程减值准备 '& &'1607' ''
& && && && && && && && &'&&上级拨入资金' '' ''
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums1 = f_sums1 - tb_result-start1.
&&f_sume1 = f_sume1 - tb_result-end1.
&&f_tols1 = f_tols1 - tb_result-start1.
&&f_tole1 = f_tole1 - tb_result-end1.
&&PERFORM add_row USING ' 固定资产清理'& &'1609' '34'
& && && && && && && && &'&&资本公积' '3111' '84'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums1 = f_sums1 + tb_result-start1.
&&f_sume1 = f_sume1 + tb_result-end1.
&&f_tols1 = f_tols1 + tb_result-start1.
&&f_tole1 = f_tole1 + tb_result-end1.
&&f_sums2 = f_sums2 + tb_result-start2.
&&f_sume2 = f_sume2 + tb_result-end2.
&&PERFORM add_row USING ' 待处理固定资产净损失'& &'190102' '35'
& && && && && && && && &'&&盈余公积' '3121' '85'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums1 = f_sums1 + tb_result-start1.
&&f_sume1 = f_sume1 + tb_result-end1.
&&f_tols1 = f_tols1 + tb_result-start1.
&&f_tole1 = f_tole1 + tb_result-end1.
&&f_sums2 = f_sums2 + tb_result-start2.
&&f_sume2 = f_sume2 + tb_result-end2.
&&PERFORM add_row USING '& && &固定资产合计'& &'' '36'
& && && && && && && && &'&&其中: 公益金' '' '86'
& && && && && && && && &i_monat s_rbukrs i_gjahr 2 1.
*&&f_sums2 = f_sums2 + tb_result-start2.
*&&f_sume2 = f_sume2 + tb_result-end2.
&&PERFORM add_row USING '无形资产及其他资产:'& &'' '37'
& && && && && && && &&&'& &总准备金' '3131' '87'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums2 = f_sums2 + tb_result-start2.
&&f_sume2 = f_sume2 + tb_result-end2.
&&PERFORM add_row USING '&&无形资产'& &'1701' '38'
& && && && && && && && &'&&未分配利润' '3141' '88'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums1 = tb_result-start1.
&&f_sume1 = tb_result-end1.
&&f_tols1 = f_tols1 + tb_result-start1.
&&f_tole1 = f_tole1 + tb_result-end1.
&&f_sums2 = f_sums2 + tb_result-start2.
&&f_sume2 = f_sume2 + tb_result-end2.
&&PERFORM add_row USING '&&长期待摊费用'& &'1711' '39'
& && && && && && && && &'& &以前年度损益科目' '4801' '88'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums1 = f_sums1 + tb_result-start1.
&&f_sume1 = f_sume1 + tb_result-end1.
&&f_tols1 = f_tols1 + tb_result-start1.
&&f_tole1 = f_tole1 + tb_result-end1.
&&f_sums2 = f_sums2 + tb_result-start2.
&&f_sume2 = f_sume2 + tb_result-end2.
&&PERFORM add_row USING '&&存出资本保证金'& &'1801' '40'
& && && && && && && && &'&&外币折算差异' '5999' '89'
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums1 = f_sums1 + tb_result-start1.
&&f_sume1 = f_sume1 + tb_result-end1.
&&f_tols1 = f_tols1 + tb_result-start1.
&&f_tole1 = f_tole1 + tb_result-end1.
&&f_sums2 = f_sums2 + tb_result-start2.
&&f_sume2 = f_sume2 + tb_result-end2.
&&PERFORM add_row USING '&&抵债物资'& &'' '41'
& && && && && && && && &'&&所有者权益合计' '' '90'
& && && && && && && && &i_monat s_rbukrs i_gjahr 3 1.
&&f_sums1 = f_sums1 + tb_result-start1.
&&f_sume1 = f_sume1 + tb_result-end1.
&&f_sums2 = f_tols2 + f_sums2.
&&f_sume2 = f_tole2 + f_sume2.
&&PERFORM add_row USING '& &其他长期资产'& &'' '42'
& && && && && && && && &'负债及所有者权益合计' '' '91'
& && && && && && && && &i_monat s_rbukrs i_gjahr 3 1.
&&f_sums1 = f_sums1 + tb_result-start1.
&&f_sume1 = f_sume1 + tb_result-end1.
&&PERFORM add_row USING '&&独立账户资产'& &'' '43'
& && && && && && && && &'' '' ''
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_sums1 = f_sums1 + tb_result-start1.
&&f_sume1 = f_sume1 + tb_result-end1.
&&PERFORM add_row USING '&&递延税款'& &'1831' '43'
& && && && && && && && &'&&' '' ''
& && && && && && && && &i_monat s_rbukrs i_gjahr 1 1.
&&f_tols1 = f_tols1 + tb_result-start1.
&&f_tole1 = f_tole1 + tb_result-end1.
&&PERFORM add_row USING '&&无形资产及其他资产合计'& &'' '44'
& && && && && && && && &' ' '' ''
& && && && && && && && &i_monat s_rbukrs i_gjahr 2 1.
&&f_sums1 = f_tols1.
&&f_sume1 = f_tole1.
&&PERFORM add_row USING '& && &资产总计'& &'' '45'
& && && && && && && && &'' '' ''
& && && && && && && && &i_monat s_rbukrs i_gjahr 2 1.
***千元
&&IF p_2 = 'X'.& && && && && && && && && && & &进行单位的换算
& & LOOP AT tb_result.
& && &IF tb_result-start1 && 0.
& && &&&tb_result-start1 = tb_result-start1 / 1000.
& && &ENDIF.
& && &IF tb_result-end1 && 0.
& && &&&tb_result-end1 = tb_result-end1 / 1000.
& && &ENDIF.
& && &IF tb_result-start2 && 0.
& && &&&tb_result-start2 = tb_result-start2 / 1000.
& && &ENDIF.
& && &IF tb_result-end2 && 0.
& && &&&tb_result-end2 = tb_result-end2 / 1000.
& && &ENDIF.
& && &MODIFY tb_result.
& & ENDLOOP.
&&ENDIF.
***万元
&&IF p_3 = 'X'.& && && && && && && && && && &&进行单位的换算
& & LOOP AT tb_result.
& && &IF tb_result-start1 && 0.
& && &&&tb_result-start1 = tb_result-start1 / 10000.
& && &ENDIF.
& && &IF tb_result-end1 && 0.
& && &&&tb_result-end1 = tb_result-end1 / 10000.
& && &ENDIF.
& && &IF tb_result-start2 && 0.
& && &&&tb_result-start2 = tb_result-start2 / 10000.
& && &ENDIF.
& && &IF tb_result-end2 && 0.
& && &&&tb_result-end2 = tb_result-end2 / 10000.
& && &ENDIF.
& && &MODIFY tb_result.
& & ENDLOOP.
&&ENDIF.
*&---------------------------------------------------------------------*
*& end-of-selection
*&---------------------------------------------------------------------*
END-OF-SELECTION.
&&LOOP AT tb_result.
& & CLEAR prt_result.
& & MOVE-CORRESPONDING tb_result TO prt_result.
& & PERFORM num2char USING tb_result-start1 CHANGING prt_result-start1.
& & PERFORM num2char USING tb_result-start2 CHANGING prt_result-start2.
& & PERFORM num2char USING tb_result-end1 CHANGING prt_result-end1.
& & PERFORM num2char USING tb_result-end2 CHANGING prt_result-end2.
*& & perform num2char using prt_result-start1 changing prt_result-start1.
*& & perform num2char using prt_result-start2 changing prt_result-start2.
*& & perform num2char using prt_result-end1 changing prt_result-end1.
*& & perform num2char using prt_result-end2 changing prt_result-end2.
& & APPEND prt_result.
&&ENDLOOP.
&&PERFORM init_fieldcat USING ''.
&&PERFORM init_layout.
&&PERFORM event_build.
&&PERFORM listdata.
***************************************************************
*&&CACUMONEY
*&&查询字段 racct& &代表的科目名称
*&&子查询语句 saknr 代表的是科目的编号
***************************************************************
FORM cacumoney USING& &&&s_km& &&&i_monat&&c_rbukrs&&c_gjahr
& && && && && &CHANGING&&f_smny& &f_money.
&&DATA s_km1(11) TYPE c.
&&DATA faglflext LIKE TABLE OF faglflext WITH HEADER LINE.
&&CONCATENATE s_km '%' INTO s_km1.
&&f_smny = 0. f_money = 0.
&&IF m_1 = 'X'.
& & SELECT * INTO CORRESPONDING FIELDS OF TABLE faglflext FROM faglflext
& && &WHERE rldnr = '0L'
& && &&&AND rrcty = '0'
& && &&&AND rbukrs IN&&s_rbukrs
& && &&&AND ryear = c_gjahr
& && &&&AND racct LIKE s_km1
& && &&&AND rpmax = 16
& && &&&AND racct IN ( SELECT saknr FROM ska1 WHERE ktopl = 'PICL' ).
&&ELSE.
& & SELECT * INTO CORRESPONDING FIELDS OF TABLE faglflext FROM faglflext
& && &WHERE rldnr = '0L'
& && &&&AND rrcty = '0'
& && &&&AND rtcur = waers
& && &&&AND rbukrs IN&&s_rbukrs
& && &&&AND ryear = c_gjahr
& && &&&AND racct LIKE s_km1
& && &&&AND rpmax = 16
& && &&&AND racct IN ( SELECT saknr FROM ska1 WHERE ktopl = 'PICL' ).
&&ENDIF.
&&IF s_km = '3141'.
& & CLEAR faglflext[].
& & IF m_1 = 'X'.
& && &SELECT * INTO CORRESPONDING FIELDS OF TABLE faglflext FROM faglflext
& && &&&WHERE rldnr = '0L'
& && && & AND rrcty = '0'
& && && & AND rbukrs IN&&s_rbukrs
& && && & AND ryear = c_gjahr
& && && & AND ( racct LIKE '3141%' OR racct LIKE '3151%' OR ( racct &= '' AND racct =& '' ) )
& && && & AND rpmax = 16
& && && & AND racct IN ( SELECT saknr FROM ska1 WHERE ktopl = 'PICL' ).
& & ELSE.
& && &SELECT * INTO CORRESPONDING FIELDS OF TABLE faglflext FROM faglflext
& && &&&WHERE rldnr = '0L'
& && && & AND rrcty = '0'
& && && & AND rtcur = waers
& && && & AND rbukrs IN&&s_rbukrs
& && && & AND ryear = c_gjahr
& && && & AND ( racct LIKE '3141%' OR racct LIKE '3151%' OR ( racct &= '' AND racct =& '' ) )
& && && & AND rpmax = 16
& && && & AND racct IN ( SELECT saknr FROM ska1 WHERE ktopl = 'PICL' ).
& & ENDIF.
&&ENDIF.
&&IF s_km = ''.
& & CLEAR faglflext[].
& & IF m_1 = 'X'.
& && &SELECT * INTO CORRESPONDING FIELDS OF TABLE faglflext FROM faglflext
& && &&&WHERE rldnr = '0L'
& && && & AND rrcty = '0'
& && && & AND rbukrs IN&&s_rbukrs
& && && & AND ryear = c_gjahr
& && && & AND ( racct LIKE '%' OR racct LIKE '%' OR&&racct LIKE '%' OR racct LIKE '1003%' OR racct LIKE '1004%' )
& && && & AND rpmax = 16
& && && & AND racct IN ( SELECT saknr FROM ska1 WHERE ktopl = 'PICL' ).
& & ELSE.
& && &SELECT * INTO CORRESPONDING FIELDS OF TABLE faglflext FROM faglflext
& && &&&WHERE rldnr = '0L'
& && && & AND rrcty = '0'
& && && & AND rtcur = waers
& && && & AND rbukrs IN&&s_rbukrs
& && && & AND ryear = c_gjahr
& && && & AND ( racct LIKE '%' OR racct LIKE '%' OR&&racct LIKE '%' OR racct LIKE '1003%' OR racct LIKE '1004%' )
& && && & AND rpmax = 16
& && && & AND racct IN ( SELECT saknr FROM ska1 WHERE ktopl = 'PICL' ).
& & ENDIF.
&&ENDIF.
&&IF s_km = ''.
& & CLEAR faglflext[].
& & IF m_1 = 'X'.
& && &SELECT * INTO CORRESPONDING FIELDS OF TABLE faglflext FROM faglflext
& && &&&WHERE rldnr = '0L'
& && && & AND rrcty = '0'
& && && & AND rbukrs IN&&s_rbukrs
& && && & AND ryear = c_gjahr
& && && & AND ( racct LIKE '%' OR racct LIKE '%')
& && && & AND rpmax = 16
& && && & AND racct IN ( SELECT saknr FROM ska1 WHERE ktopl = 'PICL' ).
& & ELSE.
& && &SELECT * INTO CORRESPONDING FIELDS OF TABLE faglflext FROM faglflext
& && &&&WHERE rldnr = '0L'
& && && & AND rrcty = '0'
& && && & AND rtcur = waers
& && && & AND rbukrs IN&&s_rbukrs
& && && & AND ryear = c_gjahr
& && && & AND ( racct LIKE '%' OR racct LIKE '%')
& && && & AND rpmax = 16
& && && & AND racct IN ( SELECT saknr FROM ska1 WHERE ktopl = 'PICL' ).
& & ENDIF.
&&ENDIF.
&&LOOP AT faglflext.
& & tb_result-companyid = faglflext-rbukrs.
& & IF m_1 = 'X' OR p_flag = 'X'.
& && &f_smny = f_smny + faglflext-hslvt.
& && &f_money = f_money + faglflext-hslvt.
& & ELSE.
& && &f_smny = f_smny + faglflext-tslvt.
& && &f_money = f_money + faglflext-tslvt.
& & ENDIF.
& & IF i_monat &= 1.
& && &IF m_1 = 'X' OR p_flag = 'X'.
& && &&&f_money = f_money + faglflext-hsl01.
& && &ELSE.
& && &&&f_money = f_money + faglflext-tsl01.
& && &ENDIF.
& & ENDIF.
& & IF i_monat &= 2.
& && &IF m_1 = 'X' OR p_flag = 'X'.
& && &&&f_money = f_money + faglflext-hsl02.
& && &ELSE.
& && &&&f_money = f_money + faglflext-tsl02.
& && &ENDIF.
& & ENDIF.
& & IF i_monat &= 3.
& && &IF m_1 = 'X' OR p_flag = 'X'.
& && &&&f_money = f_money + faglflext-hsl03.
& && &ELSE.
& && &&&f_money = f_money + faglflext-tsl03.
& && &ENDIF.
& & ENDIF.
& & IF i_monat &= 4.
& && &IF m_1 = 'X' OR p_flag = 'X'.
& && &&&f_money = f_money + faglflext-hsl04.
& && &ELSE.
& && &&&f_money = f_money + faglflext-tsl04.
& && &ENDIF.
& & ENDIF.
& & IF i_monat &= 5.
& && &IF m_1 = 'X' OR p_flag = 'X'.
& && &&&f_money = f_money + faglflext-hsl05.
& && &ELSE.
& && &&&f_money = f_money + faglflext-tsl05.
& && &ENDIF.
& & ENDIF.
& & IF i_monat &= 6.
& && &IF m_1 = 'X' OR p_flag = 'X'.
& && &&&f_money = f_money + faglflext-hsl06.
& && &ELSE.
& && &&&f_money = f_money + faglflext-tsl06.
& && &ENDIF.
& & ENDIF.
& & IF i_monat &= 7.
& && &IF m_1 = 'X' OR p_flag = 'X'.
& && &&&f_money = f_money + faglflext-hsl07.
& && &ELSE.
& && &&&f_money = f_money + faglflext-tsl07.
& && &ENDIF.
& & ENDIF.
& & IF i_monat &= 8.
& && &IF m_1 = 'X' OR p_flag = 'X'.
& && &&&f_money = f_money + faglflext-hsl08.
& && &ELSE.
& && &&&f_money = f_money + faglflext-tsl08.
& && &ENDIF.
& & ENDIF.
& & IF i_monat &= 9.
& && &IF m_1 = 'X' OR p_flag = 'X'.
& && &&&f_money = f_money + faglflext-hsl09.
& && &ELSE.
& && &&&f_money = f_money + faglflext-tsl09.
& && &ENDIF.
& & ENDIF.
& & IF i_monat &= 10.
& && &IF m_1 = 'X' OR p_flag = 'X'.
& && &&&f_money = f_money + faglflext-hsl10.
& && &ELSE.
& && &&&f_money = f_money + faglflext-tsl10.
& && &ENDIF.
& & ENDIF.
& & IF i_monat &= 11.
& && &IF m_1 = 'X' OR p_flag = 'X'.
& && &&&f_money = f_money + faglflext-hsl11.
& && &ELSE.
& && &&&f_money = f_money + faglflext-tsl11.
& && &ENDIF.
& & ENDIF.
& & IF i_monat &= 12.
& && &IF m_1 = 'X' OR p_flag = 'X'.
& && &&&f_money = f_money + faglflext-hsl12.
& && &ELSE.
& && &&&f_money = f_money + faglflext-tsl12.
& && &ENDIF.
& & ENDIF.
& & IF i_monat &= 13.
& && &IF m_1 = 'X' OR p_flag = 'X'.
& && &&&f_money = f_money + faglflext-hsl13.
& && &ELSE.
& && &&&f_money = f_money + faglflext-tsl13.
& && &ENDIF.
& & ENDIF.
& & IF i_monat &= 14.
& && &IF m_1 = 'X' OR p_flag = 'X'.
& && &&&f_money = f_money + faglflext-hsl14.
& && &ELSE.
& && &&&f_money = f_money + faglflext-tsl14.
& && &ENDIF.
& & ENDIF.
& & IF i_monat &= 15.
& && &IF m_1 = 'X' OR p_flag = 'X'.
& && &&&f_money = f_money + faglflext-hsl15.
& && &ELSE.
& && &&&f_money = f_money + faglflext-tsl15.
& && &ENDIF.
& & ENDIF.
& & IF i_monat &= 16.
& && &IF m_1 = 'X' OR p_flag = 'X'.
& && &&&f_money = f_money + faglflext-hsl16.
& && &ELSE.
& && &&&f_money = f_money + faglflext-tsl16.
& && &ENDIF.
& & ENDIF.
&&ENDLOOP.
ENDFORM.& && && && && && &&&&CACUMONEY
***************************************************************
*&&ADD_ROW
* a_type&&标志行项目是否为合计或者小计
* a_type1 标志金额是否需要取反 1负债类取反;2资产类取反;3都取反
***************************************************************
FORM add_row USING a_asset1 a_km1 a_row1 &资产科目行号
& && && && && && & a_asset2 a_km2 a_row2
& && && && && && & a_monat a_rbukrs a_gjahr a_type a_type1.
&&DATA: f_smny LIKE faglflext-hslvt,
& && &&&f_emny LIKE faglflext-hslvt.
&&CLEAR tb_result.& && &&&&清空结果表
&&tb_result-asset1&&=&&a_asset1.& & &资产项目
&&tb_result-row1& & =&&a_row1.& && &&行次
&&tb_result-asset2&&=&&a_asset2.& & &资产项目
&&tb_result-row2& & =&&a_row2.& && &&行次
&&IF a_type = 1.&非合计项目
& & IF a_km1 && '' AND a_km1 IS NOT INITIAL.& &&&&判断科目编号不为空
& && &PERFORM cacumoney USING a_km1 a_monat a_rbukrs a_gjahr
& && && && && && && && &CHANGING f_smny f_emny.&&&调用另外一个函数返回值
& && &IF a_type1 = 2 OR a_type1 = 3.
& && &&&tb_result-start1&&= 0 - f_smny.&&&资产或都去反
& && &&&tb_result-end1& & = 0 - f_emny.
& && &ELSE.
& && &&&tb_result-start1&&= f_smny.
& && &&&tb_result-end1& & = f_emny.
& && &ENDIF.
& & ENDIF.
& & IF a_km2 && '' AND a_km2 IS NOT INITIAL.
& && &PERFORM cacumoney USING a_km2 a_monat a_rbukrs a_gjahr
& && && && && && && && &CHANGING f_smny f_emny.
& && &IF&&a_type1 = 1 OR a_type1 = 3 .
& && &&&tb_result-start2&&= 0 - f_smny.
& && &&&tb_result-end2& & = 0 - f_emny.
& && &ELSE.
& && &&&tb_result-start2&&= f_smny.
& && &&&tb_result-end2& & = f_emny.
& && &ENDIF.
& & ENDIF.
&&ELSEIF a_type = 2.&左边资产类合计,右边负债类非合计项目
& & tb_result-start1& & = f_sums1.
& & tb_result-end1& && &= f_sume1.
& & IF a_km2 && '' AND a_km2 IS NOT INITIAL.
& && &PERFORM cacumoney USING a_km2 a_monat a_rbukrs a_gjahr
& && && && && && && && &CHANGING f_smny f_emny.
& && &IF a_type1 = 1 OR a_type1 = 3.& && && & &负债取反,都取反
& && &&&tb_result-start2&&= 0 - f_smny.
& && &&&tb_result-end2& & = 0 - f_emny.
& && &ELSE.
& && &&&tb_result-start2&&= f_smny.
& && &&&tb_result-end2& & = f_emny.
& && &ENDIF.
& & ENDIF.
&&ELSEIF a_type = 3.&左边资产类非合计,右边负债类合计项目
& & IF a_km1 && '' AND a_km1 IS NOT INITIAL.
& && &PERFORM cacumoney USING a_km1 a_monat a_rbukrs a_gjahr
& && && && && && && && &CHANGING f_smny f_emny.
& && &IF a_type1 = 2 OR a_type1 = 3.& && && & &资产取反,或都取反
& && &&&tb_result-start1&&= 0 - f_smny.
& && &&&tb_result-end1& & = 0 - f_emny.
& && &ELSE.
& && &&&tb_result-start1&&= f_smny.
& && &&&tb_result-end1& & = f_emny.
& && &ENDIF.
& & ENDIF.
& & tb_result-start2& & = f_sums2.
& & tb_result-end2& && &= f_sume2.
&&ELSEIF a_type = 4.&都是合计项目
& & tb_result-start1& & = f_sums1.
& & tb_result-end1& && &= f_sume1.
& & tb_result-start2& & = f_sums2.
& & tb_result-end2& && &= f_sume2.
&&ENDIF.
&&IF a_km1 = '1601'.
& & PERFORM cacumoney USING '1503' a_monat a_rbukrs a_gjahr
& && && && && && && & CHANGING f_smny f_emny.
& & tb_result-start1&&= tb_result-start1 + f_smny.
& & tb_result-end1& & = tb_result-end1 + f_emny.
&&ENDIF.
&&APPEND tb_result.
ENDFORM.& && && && && && &&&&ADD_ROW
*&--------------------------------------------------------------------*
*&& && &Form&&NUM2CHAR
*&--------------------------------------------------------------------*
*& && & text
*---------------------------------------------------------------------*
*& && &--&FNUM& && & text
*& && &--&SRET& && & text
*---------------------------------------------------------------------*
FORM num2char USING fnum LIKE tb_result-end1 CHANGING sret.
&&WRITE fnum NO-ZERO TO sret.
&&IF fnum & 0.
& & CONCATENATE '-' sret INTO sret.
&&ENDIF.
&&IF sret CO '0.'.
& & sret = '& && && && && &'.
&&ENDIF.
&&CONDENSE sret NO-GAPS.
ENDFORM.& && && && && && &&&&num2char
*&---------------------------------------------------------------------*
*&& && &Form&&init_layout
*&---------------------------------------------------------------------*
*& && & text
*----------------------------------------------------------------------*
FORM init_layout.
&&layout-zebra = 'X'.
&&layout-f2code = '&IC1'.
&&layout-detail_popup = 'X'.
&&layout-colwidth_optimize = 'X'.
&&layout-no_vline = ''.
&&layout-no_hline = ''.
*&&LAYOUT-numc_sum = 'X'.
&&layout-no_sumchoice = ''.
&&layout-no_subchoice = ''.
&&layout-no_totalline = ''.
&&layout-no_subtotals = ''.
ENDFORM.& && && && && && &&&&init_layout
*&---------------------------------------------------------------------*
*&& && &Form&&TOP_OF_PAGE
*&---------------------------------------------------------------------*
*& && & text
*----------------------------------------------------------------------*
FORM top_of_page.
&&SELECT SINGLE butxt INTO s_butxt
& & FROM t001
& && &WHERE bukrs = prt_result-companyid.
&&WRITE:/42&&'中国人保寿险有限公司'.
&&WRITE:/48&&'资产负债表'.
&&WRITE:/48&&prtdate.
&&WRITE:/2 '单位名称:',s_butxt, 64 '币& & 种:',txcurr.
&&IF m_2 = 'X' AND waers && 'CNY'.
& & WRITE:45 '汇率:',exch_rate.
&&ENDIF.
&&WRITE:/64 '金额单位:',txunit.
ENDFORM.& && && && && && &&&&TOP_OF_PAGE
*&---------------------------------------------------------------------*
*&& && &Form&&END_OF_LIST
*&---------------------------------------------------------------------*
*& && & text
*----------------------------------------------------------------------*
FORM end_of_list.
&&WRITE:/2&&'公司负责人:', 40 '财务负责人:', 60 '复核:' ,85 '制表:'.
ENDFORM.& && && && && && &&&&END_OF_LIST
*&---------------------------------------------------------------------*
*&& && &Form&&EVENT_BUILD
*&---------------------------------------------------------------------*
*& && & text
*----------------------------------------------------------------------*
FORM event_build .
&&DATA: ls_event TYPE slis_alv_event.
&&CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
& & EXPORTING
& && &i_list_type = 0
& & IMPORTING
& && &et_events& &= eventcat[].
&&READ TABLE eventcat WITH KEY name =&&slis_ev_top_of_page
& && && && && && && && && & INTO ls_event.
&&IF sy-subrc = 0.
& & MOVE 'TOP_OF_PAGE' TO ls_event-form.
& & APPEND ls_event TO eventcat.
&&ENDIF.
&&READ TABLE eventcat WITH KEY name =&&slis_ev_end_of_list
& && && && && && && && && & INTO ls_event.
&&IF sy-subrc = 0.
& & MOVE 'END_OF_LIST' TO ls_event-form.
& & APPEND ls_event TO eventcat.
&&ENDIF.
ENDFORM.& && && && && && &&&& EVENT_BUILD
*&---------------------------------------------------------------------*
*&& && &Form&&init_fieldcat
*&---------------------------------------------------------------------*
*& && & text
*----------------------------------------------------------------------*
*& && &--&FLAG& && & text
*----------------------------------------------------------------------*
FORM init_fieldcat USING flag.& && && && && &&初始化表头
*&&clear fieldcat[].
*&&CLEAR FIELDCAT.
*&&FIELDCAT-FIELDNAME = 'COMPANYID'.
*&&FIELDCAT-reptext_ddic = '科目'.
*&&FIELDCAT-no_out = 'X'.
*&&APPEND FIELDCAT.
&&CLEAR fieldcat[].
&&CLEAR fieldcat.
&&fieldcat-fieldname = 'ASSET1'.
&&fieldcat-reptext_ddic = '项目'.
&&APPEND fieldcat.
&&CLEAR fieldcat.
&&fieldcat-fieldname = 'ROW1'.
&&fieldcat-reptext_ddic = '行次'.
&&APPEND fieldcat.
&&CLEAR fieldcat.
&&fieldcat-fieldname = 'START1'.
&&fieldcat-reptext_ddic = '年初数'.
&&fieldcat-just = 'R'.
&&APPEND fieldcat.
&&CLEAR fieldcat.
&&fieldcat-fieldname = 'END1'.
&&fieldcat-reptext_ddic = '期末数'.
&&fieldcat-just = 'R'.
&&APPEND fieldcat.
&&CLEAR fieldcat.
&&fieldcat-fieldname = 'ASSET2'.
&&fieldcat-reptext_ddic = '项目'.
&&APPEND fieldcat.
&&CLEAR fieldcat.
&&fieldcat-fieldname = 'ROW2'.
&&fieldcat-reptext_ddic = '行次'.
&&APPEND fieldcat.
&&CLEAR fieldcat.
&&fieldcat-fieldname = 'START2'.
&&fieldcat-reptext_ddic = '年初数'.
&&fieldcat-just = 'R'.
&&APPEND fieldcat.
&&CLEAR fieldcat.
&&fieldcat-fieldname = 'END2'.
&&fieldcat-reptext_ddic = '期末数'.
&&fieldcat-just = 'R'.
&&APPEND fieldcat.
*&&CLEAR:SORTCAT,SORTCATLN.
**&&SORTCATLN-SPOS = 1.
*&&SORTCATLN-UP = 'X'.
*&&SORTCATLN-FIELDNAME = 'COMPANYID'.
*&&SORTCATLN-SUBTOT = 'X'.
*&&SORTCATLN-GROUP = '*'.
*&&APPEND SORTCATLN to SORTCAT.
ENDFORM.& && && && && && &&&&init_fieldcat
*&---------------------------------------------------------------------*
*&& && &Form&&LISTDATA
*&---------------------------------------------------------------------*
*& && & text
*----------------------------------------------------------------------*
FORM listdata.
&&v_repid = sy-repid.
&&CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
& & EXPORTING
& && &i_callback_pf_status_set = 'SET_PF_STATUS'
& && &i_callback_program& && & = v_repid
& && &i_callback_user_command&&= 'USER_COMMAND'
& && &is_layout& && && && && & = layout
& && &it_fieldcat& && && && &&&= fieldcat[]
& && &it_events& && && && && & = eventcat
& && &it_sort& && && && && && &= sortcat
& && &it_excluding& && && && & = rt_extab
& & TABLES
& && &t_outtab& && && && && &&&= prt_result
& & EXCEPTIONS
& && &program_error& && && && &= 1
& && &OTHERS& && && && && && & = 2.
&&IF sy-subrc && 0.
& & MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
& && & WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
&&ENDIF.
ENDFORM.& && && && && && &&&&LISTDATA
*&---------------------------------------------------------------------*
*&& && &Form&&set_pf_status
*&---------------------------------------------------------------------*
*& && & text
*----------------------------------------------------------------------*
*& && &--&RT_EXTAB& &text
*----------------------------------------------------------------------*
FORM set_pf_status USING rt_extab TYPE slis_t_extab.
&&DATA: wa_extab TYPE slis_extab.
&&wa_extab-fcode = '&OAD'.
&&APPEND wa_extab TO rt_extab.
&&wa_extab-fcode = '&AVE'.
&&APPEND wa_extab TO rt_extab.
&&SET PF-STATUS 'ZSTANDARD' EXCLUDING rt_extab .&copy from BCALV_TEST_LIST.
ENDFORM. &Set_pf_status
*&---------------------------------------------------------------------*
*&& && &Form&&user_command
*&---------------------------------------------------------------------*
*& && & text
*----------------------------------------------------------------------*
*& && &--&R_UCOMM& && &text
*& && &--&RS_SELFIELD&&text
*----------------------------------------------------------------------*
FORM user_command USING r_ucomm& &&&LIKE sy-ucomm
& && && && && && && && &rs_selfield TYPE slis_selfield.
&&IF r_ucomm EQ '&PRT'.
& & PERFORM open_form .
& & PERFORM write_form USING 'MAIN' 'E1'.
& & PERFORM write_form USING 'MAIN' 'E2'.
& & LOOP AT prt_result.
& && &PERFORM write_form USING 'MAIN' 'E3'.
& & ENDLOOP.
& & PERFORM write_form USING 'MAIN' 'E4'.
& & PERFORM close_form .
&&ENDIF.
ENDFORM.&&&User_command
*&---------------------------------------------------------------------*
*&& && &Form&&open_form
*&---------------------------------------------------------------------*
*& && & text
*----------------------------------------------------------------------*
FORM open_form .
&&CALL FUNCTION 'OPEN_FORM'
& &EXPORTING
*& &&&APPLICATION& && && && && && && &&&= 'TX'
*& &&&ARCHIVE_INDEX& && && && && && && &=
*& &&&ARCHIVE_PARAMS& && && && && && &&&=
*& &&&DEVICE& && && && && && && && && & = 'PRINTER'
*& &&&& && && && && && && && && & = 'X'
& && &form& && && && && && && && && && &=&&'ZFIRP050'
*& &&&language& && && && && && && && &&&= 'M'
*& &&&OPTIONS& && && && && && && && && &= OPTION
*& &&&MAIL_SENDER& && && && && && && &&&=
*& &&&MAIL_RECIPIENT& && && && && && &&&=
*& &&&MAIL_APPL_OBJECT& && && && && && &=
*& &&&RAW_DATA_INTERFACE& && && && && & = '*'
*& &IMPORTING
*& &&&LANGUAGE& && && && && && && && &&&=
*& &&&NEW_ARCHIVE_PARAMS& && && && && & =
*& &&&RESULT& && && && && && && && && & =
& &EXCEPTIONS
& &&&canceled& && && && && && && && &&&= 1
& &&&device& && && && && && && && && & = 2
& &&&form& && && && && && && && && && &= 3
& &&&options& && && && && && && && && &= 4
& &&&unclosed& && && && && && && && &&&= 5
& &&&mail_options& && && && && && && & = 6
& &&&archive_error& && && && && && && &= 7
& &&&invalid_fax_number& && && && && & = 8
& &&&more_params_needed_in_batch& && & = 9
& &&&spool_error& && && && && && && &&&= 10
& &&&OTHERS& && && && && && && && && & = 11&&.
&&IF sy-subrc && 0.
& & MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
& && & WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
&&ENDIF.
ENDFORM.& && && && && && &&&&open_form
*&--------------------------------------------------------------------*
*&& && &Form&&write_form
*&--------------------------------------------------------------------*
*& && & text
*---------------------------------------------------------------------*
*& && &--&L_WINDOW& &text
*& && &--&L_ELEMENT&&text
*---------------------------------------------------------------------*
FORM write_form USING l_window l_element.
&&CALL FUNCTION 'WRITE_FORM'
& &EXPORTING
& &&&element& && && && && && && && &= l_element
*& &&&FUNCTION& && && && && && && & = 'SET'
*& &&&TYPE& && && && && && && && &&&= 'BODY'
& &&&window& && && && && && && && & = l_window
*& &IMPORTING
*& &&&PENDING_LINES& && && && && && &=
& &EXCEPTIONS
& &&&element& && && && && && && && &= 1
& &&&function& && && && && && && &&&= 2
& &&&type& && && && && && && && && &= 3
& &&&unopened& && && && && && && &&&= 4
& &&&unstarted& && && && && && && & = 5
& &&&window& && && && && && && && & = 6
& &&&bad_pageformat_for_print& && & = 7
& &&&spool_error& && && && && && &&&= 8
& &&&OTHERS& && && && && && && && & = 9
& && && && &.
&&IF sy-subrc && 0.
& & MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
& && & WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
&&ENDIF.
ENDFORM.& && && && && && &&&&write_form
*&--------------------------------------------------------------------*
*&& && &Form&&close_form
*&--------------------------------------------------------------------*
*& && & text
*---------------------------------------------------------------------*
FORM close_form.
&&CALL FUNCTION 'CLOSE_FORM'
*& &IMPORTING
*& &&&RESULT& && && && && && && && & =
*& &&&RDI_RESULT& && && && && && && &=
*& &TABLES
*& &&&OTFDATA& && && && && && && && &=
& &EXCEPTIONS
& &&&unopened& && && && && && && &&&= 1
& &&&bad_pageformat_for_print& && & = 2
& &&&send_error& && && && && && && &= 3
& &&&spool_error& && && && && && &&&= 4
& &&&OTHERS& && && && && && && && & = 5
& && && && &.
&&IF sy-subrc && 0.
& & MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
& && & WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
&&ENDIF.
ENDFORM.& && && && && && &&&&close_form
*&---------------------------------------------------------------------*
*&& && &Form&&read_screen
*&---------------------------------------------------------------------*
*& && & text
*----------------------------------------------------------------------*
FORM read_screen.
&&CLEAR dynpread[].
&&dynpread-fieldname = 'M_2'.
&&APPEND dynpread.
&&CALL FUNCTION 'DYNP_VALUES_READ'
& & EXPORTING
& && &dyname& && && && && &= sy-repid
& && &dynumb& && && && && &= sy-dynnr
& & TABLES
& && &dynpfields& && && &&&= dynpread
& & EXCEPTIONS
& && &invalid_workarea = 1
& && &invalid_dynprofield&&= 2
& && &invalid_dynproname& &= 3
& && &invalid_dynpronummer = 4
& && &invalid_request& && &= 5
& && &no_fielddescription&&= 6
& && &invalid_parameter& & = 7
& && &undefind_error& && & = 8
& && &double_conversion& & = 9
& && &stepl_not_found& && &= 10
& && &OTHERS& && && && && &= 11.
&&IF sy-subrc && 0.
& & MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
& && && && &WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
&&ENDIF.
ENDFORM.& && && && && && &&&&read_screen
*&---------------------------------------------------------------------*
*&& && &Form&&check
*&---------------------------------------------------------------------*
*& && & text
*----------------------------------------------------------------------*
FORM check.
&&IF m_2 = 'X'.
& & IF waers IS INITIAL.
& && &MESSAGE e398(00) WITH '请输入货币币种'.
& & ENDIF.
&&ENDIF.
ENDFORM.& && && && && && &&&&check复制代码
width:100%">
Ta最近发表

我要回帖

更多关于 dget函数 的文章

 

随机推荐