*===============================基本信息===============================*
* 标题:资产负债报表
* 创建日期:2004-12-14
*===============================定 义===============================*
************************************************************************
* 基本代码
************************************************************************
REPORT ZR_FI_001
NO STANDARD PAGE HEADING
LINE-COUNT 90
LINE-SIZE 152
MESSAGE-ID ZFI1.
************************************************************************
* INCLUDE:包含文件
************************************************************************
INCLUDE OLE2INCL.
************************************************************************
* TABLE: 定义TABLE
************************************************************************
TABLES: T001, "公司代码
GLT0, "总帐科目主记录业务额
ANLC. "资产值字段
************************************************************************
*INTERNAL TABLES
************************************************************************
*定义内表ITAB_QM(期未数)
*说明:GLT0-hslvt是本位币的余额结转(货币 2)
DATA: BEGIN OF ITAB_QM OCCURS 10.
DATA: "流动资产:
XJ LIKE GLT0-HSLVT, "现金
DQTZ LIKE GLT0-HSLVT, "短期投资
YSPJ LIKE GLT0-HSLVT, "应收票据
YSZK LIKE GLT0-HSLVT, "应收帐款
HZZB LIKE GLT0-HSLVT, "减:坏帐准备
YSZKJE LIKE GLT0-HSLVT, "应收帐款净额
YFZK LIKE GLT0-HSLVT, "预付帐款
YSBTK LIKE GLT0-HSLVT, "应收补贴款
QTYSK LIKE GLT0-HSLVT, "其他应收款
CH LIKE GLT0-HSLVT, "存货
DTFY LIKE GLT0-HSLVT, "待摊费用
ZCLS LIKE GLT0-HSLVT, "待处理流动资产净损失
ZQTZ LIKE GLT0-HSLVT, "一年内到期的长期债券投资
QTLDZC LIKE GLT0-HSLVT,"其他流动资产
TOTAL_LDZC LIKE GLT0-HSLVT,"流动资产合计
"长期投资:
CQTZ LIKE GLT0-HSLVT, "长期投资
"固定资产:
GDZCYZ LIKE GLT0-HSLVT, "固定资产原价
LJZJ LIKE GLT0-HSLVT, "减:累计折旧
GDZCJZ LIKE GLT0-HSLVT, "固定资产净值
GDZCQL LIKE GLT0-HSLVT, "固定资产清理
ZJGC LIKE GLT0-HSLVT, "在建工程
GDZCSS LIKE GLT0-HSLVT,"待处理固定资产净损失
TOTAL_GDZC LIKE GLT0-HSLVT,"固定资产合计
"无形资产及递延资产:
WXZC LIKE GLT0-HSLVT, "无形资产
TYZC LIKE GLT0-HSLVT, "递延资产
TOTAL_WXZC LIKE GLT0-HSLVT,"无形资产及递延资产合计
"其他长期资产:
QCCQZC LIKE GLT0-HSLVT, "其他长期资产
"递延税项
TYSXJX LIKE GLT0-HSLVT, "递延税项借项
TOTAL_ZC LIKE GLT0-HSLVT, "资产总计
"流动负债:
DQJK LIKE GLT0-HSLVT, "短期借款
YFPJ LIKE GLT0-HSLVT, "应付票据
YIFZK LIKE GLT0-HSLVT, "应付帐款
YUSZK LIKE GLT0-HSLVT, "预收帐款
YFGZ LIKE GLT0-HSLVT, "应付工资
YFFLF LIKE GLT0-HSLVT, "应付福利费
YFGL LIKE GLT0-HSLVT, "应付股利
YJSJ LIKE GLT0-HSLVT, "应交税金
QTYJK LIKE GLT0-HSLVT, "其他应交款
QTYFK LIKE GLT0-HSLVT, "其他应付款
YTFY LIKE GLT0-HSLVT, "预提费用
DQCQFZ LIKE GLT0-HSLVT, "一年内到期的长期负债
QTLDFZ LIKE GLT0-HSLVT, "其他流动负债
TOTAL_LDFZ LIKE GLT0-HSLVT,"流动负债合计
"长期负债:
CQJK LIKE GLT0-HSLVT, "长期借款
YFZQ LIKE GLT0-HSLVT, "应付债券
CQYFK LIKE GLT0-HSLVT, "长期应付款
QTCQFZ LIKE GLT0-HSLVT, "其他长期负债
ZFZZJ LIKE GLT0-HSLVT, "其中:住房周转金
TOTAL_CQFZ LIKE GLT0-HSLVT,"长期负债合计
"递延税项:
TYSXDX LIKE GLT0-HSLVT, "递延税项贷项
TOTAL_FZ LIKE GLT0-HSLVT, "负债合计
"所有者权益(或股东权益):
SSZB LIKE GLT0-HSLVT, "实收资本(或股本)
YGFTZ LIKE GLT0-HSLVT, "减:已归还投资
SSZBJE LIKE GLT0-HSLVT, "实收资本(或股本)净额
ZBGJ LIKE GLT0-HSLVT, "资本公积
YYGJ LIKE GLT0-HSLVT, "盈余公积
GYJ LIKE GLT0-HSLVT, "其中:公益金
WFPLL LIKE GLT0-HSLVT, "未分配利润
TOTAL_QY LIKE GLT0-HSLVT,"所有者权益合计
TOTAL_FZQY LIKE GLT0-HSLVT,"负债及所有者权益总计
"其它
WFPLL_2 LIKE GLT0-HSLVT. "未分配利润
DATA: END OF ITAB_QM.
*定义内表ITAB_NC(年初数)
DATA: ITAB_NC LIKE ITAB_QM OCCURS 10 WITH HEADER LINE.
*定义内表ITAB(作为辅助使用)
DATA: BEGIN OF ITAB OCCURS 10.
INCLUDE STRUCTURE GLT0.
DATA: TAMOUNT LIKE GLT0-HSLVT.
DATA: END OF ITAB.
*定义内表ITAB_WFP(作为辅助使用)
DATA: BEGIN OF ITAB_WFP OCCURS 10.
INCLUDE STRUCTURE GLT0.
DATA: TAMOUNT LIKE GLT0-HSLVT.
DATA: END OF ITAB_WFP.
*定义本期数内表ITAB1_WFP
DATA: BEGIN OF ITAB1_WFP OCCURS 0,
XSSL LIKE GLT0-HSLVT, "一、主营业务收入
XSCB LIKE GLT0-HSLVT, "减:主营业务成本
XSSJ LIKE GLT0-HSLVT, "减:主营业务税金及附加
TOTAL_CSLR LIKE GLT0-HSLVT,"二、主营业务利润
QTYWLR LIKE GLT0-HSLVT, "加:其他业务利润
XSFY LIKE GLT0-HSLVT, "减:营业费用
GLFY LIKE GLT0-HSLVT, "减:管理费用
CWFY LIKE GLT0-HSLVT, "减:财务费用
TOTAL_YYLR LIKE GLT0-HSLVT,"三、营业利润
TZSY LIKE GLT0-HSLVT, "加:投资收益
PTSL LIKE GLT0-HSLVT, "加:补贴收入
YYWSL LIKE GLT0-HSLVT, "加:营业处收入
YYWZC LIKE GLT0-HSLVT, "减:营业处支出
SYDZ LIKE GLT0-HSLVT, "加:以前年度损益调整
TOTAL_LRZE LIKE GLT0-HSLVT,"四、利润总额
SDS LIKE GLT0-HSLVT, "减:所得税
TOTAL_JLR LIKE GLT0-HSLVT, "五、净利润
END OF ITAB1_WFP.
*定义本年累计数内表ITAB2_WFP
DATA: ITAB2_WFP LIKE ITAB1_WFP OCCURS 10 WITH HEADER LINE.
*定义2005/2期初数据内表
DATA: BEGIN OF ITAB_FIRST OCCURS 10.
INCLUDE STRUCTURE ZFI02.
DATA: END OF ITAB_FIRST.
*定义损益表的2005/2期初数据内表
DATA: BEGIN OF ITAB_FIRST_WFP OCCURS 10.
INCLUDE STRUCTURE ZFI03.
DATA: END OF ITAB_FIRST_WFP.
*往数据库增加运行日志
DATA: BEGIN OF IT_ZREPORTLOG OCCURS 0.
INCLUDE TYPE ZREPORTLOG.
DATA: END OF IT_ZREPORTLOG.
************************************************************************
* CONSTANTS : 定义常量
************************************************************************
************************************************************************
* TYPE : 定义数据类型
************************************************************************
TYPE-POOLS: SLIS.
************************************************************************
* DATA : 定义变量
************************************************************************
*单据表格上相关坐标值定义
DATA: A1 TYPE I VALUE 0,
A2 TYPE I VALUE 0,
A3 TYPE I VALUE 0,
A4 TYPE I VALUE 0,
A5 TYPE I VALUE 0,
A6 TYPE I VALUE 0,
A7 TYPE I VALUE 0,
A8 TYPE I VALUE 0,
A9 TYPE I VALUE 0.
DATA: B1 TYPE I VALUE 0,
B2 TYPE I VALUE 0,
B3 TYPE I VALUE 0,
B4 TYPE I VALUE 0,
B5 TYPE I VALUE 0,
B6 TYPE I VALUE 0,
B7 TYPE I VALUE 0,
B8 TYPE I VALUE 0.
DATA: NAME_LAST LIKE USER_ADDR-NAME_LAST,
NAME_FIRST LIKE USER_ADDR-NAME_FIRST,
NAME(16).
DATA: G_DAY(2),
G_LEN TYPE I,
G_MOD TYPE I,
V_KANSW LIKE ANLC-KANSW, "累积购置和生产费用
V_KNAFA LIKE ANLC-KNAFA, "累计正常折旧
P_KANSW LIKE ANLC-KANSW. "
************************************************************************
* DEFINE: 定义宏
************************************************************************
*普通报表格式的输出宏
DEFINE MACRO1. "画表格
WRITE: AT /A1 SY-VLINE.
WRITE: AT B1 &1.
WRITE: AT A2 SY-VLINE.
WRITE: AT B2 &2 CENTERED.
WRITE: AT A3 SY-VLINE.
WRITE: AT B3 &3 RIGHT-JUSTIFIED.
WRITE: AT A4 SY-VLINE.
WRITE: AT B4 &4 RIGHT-JUSTIFIED.
WRITE: AT A5 SY-VLINE.
WRITE: AT B5 &5.
WRITE: AT A6 SY-VLINE.
WRITE: AT B6 &6 CENTERED.
WRITE: AT A7 SY-VLINE.
WRITE: AT B7 &7 RIGHT-JUSTIFIED.
WRITE: AT A8 SY-VLINE.
WRITE: AT B8 &8 RIGHT-JUSTIFIED.
WRITE: AT A9 SY-VLINE.
END-OF-DEFINITION.
************************************************************************
* SELECTION SCREEN : 定义报表筛选条件
************************************************************************
*确定过滤参数
SELECTION-SCREEN BEGIN OF BLOCK BLK_001 WITH FRAME. TITLE BLK_001 .
PARAMETERS : P_BUKRS LIKE GLT0-BUKRS OBLIGATORY MEMORY ID 001_1."公司代码
PARAMETERS : P_RYEAR(4) TYPE C OBLIGATORY MEMORY ID 001_2."报表年度DEFAULT SY-DATUM+0(4)
PARAMETERS : P_PERID(2) TYPE C OBLIGATORY MEMORY ID 001_3."报表期间DEFAULT SY-DATUM+4(2)
SELECTION-SCREEN END OF BLOCK BLK_001.
*===============================事 件===============================*
************************************************************************
* INITIALIZATION.启动程序开始执行
************************************************************************
INITIALIZATION.
PERFORM. SUB_INI.
************************************************************************
* AT SELECTION SCREEN:
************************************************************************
AT SELECTION-SCREEN.
PERFORM. F_CHECK_INPUT. "检查用户输入
************************************************************************
* START OF SELECTION:
************************************************************************
START-OF-SELECTION.
*往数据库增加运行日志
IT_ZREPORTLOG-MANDT = SY-MANDT.
IT_ZREPORTLOG-TCODE = SY-TCODE.
IT_ZREPORTLOG-DATUM = SY-DATUM.
IT_ZREPORTLOG-UZEIT = SY-UZEIT.
IT_ZREPORTLOG-UNAME = SY-UNAME.
IT_ZREPORTLOG-TITLE = SY-TITLE.
APPEND IT_ZREPORTLOG.
INSERT INTO ZREPORTLOG VALUES IT_ZREPORTLOG .
PERFORM. CAL_DAY. "每月天数判断
PERFORM. F_READ_DATA.
PERFORM. F_PRINT_REPORT.
************************************************************************
* END OF SELECTION
************************************************************************
END-OF-SELECTION.
************************************************************************
* TOP OF PAGE
************************************************************************
TOP-OF-PAGE.
PERFORM. SUB_HEAD.
************************************************************************
* END OF PAGE
************************************************************************
END-OF-PAGE.
PERFORM. SUB_BOTTOM.
*===============================子 例 程===============================*
*&---------------------------------------------------------------------*
*过滤条件有效性检查
*&---------------------------------------------------------------------*
FORM. F_CHECK_INPUT.
DATA: L_DATE LIKE LIKP-ERDAT.
IF P_PERID+1(1) = ''.
CONCATENATE '0' P_PERID INTO P_PERID.
ENDIF.
CONCATENATE P_RYEAR P_PERID '01' INTO L_DATE.
IF L_DATE <= '20050101'.
MESSAGE E001. "不能运行该期间的报表!
ENDIF.
IF ( P_PERID < '01' ) OR ( P_PERID > '16' ).
MESSAGE E000. "该会计期间不存在!
ENDIF.
ENDFORM. " F_CHECK_INPUT
*&---------------------------------------------------------------------*
*从数据库中读取数据,填充报表输出时所用的内表
*&---------------------------------------------------------------------*
FORM. F_READ_DATA .
DATA: L_WFPLL_QM LIKE GLT0-HSLVT,
L_WFPLL_NC LIKE GLT0-HSLVT.
SELECT * INTO CORRESPONDING FIELDS OF TABLE ITAB
FROM GLT0
WHERE RYEAR = P_RYEAR AND
BUKRS = P_BUKRS AND
RACCT > '0010000000'.
REFRESH ITAB_QM.
CLEAR ITAB_QM.
REFRESH ITAB_NC.
CLEAR ITAB.
*********
*& 开始循环,处理每月期未数
*& itab-tamount-> 表示本月总金额
*& itab-hslvt -> 表示本位币的余额结转 (货币 2);相当于年初数
*& itab-hsl01~16 -> 表示按本位币的期间中移动的总计 (货币2);即各月的变动金额
*********
LOOP AT ITAB.
CASE P_PERID.
WHEN '01'.
ITAB-TAMOUNT = ITAB-HSLVT + ITAB-HSL01.
WHEN '02'.
ITAB-TAMOUNT = ITAB-HSLVT + ITAB-HSL01 + ITAB-HSL02.
WHEN '03'.
ITAB-TAMOUNT = ITAB-HSLVT + ITAB-HSL01 + ITAB-HSL02 + ITAB-HSL03.
WHEN '04'.
ITAB-TAMOUNT = ITAB-HSLVT + ITAB-HSL01 + ITAB-HSL02 + ITAB-HSL03
+ ITAB-HSL04.
WHEN '05'.
ITAB-TAMOUNT = ITAB-HSLVT + ITAB-HSL01 + ITAB-HSL02 + ITAB-HSL03
+ ITAB-HSL04 + ITAB-HSL05.
WHEN '06'.
ITAB-TAMOUNT = ITAB-HSLVT + ITAB-HSL01 + ITAB-HSL02 + ITAB-HSL03
+ ITAB-HSL04 + ITAB-HSL05 + ITAB-HSL06.
WHEN '07'.
ITAB-TAMOUNT = ITAB-HSLVT + ITAB-HSL01 + ITAB-HSL02 + ITAB-HSL03
+ ITAB-HSL04 + ITAB-HSL05 + ITAB-HSL06 + ITAB-HSL07.
WHEN '08'.
ITAB-TAMOUNT = ITAB-HSLVT + ITAB-HSL01 + ITAB-HSL02 + ITAB-HSL03
+ ITAB-HSL04 + ITAB-HSL05 + ITAB-HSL06 + ITAB-HSL07
+ ITAB-HSL08.
WHEN '09'.
ITAB-TAMOUNT = ITAB-HSLVT + ITAB-HSL01 + ITAB-HSL02 + ITAB-HSL03
+ ITAB-HSL04 + ITAB-HSL05 + ITAB-HSL06 + ITAB-HSL07
+ ITAB-HSL08 + ITAB-HSL09.
WHEN '10'.
ITAB-TAMOUNT = ITAB-HSLVT + ITAB-HSL01 + ITAB-HSL02 + ITAB-HSL03
+ ITAB-HSL04 + ITAB-HSL05 + ITAB-HSL06 + ITAB-HSL07
+ ITAB-HSL08 + ITAB-HSL09 + ITAB-HSL10.
WHEN '11'.
ITAB-TAMOUNT = ITAB-HSLVT + ITAB-HSL01 + ITAB-HSL02 + ITAB-HSL03
+ ITAB-HSL04 + ITAB-HSL05 + ITAB-HSL06 + ITAB-HSL07
+ ITAB-HSL08 + ITAB-HSL09 + ITAB-HSL10 + ITAB-HSL11.
WHEN '12'.
ITAB-TAMOUNT = ITAB-HSLVT + ITAB-HSL01 + ITAB-HSL02 + ITAB-HSL03
+ ITAB-HSL04 + ITAB-HSL05 + ITAB-HSL06 + ITAB-HSL07
+ ITAB-HSL08 + ITAB-HSL09 + ITAB-HSL10 + ITAB-HSL11
+ ITAB-HSL12 + ITAB-HSL13 + ITAB-HSL14 + ITAB-HSL15
+ ITAB-HSL16.
* WHEN '13'.
* ITAB-TAMOUNT = ITAB-HSLVT + ITAB-HSL01 + ITAB-HSL02 + ITAB-HSL03
* + ITAB-HSL04 + ITAB-HSL05 + ITAB-HSL06 + ITAB-HSL07
* + ITAB-HSL08 + ITAB-HSL09 + ITAB-HSL10 + ITAB-HSL11
* + ITAB-HSL12 + ITAB-HSL13.
* WHEN '14'.
* ITAB-TAMOUNT = ITAB-HSLVT + ITAB-HSL01 + ITAB-HSL02 + ITAB-HSL03
* + ITAB-HSL04 + ITAB-HSL05 + ITAB-HSL06 + ITAB-HSL07
* + ITAB-HSL08 + ITAB-HSL09 + ITAB-HSL10 + ITAB-HSL11
* + ITAB-HSL12 + ITAB-HSL13 + ITAB-HSL14.
* WHEN '15'.
* ITAB-TAMOUNT = ITAB-HSLVT + ITAB-HSL01 + ITAB-HSL02 + ITAB-HSL03
* + ITAB-HSL04 + ITAB-HSL05 + ITAB-HSL06 + ITAB-HSL07
* + ITAB-HSL08 + ITAB-HSL09 + ITAB-HSL10 + ITAB-HSL11
* + ITAB-HSL12 + ITAB-HSL13 + ITAB-HSL14 + ITAB-HSL15.
* WHEN '16'.
* ITAB-TAMOUNT = ITAB-HSLVT + ITAB-HSL01 + ITAB-HSL02 + ITAB-HSL03
* + ITAB-HSL04 + ITAB-HSL05 + ITAB-HSL06 + ITAB-HSL07
* + ITAB-HSL08 + ITAB-HSL09 + ITAB-HSL10 + ITAB-HSL11
* + ITAB-HSL12 + ITAB-HSL13 + ITAB-HSL14 + ITAB-HSL15
* + ITAB-HSL16.
ENDCASE.
MODIFY ITAB INDEX SY-TABIX.
* 汇总明细科目至总账科目
"存货
IF ITAB-RACCT+2(2) = '12' OR ITAB-RACCT+2(8) = '41020001'
OR ITAB-RACCT+2(8) = '41020002' OR ITAB-RACCT+2(8) = '41020003'.
ITAB_QM-CH = ITAB_QM-CH + ITAB-TAMOUNT. "期未数(ITAB_QM)
ITAB_NC-CH = ITAB_NC-CH + ITAB-HSLVT. "期初数(ITAB_NC)
ELSE.
CASE ITAB-RACCT+2(4).
"====流动资产:
"货币资金
WHEN '1001' OR '1002' OR '1009'.
ITAB_QM-XJ = ITAB_QM-XJ + ITAB-TAMOUNT. "期未数(ITAB_QM)
ITAB_NC-XJ = ITAB_NC-XJ + ITAB-HSLVT. "期初数(ITAB_NC)
"短期投资
WHEN '1101' OR '1102'.
ITAB_QM-DQTZ = ITAB_QM-DQTZ + ITAB-TAMOUNT.
ITAB_NC-DQTZ = ITAB_NC-DQTZ + ITAB-HSLVT.
"应收票据
WHEN '1111'.
ITAB_QM-YSPJ = ITAB_QM-YSPJ + ITAB-TAMOUNT.
ITAB_NC-YSPJ = ITAB_NC-YSPJ + ITAB-HSLVT.
"应收帐款
WHEN '1131'.
ITAB_QM-YSZK = ITAB_QM-YSZK + ITAB-TAMOUNT.
ITAB_NC-YSZK = ITAB_NC-YSZK + ITAB-HSLVT.
"减:坏帐准备
WHEN '1141'.
ITAB_QM-HZZB = ITAB_QM-HZZB + ITAB-TAMOUNT.
ITAB_NC-HZZB = ITAB_NC-HZZB + ITAB-HSLVT.
"应收帐款净额(略)
"预付帐款
WHEN '1151'.
ITAB_QM-YFZK = ITAB_QM-YFZK + ITAB-TAMOUNT.
ITAB_NC-YFZK = ITAB_NC-YFZK + ITAB-HSLVT.
"应收补贴款
WHEN '1161'.
ITAB_QM-YSBTK = ITAB_QM-YSBTK + ITAB-TAMOUNT.
ITAB_NC-YSBTK = ITAB_NC-YSBTK + ITAB-HSLVT.
"其他应收款
WHEN '1133'.
ITAB_QM-QTYSK = ITAB_QM-QTYSK + ITAB-TAMOUNT.
ITAB_NC-QTYSK = ITAB_NC-QTYSK + ITAB-HSLVT.
"存货(在上面处理)
"待摊费用
WHEN '1301'.
ITAB_QM-DTFY = ITAB_QM-DTFY + ITAB-TAMOUNT.
ITAB_NC-DTFY = ITAB_NC-DTFY + ITAB-HSLVT.
"待处理流动资产净损失(无)
"一年内到期的长期债券投资(无)
"其他流动资产
WHEN '1498' OR '6001'.
IF ITAB-RACCT+2(4) = '1498' OR ITAB-RACCT+2(8) = '60010001'.
ITAB_QM-QTLDZC = ITAB_QM-QTLDZC + ITAB-TAMOUNT.
ITAB_NC-QTLDZC = ITAB_NC-QTLDZC + ITAB-HSLVT.
ENDIF.
* IF ( ITAB-RACCT+2(8) = '14980001' ) OR ( ITAB-RACCT+2(8) = '14980002' )
* OR ( ITAB-RACCT+2(8) = '60010001' ).
* ITAB_QM-QTLDZC = ITAB_QM-QTLDZC + ITAB-TAMOUNT.
* ITAB_NC-QTLDZC = ITAB_NC-QTLDZC + ITAB-HSLVT.
* ENDIF.
"流动资产合计(略)
"====长期投资:
"长期投资
WHEN '1401'.
ITAB_QM-CQTZ = ITAB_QM-CQTZ + ITAB-TAMOUNT.
ITAB_NC-CQTZ = ITAB_NC-CQTZ + ITAB-HSLVT.
"====固定资产:
"固定资产原价
WHEN '1501'.
ITAB_QM-GDZCYZ = ITAB_QM-GDZCYZ + ITAB-TAMOUNT.
ITAB_NC-GDZCYZ = ITAB_NC-GDZCYZ + ITAB-HSLVT.
"减:累计折旧
WHEN '1502'.
ITAB_QM-LJZJ = ITAB_QM-LJZJ + ITAB-TAMOUNT.
ITAB_NC-LJZJ = ITAB_NC-LJZJ + ITAB-HSLVT.
"固定资产净值(无)
"固定资产清理
WHEN '1701'.
ITAB_QM-GDZCQL = ITAB_QM-GDZCQL + ITAB-TAMOUNT.
ITAB_NC-GDZCQL = ITAB_NC-GDZCQL + ITAB-HSLVT.
"在建工程
WHEN '1603'.
ITAB_QM-ZJGC = ITAB_QM-ZJGC + ITAB-TAMOUNT.
ITAB_NC-ZJGC = ITAB_NC-ZJGC + ITAB-HSLVT.
"待处理固定资产净损失
WHEN '1911'.
ITAB_QM-GDZCSS = ITAB_QM-GDZCSS + ITAB-TAMOUNT.
ITAB_NC-GDZCSS = ITAB_NC-GDZCSS + ITAB-HSLVT.
"固定资产合计(略)
"====无形资产及递延资产:
"无形资产
WHEN '1801'.
ITAB_QM-WXZC = ITAB_QM-WXZC + ITAB-TAMOUNT.
ITAB_NC-WXZC = ITAB_NC-WXZC + ITAB-HSLVT.
"递延资产(无)
"无形资产及递延资产合计(略)
"====其他长期资产:
"其他长期资产
WHEN '1901'.
ITAB_QM-QCCQZC = ITAB_QM-QCCQZC + ITAB-TAMOUNT.
ITAB_NC-QCCQZC = ITAB_NC-QCCQZC + ITAB-HSLVT.
"====递延税项
"递延税项借项(无)
"资产总计(略)
"====流动负债:
"短期借款
WHEN '2101'.
ITAB_QM-DQJK = ITAB_QM-DQJK + ITAB-TAMOUNT.
ITAB_NC-DQJK = ITAB_NC-DQJK + ITAB-HSLVT.
"应付票据
WHEN '2111'.
ITAB_QM-YFPJ = ITAB_QM-YFPJ + ITAB-TAMOUNT.
ITAB_NC-YFPJ = ITAB_NC-YFPJ + ITAB-HSLVT.
"应付帐款
WHEN '2121'.
ITAB_QM-YIFZK = ITAB_QM-YIFZK + ITAB-TAMOUNT.
ITAB_NC-YIFZK = ITAB_NC-YIFZK + ITAB-HSLVT.
"预收帐款
WHEN '2131'.
ITAB_QM-YUSZK = ITAB_QM-YUSZK + ITAB-TAMOUNT.
ITAB_NC-YUSZK = ITAB_NC-YUSZK + ITAB-HSLVT.
"应付工资
WHEN '2151'.
ITAB_QM-YFGZ = ITAB_QM-YFGZ + ITAB-TAMOUNT.
ITAB_NC-YFGZ = ITAB_NC-YFGZ + ITAB-HSLVT.
"应付福利费
WHEN '2153'.
ITAB_QM-YFFLF = ITAB_QM-YFFLF + ITAB-TAMOUNT.
ITAB_NC-YFFLF = ITAB_NC-YFFLF + ITAB-HSLVT.
"应付股利
WHEN '2161'.
ITAB_QM-YFGL = ITAB_QM-YFGL + ITAB-TAMOUNT.
ITAB_NC-YFGL = ITAB_NC-YFGL + ITAB-HSLVT.
"应交税金
WHEN '2171'.
ITAB_QM-YJSJ = ITAB_QM-YJSJ + ITAB-TAMOUNT.
ITAB_NC-YJSJ = ITAB_NC-YJSJ + ITAB-HSLVT.
"其他应交款(无)
WHEN '2176'.
ITAB_QM-QTYJK = ITAB_QM-QTYJK + ITAB-TAMOUNT.
ITAB_NC-QTYJK = ITAB_NC-QTYJK + ITAB-HSLVT.
"其他应付款
WHEN '2181'.
ITAB_QM-QTYFK = ITAB_QM-QTYFK + ITAB-TAMOUNT.
ITAB_NC-QTYFK = ITAB_NC-QTYFK + ITAB-HSLVT.
"预提费用
WHEN '2191'.
ITAB_QM-YTFY = ITAB_QM-YTFY + ITAB-TAMOUNT.
ITAB_NC-YTFY = ITAB_NC-YTFY + ITAB-HSLVT.
"一年内到期的长期负债(无)
"其他流动负债(无)
"流动负债合计(略)
"====长期负债:(无)
"长期借款
WHEN '2201'.
ITAB_QM-CQJK = ITAB_QM-CQJK + ITAB-TAMOUNT.
ITAB_NC-CQJK = ITAB_NC-CQJK + ITAB-HSLVT.
"====递延税项:(无)
"====所有者权益(或股东权益):
"实收资本(或股本)
WHEN '3101'.
ITAB_QM-SSZB = ITAB_QM-SSZB + ITAB-TAMOUNT.
ITAB_NC-SSZB = ITAB_NC-SSZB + ITAB-HSLVT.
"减:已归还投资(无)
"实收资本(或股本)净额(无)
"资本公积
WHEN '3111'.
ITAB_QM-ZBGJ = ITAB_QM-ZBGJ + ITAB-TAMOUNT.
ITAB_NC-ZBGJ = ITAB_NC-ZBGJ + ITAB-HSLVT.
"盈余公积
WHEN '3121'.
ITAB_QM-YYGJ = ITAB_QM-YYGJ + ITAB-TAMOUNT.
ITAB_NC-YYGJ = ITAB_NC-YYGJ + ITAB-HSLVT.
"其中:公益金(无)
"未分配利润(略)
"另取未分配利润科目
WHEN '3131' OR '3141'.
ITAB_QM-WFPLL_2 = ITAB_QM-WFPLL_2 + ITAB-TAMOUNT.
ITAB_NC-WFPLL_2 = ITAB_NC-WFPLL_2 + ITAB-HSLVT.
IF P_RYEAR = '2005'.
L_WFPLL_QM = L_WFPLL_QM + ITAB-HSL02.
ENDIF.
WHEN '5801'.
IF ITAB-RACCT+2(8) = '58010000' OR ITAB-RACCT+2(8) = '58010001'.
ITAB_QM-WFPLL_2 = ITAB_QM-WFPLL_2 + ITAB-HSLVT.
ITAB_NC-WFPLL_2 = ITAB_NC-WFPLL_2 + ITAB-HSLVT.
ENDIF.
"所有者权益合计(略)
"负债及所有者权益总计(略)
ENDCASE.
ENDIF.
*更新内表ITAB_NC,ITAB_QM
MODIFY ITAB_NC INDEX SY-TABIX.
MODIFY ITAB_QM INDEX SY-TABIX.
ENDLOOP.
*未分配利润处理
PERFORM. F_WFPLL.
*2000公司年初"其他流动资产"&"未分配利润"特殊处理
IF P_BUKRS = '2000'.
PERFORM. F_MPS.
ENDIF.
ITAB_NC-WFPLL = ITAB_NC-WFPLL + ITAB_NC-WFPLL_2 .
ITAB_QM-WFPLL = ITAB_QM-WFPLL + ITAB_QM-WFPLL_2 - L_WFPLL_QM.
MODIFY ITAB_NC INDEX SY-TABIX.
MODIFY ITAB_QM INDEX SY-TABIX.
*2005年年初数据特殊处理
IF P_RYEAR = '2005'.
PERFORM. F_FIRST_DO.
ENDIF.
*最终数据合计及总计
PERFORM. F_TOTAL.
ENDFORM. " F_READ_DATA
*&---------------------------------------------------------------------*
*& 2005年数据特殊处理
*& 从表ZFI02中取2005年2月的期初数据
*&---------------------------------------------------------------------*
FORM. F_FIRST_DO.
SELECT *
INTO CORRESPONDING FIELDS OF TABLE ITAB_FIRST
FROM ZFI02
WHERE RRCTY = '1'
AND BUKRS = P_BUKRS.
LOOP AT ITAB_FIRST.
*-----资产
ITAB_NC-CH = ITAB_FIRST-CH.
ITAB_NC-XJ = ITAB_FIRST-XJ.
ITAB_NC-DQTZ = ITAB_FIRST-DQTZ.
ITAB_NC-YSPJ = ITAB_FIRST-YSPJ.
ITAB_NC-YSZK = ITAB_FIRST-YSZK.
ITAB_NC-HZZB = 0 - ITAB_FIRST-HZZB.
ITAB_NC-YFZK = ITAB_FIRST-YFZK.
ITAB_NC-YSBTK = ITAB_FIRST-YSBTK.
ITAB_NC-QTYSK = ITAB_FIRST-QTYSK.
ITAB_NC-DTFY = ITAB_FIRST-DTFY.
ITAB_NC-QTLDZC = ITAB_FIRST-QTLDZC.
ITAB_NC-CQTZ = ITAB_FIRST-CQTZ.
ITAB_NC-GDZCYZ = ITAB_FIRST-GDZCYZ.
ITAB_NC-LJZJ = 0 - ITAB_FIRST-LJZJ.
ITAB_NC-GDZCQL = ITAB_FIRST-GDZCQL.
ITAB_NC-ZJGC = ITAB_FIRST-ZJGC.
ITAB_NC-GDZCSS = ITAB_FIRST-GDZCSS.
ITAB_NC-WXZC = ITAB_FIRST-WXZC.
ITAB_NC-QCCQZC = ITAB_FIRST-QCCQZC.
*------负债及所有者权益
ITAB_NC-DQJK = 0 - ITAB_FIRST-DQJK.
ITAB_NC-YFPJ = 0 - ITAB_FIRST-YFPJ.
ITAB_NC-YIFZK = 0 - ITAB_FIRST-YIFZK.
ITAB_NC-YUSZK = 0 - ITAB_FIRST-YUSZK.
ITAB_NC-YFGZ = 0 - ITAB_FIRST-YFGZ.
ITAB_NC-YFFLF = 0 - ITAB_FIRST-YFFLF.
ITAB_NC-YFGL = 0 - ITAB_FIRST-YFGL.
ITAB_NC-YJSJ = 0 - ITAB_FIRST-YJSJ.
ITAB_NC-QTYFK = 0 - ITAB_FIRST-QTYFK.
ITAB_NC-CQJK = 0 - ITAB_FIRST-CQJK.
ITAB_NC-YTFY = 0 - ITAB_FIRST-YTFY.
ITAB_NC-SSZB = 0 - ITAB_FIRST-SSZB.
ITAB_NC-ZBGJ = 0 - ITAB_FIRST-ZBGJ.
ITAB_NC-YYGJ = 0 - ITAB_FIRST-YYGJ.
ITAB_NC-WFPLL = 0 - ITAB_FIRST-WFPLL.
*---更新内表ITAB_NC
MODIFY ITAB_NC INDEX SY-TABIX.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*最终数据合计及总计
*&---------------------------------------------------------------------*
FORM. F_TOTAL.
"应收帐款净额
ITAB_QM-YSZKJE = ITAB_QM-YSZK + ITAB_QM-HZZB.
ITAB_NC-YSZKJE = ITAB_NC-YSZK + ITAB_NC-HZZB.
"流动资产合计
ITAB_QM-TOTAL_LDZC = ITAB_QM-XJ + ITAB_QM-DQTZ + ITAB_QM-YSPJ + ITAB_QM-YSZKJE +
ITAB_QM-YFZK + ITAB_QM-YSBTK + ITAB_QM-QTYSK +
ITAB_QM-CH + ITAB_QM-DTFY + ITAB_QM-ZCLS + ITAB_QM-ZQTZ +
ITAB_QM-QTLDZC.
ITAB_NC-TOTAL_LDZC = ITAB_NC-XJ + ITAB_NC-DQTZ + ITAB_NC-YSPJ + ITAB_NC-YSZKJE +
ITAB_NC-YFZK + ITAB_NC-YSBTK + ITAB_NC-QTYSK +
ITAB_NC-CH + ITAB_NC-DTFY + ITAB_NC-ZCLS + ITAB_NC-ZQTZ +
ITAB_NC-QTLDZC.
"固定资产净值
ITAB_QM-GDZCJZ = ITAB_QM-GDZCYZ + ITAB_QM-LJZJ.
ITAB_NC-GDZCJZ = ITAB_NC-GDZCYZ + ITAB_NC-LJZJ.
"固定资产合计
ITAB_QM-TOTAL_GDZC = ITAB_QM-GDZCJZ + ITAB_QM-GDZCQL + ITAB_QM-ZJGC +
ITAB_QM-GDZCSS.
ITAB_NC-TOTAL_GDZC = ITAB_NC-GDZCJZ + ITAB_NC-GDZCQL + ITAB_NC-ZJGC +
ITAB_NC-GDZCSS.
"无形资产及递延资产合计
ITAB_QM-TOTAL_WXZC = ITAB_QM-WXZC + ITAB_QM-TYZC.
ITAB_NC-TOTAL_WXZC = ITAB_NC-WXZC + ITAB_NC-TYZC.
"资产总计
ITAB_QM-TOTAL_ZC = ITAB_QM-TOTAL_LDZC + ITAB_QM-CQTZ + ITAB_QM-TOTAL_GDZC +
ITAB_QM-TOTAL_WXZC + ITAB_QM-QCCQZC + ITAB_QM-TYSXJX.
ITAB_NC-TOTAL_ZC = ITAB_NC-TOTAL_LDZC + ITAB_NC-CQTZ + ITAB_NC-TOTAL_GDZC +
ITAB_NC-TOTAL_WXZC + ITAB_NC-QCCQZC + ITAB_NC-TYSXJX.
"流动负债合计
ITAB_QM-TOTAL_LDFZ = ITAB_QM-DQJK + ITAB_QM-YFPJ + ITAB_QM-YIFZK +
ITAB_QM-YUSZK + ITAB_QM-YFGZ + ITAB_QM-YFFLF +
ITAB_QM-YFGL + ITAB_QM-YJSJ + ITAB_QM-QTYJK +
ITAB_QM-QTYFK + ITAB_QM-YTFY + ITAB_QM-DQCQFZ +
ITAB_QM-QTLDFZ.
ITAB_NC-TOTAL_LDFZ = ITAB_NC-DQJK + ITAB_NC-YFPJ + ITAB_NC-YIFZK +
ITAB_NC-YUSZK + ITAB_NC-YFGZ + ITAB_NC-YFFLF +
ITAB_NC-YFGL + ITAB_NC-YJSJ + ITAB_NC-QTYJK +
ITAB_NC-QTYFK + ITAB_NC-YTFY + ITAB_NC-DQCQFZ +
ITAB_NC-QTLDFZ.
"长期负债合计(略)
ITAB_QM-TOTAL_CQFZ = ITAB_QM-CQJK + ITAB_QM-YFZQ + ITAB_QM-CQYFK + ITAB_QM-QTCQFZ.
ITAB_NC-TOTAL_CQFZ = ITAB_NC-CQJK + ITAB_NC-YFZQ + ITAB_NC-CQYFK + ITAB_NC-QTCQFZ.
"负债合计
ITAB_QM-TOTAL_FZ = ITAB_QM-TOTAL_LDFZ + ITAB_QM-TOTAL_CQFZ + ITAB_QM-TYSXDX.
ITAB_NC-TOTAL_FZ = ITAB_NC-TOTAL_LDFZ + ITAB_NC-TOTAL_CQFZ + ITAB_NC-TYSXDX.
"实收资本(或股本)净额
ITAB_QM-SSZBJE = ITAB_QM-SSZB - ITAB_QM-YGFTZ.
ITAB_NC-SSZBJE = ITAB_NC-SSZB - ITAB_NC-YGFTZ.
"所有者权益合计
"2005年数据特殊处理
IF P_RYEAR = '2005'.
ITAB_QM-WFPLL = ITAB_NC-WFPLL + ITAB_QM-WFPLL.
ENDIF.
ITAB_QM-TOTAL_QY = ITAB_QM-SSZBJE + ITAB_QM-ZBGJ + ITAB_QM-YYGJ +
ITAB_QM-WFPLL.
ITAB_NC-TOTAL_QY = ITAB_NC-SSZBJE + ITAB_NC-ZBGJ + ITAB_NC-YYGJ +
ITAB_NC-WFPLL.
"负债及所有者权益总计
ITAB_QM-TOTAL_FZQY = ITAB_QM-TOTAL_FZ + ITAB_QM-TOTAL_QY.
ITAB_NC-TOTAL_FZQY = ITAB_NC-TOTAL_FZ + ITAB_NC-TOTAL_QY.
MODIFY ITAB_NC INDEX SY-TABIX.
MODIFY ITAB_QM INDEX SY-TABIX.
ENDFORM. "F_TOTAL.
*&---------------------------------------------------------------------*
*& 计算各期间未分配利润(ITAB_NC-WFPLL,ITAB_QM-WFPLL)
*&---------------------------------------------------------------------*
FORM. F_WFPLL.
DATA: TAMOUNT1 LIKE GLT0-HSLVT, "本期数
TAMOUNT2 LIKE GLT0-HSLVT. "本年累计数
CLEAR ITAB1_WFP.
REFRESH ITAB1_WFP.
CLEAR ITAB2_WFP.
REFRESH ITAB2_WFP.
SELECT *
FROM GLT0
INTO CORRESPONDING FIELDS OF TABLE ITAB_WFP
WHERE BUKRS = P_BUKRS AND RYEAR = P_RYEAR. "公司代码、会计年度
*开始循环
LOOP AT ITAB_WFP.
CASE P_PERID.
WHEN '01'.
TAMOUNT1 = ITAB_WFP-HSL01.
TAMOUNT2 = ITAB_WFP-HSL01.
WHEN '02'.
TAMOUNT1 = ITAB_WFP-HSL02.
TAMOUNT2 = ITAB_WFP-HSL01 + ITAB_WFP-HSL02.
WHEN '03'.
TAMOUNT1 = ITAB_WFP-HSL03.
TAMOUNT2 = ITAB_WFP-HSL01 + ITAB_WFP-HSL02 + ITAB_WFP-HSL03.
WHEN '04'.
TAMOUNT1 = ITAB_WFP-HSL04.
TAMOUNT2 = ITAB_WFP-HSL01 + ITAB_WFP-HSL02 + ITAB_WFP-HSL03
+ ITAB_WFP-HSL04.
WHEN '05'.
TAMOUNT1 = ITAB_WFP-HSL05.
TAMOUNT2 = ITAB_WFP-HSL01 + ITAB_WFP-HSL02 + ITAB_WFP-HSL03
+ ITAB_WFP-HSL04 + ITAB_WFP-HSL05.
WHEN '06'.
TAMOUNT1 = ITAB_WFP-HSL06.
TAMOUNT2 = ITAB_WFP-HSL01 + ITAB_WFP-HSL02 + ITAB_WFP-HSL03
+ ITAB_WFP-HSL04 + ITAB_WFP-HSL05 + ITAB_WFP-HSL06.
WHEN '07'.
TAMOUNT1 = ITAB_WFP-HSL07.
TAMOUNT2 = ITAB_WFP-HSL01 + ITAB_WFP-HSL02 + ITAB_WFP-HSL03
+ ITAB_WFP-HSL04 + ITAB_WFP-HSL05 + ITAB_WFP-HSL06 + ITAB_WFP-HSL07.
WHEN '08'.
TAMOUNT1 = ITAB_WFP-HSL08.
TAMOUNT2 = ITAB_WFP-HSL01 + ITAB_WFP-HSL02 + ITAB_WFP-HSL03
+ ITAB_WFP-HSL04 + ITAB_WFP-HSL05 + ITAB_WFP-HSL06 + ITAB_WFP-HSL07
+ ITAB_WFP-HSL08.
WHEN '09'.
TAMOUNT1 = ITAB_WFP-HSL09.
TAMOUNT2 = ITAB_WFP-HSL01 + ITAB_WFP-HSL02 + ITAB_WFP-HSL03
+ ITAB_WFP-HSL04 + ITAB_WFP-HSL05 + ITAB_WFP-HSL06 + ITAB_WFP-HSL07
+ ITAB_WFP-HSL08 + ITAB_WFP-HSL09.
WHEN '10'.
TAMOUNT1 = ITAB_WFP-HSL10.
TAMOUNT2 = ITAB_WFP-HSL01 + ITAB_WFP-HSL02 + ITAB_WFP-HSL03
+ ITAB_WFP-HSL04 + ITAB_WFP-HSL05 + ITAB_WFP-HSL06 + ITAB_WFP-HSL07
+ ITAB_WFP-HSL08 + ITAB_WFP-HSL09 + ITAB_WFP-HSL10.
WHEN '11'.
TAMOUNT1 = ITAB_WFP-HSL11.
TAMOUNT2 = ITAB_WFP-HSL01 + ITAB_WFP-HSL02 + ITAB_WFP-HSL03
+ ITAB_WFP-HSL04 + ITAB_WFP-HSL05 + ITAB_WFP-HSL06 + ITAB_WFP-HSL07
+ ITAB_WFP-HSL08 + ITAB_WFP-HSL09 + ITAB_WFP-HSL10 + ITAB_WFP-HSL11.
WHEN '12' OR '13' OR '14' OR '15' OR '16'.
TAMOUNT1 = ITAB_WFP-HSL12 + ITAB_WFP-HSL13 + ITAB_WFP-HSL14 + ITAB_WFP-HSL15 +
ITAB_WFP-HSL16.
TAMOUNT2 = ITAB_WFP-HSL01 + ITAB_WFP-HSL02 + ITAB_WFP-HSL03
+ ITAB_WFP-HSL04 + ITAB_WFP-HSL05 + ITAB_WFP-HSL06 + ITAB_WFP-HSL07
+ ITAB_WFP-HSL08 + ITAB_WFP-HSL09 + ITAB_WFP-HSL10 + ITAB_WFP-HSL11
+ ITAB_WFP-HSL12 + ITAB_WFP-HSL13 + ITAB_WFP-HSL14 + ITAB_WFP-HSL15
+ ITAB_WFP-HSL16.
* WHEN '13'.
* TAMOUNT1 = ITAB_WFP-HSL13.
* TAMOUNT2 = ITAB_WFP-HSL01 + ITAB_WFP-HSL02 + ITAB_WFP-HSL03
* + ITAB_WFP-HSL04 + ITAB_WFP-HSL05 + ITAB_WFP-HSL06 + ITAB_WFP-HSL07
* + ITAB_WFP-HSL08 + ITAB_WFP-HSL09 + ITAB_WFP-HSL10 + ITAB_WFP-HSL11
* + ITAB_WFP-HSL12 + ITAB_WFP-HSL13.
* WHEN '14'.
* TAMOUNT1 = ITAB_WFP-HSL14.
* TAMOUNT2 = ITAB_WFP-HSL01 + ITAB_WFP-HSL02 + ITAB_WFP-HSL03
* + ITAB_WFP-HSL04 + ITAB_WFP-HSL05 + ITAB_WFP-HSL06 + ITAB_WFP-HSL07
* + ITAB_WFP-HSL08 + ITAB_WFP-HSL09 + ITAB_WFP-HSL10 + ITAB_WFP-HSL11
* + ITAB_WFP-HSL12 + ITAB_WFP-HSL13 + ITAB_WFP-HSL14.
* WHEN '15'.
* TAMOUNT1 = ITAB_WFP-HSL15.
* TAMOUNT2 = ITAB_WFP-HSL01 + ITAB_WFP-HSL02 + ITAB_WFP-HSL03
* + ITAB_WFP-HSL04 + ITAB_WFP-HSL05 + ITAB_WFP-HSL06 + ITAB_WFP-HSL07
* + ITAB_WFP-HSL08 + ITAB_WFP-HSL09 + ITAB_WFP-HSL10 + ITAB_WFP-HSL11
* + ITAB_WFP-HSL12 + ITAB_WFP-HSL13 + ITAB_WFP-HSL14 + ITAB_WFP-HSL15.
* WHEN '16'.
* TAMOUNT1 = ITAB_WFP-HSL16.
* TAMOUNT2 = ITAB_WFP-HSL01 + ITAB_WFP-HSL02 + ITAB_WFP-HSL03
* + ITAB_WFP-HSL04 + ITAB_WFP-HSL05 + ITAB_WFP-HSL06 + ITAB_WFP-HSL07
* + ITAB_WFP-HSL08 + ITAB_WFP-HSL09 + ITAB_WFP-HSL10 + ITAB_WFP-HSL11
* + ITAB_WFP-HSL12 + ITAB_WFP-HSL13 + ITAB_WFP-HSL14 + ITAB_WFP-HSL15
* + ITAB_WFP-HSL16.
ENDCASE.
* 汇总明细科目
CASE ITAB_WFP-RACCT.
"一、主营业务收入
WHEN '0051010101' OR '0051010102' OR '0051010301' OR '0051010302'
OR '0051010303' OR '0051019901'.
ITAB1_WFP-XSSL = ITAB1_WFP-XSSL + TAMOUNT1.
ITAB2_WFP-XSSL = ITAB2_WFP-XSSL + TAMOUNT2.
"减:主营业务成本
WHEN '0054010101' OR '0054010102' OR '0054010301' OR '0054010302'
OR '0054010303'.
ITAB1_WFP-XSCB = ITAB1_WFP-XSCB + TAMOUNT1.
ITAB2_WFP-XSCB = ITAB2_WFP-XSCB + TAMOUNT2.
"减:主营业务税金及附加
WHEN '0054020001' OR '0054020002' OR '0054020003'
OR '0054020004' OR '0054020005' OR '0054020099'.
ITAB1_WFP-XSSJ = ITAB1_WFP-XSSJ + TAMOUNT1.
ITAB2_WFP-XSSJ = ITAB2_WFP-XSSJ + TAMOUNT2.
"二、主营业务利润(略)
"加:其他业务利润
WHEN '0051020000' OR '0051020001' OR '0051020002'."其他业务收入
ITAB1_WFP-QTYWLR = ITAB1_WFP-QTYWLR - TAMOUNT1.
ITAB2_WFP-QTYWLR = ITAB2_WFP-QTYWLR - TAMOUNT2.
WHEN '0054050000' OR '0054050001' OR '0054050002'."其他业务支出
ITAB1_WFP-QTYWLR = ITAB1_WFP-QTYWLR - TAMOUNT1.
ITAB2_WFP-QTYWLR = ITAB2_WFP-QTYWLR - TAMOUNT2.
"减:营业费用
WHEN '0055010000' OR '54010101'.
ITAB1_WFP-XSFY = ITAB1_WFP-XSFY + TAMOUNT1.
ITAB2_WFP-XSFY = ITAB2_WFP-XSFY + TAMOUNT2.
"减:管理费用
WHEN '0055020000' OR '0055020001' OR '0055020002'.
ITAB1_WFP-GLFY = ITAB1_WFP-GLFY + TAMOUNT1.
ITAB2_WFP-GLFY = ITAB2_WFP-GLFY + TAMOUNT2.
"减:财务费用
WHEN '0055030001' OR '0055030002' OR '0055030003' OR '0055030004'
OR '0055030005'.
ITAB1_WFP-CWFY = ITAB1_WFP-CWFY + TAMOUNT1.
ITAB2_WFP-CWFY = ITAB2_WFP-CWFY + TAMOUNT2.
"三、营业利润(略)
"加:投资收益
WHEN '0052010101' OR '0052010201' OR '0052010301'.
ITAB1_WFP-TZSY = ITAB1_WFP-TZSY + TAMOUNT1.
ITAB2_WFP-TZSY = ITAB2_WFP-TZSY + TAMOUNT2.
"补贴收入
WHEN '0052030001'.
ITAB1_WFP-PTSL = ITAB1_WFP-PTSL + TAMOUNT1.
ITAB2_WFP-PTSL = ITAB2_WFP-PTSL + TAMOUNT2.
"营业外收入
WHEN '0053010001' OR '0053010002' OR '0053010003' OR
'0053010004' OR '0053010005' OR '0053010099'.
ITAB1_WFP-YYWSL = ITAB1_WFP-YYWSL + TAMOUNT1.
ITAB2_WFP-YYWSL = ITAB2_WFP-YYWSL + TAMOUNT2.
"减:营业外支出
WHEN '0056010001' OR '0056010002' OR '0056010003' OR '0056010004' OR
'0056010005' OR '0056010006' OR '0056010007' OR '0056010008' OR
'0056010009' OR '0056010099'. "增加科目56010009的金额 MODIFY BY ZWM AT 2007-07-02
ITAB1_WFP-YYWZC = ITAB1_WFP-YYWZC + TAMOUNT1.
ITAB2_WFP-YYWZC = ITAB2_WFP-YYWZC + TAMOUNT2.
"加:以前年度损益调整
WHEN '0058010000' OR '0058010001'.
ITAB1_WFP-SYDZ = ITAB1_WFP-SYDZ + TAMOUNT1.
ITAB2_WFP-SYDZ = ITAB2_WFP-SYDZ + TAMOUNT2.
"四、利润总额(略)
"减:所得税
WHEN '0057010000'.
ITAB1_WFP-SDS = ITAB1_WFP-SDS + TAMOUNT1.
ITAB2_WFP-SDS = ITAB2_WFP-SDS + TAMOUNT2.
"五、净利润(略)
ENDCASE.
*更新内表ITAB1_WFP,ITAB2_WFP
MODIFY ITAB1_WFP INDEX SY-TABIX.
MODIFY ITAB2_WFP INDEX SY-TABIX.
TAMOUNT1 = 0.
TAMOUNT2 = 0.
ENDLOOP.
*--2005年数据特殊处理
IF P_RYEAR = '2005'.
PERFORM. F_FIRST_DO_WFPLL.
ENDIF.
*--去负号
"本月数
ITAB1_WFP-XSSL = 0 - ITAB1_WFP-XSSL.
ITAB1_WFP-TZSY = 0 - ITAB1_WFP-TZSY.
ITAB1_WFP-YYWSL = 0 - ITAB1_WFP-YYWSL.
ITAB1_WFP-SYDZ = 0 - ITAB1_WFP-SYDZ.
ITAB1_WFP-PTSL = 0 - ITAB1_WFP-PTSL.
"本年累计数
ITAB2_WFP-XSSL = 0 - ITAB2_WFP-XSSL.
ITAB2_WFP-TZSY = 0 - ITAB2_WFP-TZSY.
ITAB2_WFP-YYWSL = 0 - ITAB2_WFP-YYWSL.
ITAB2_WFP-SYDZ = 0 - ITAB2_WFP-SYDZ.
ITAB2_WFP-PTSL = 0 - ITAB2_WFP-PTSL.
*--最终数据合计及总计
*处理本期数ITAB1_WFP
"二、主营业务利润
ITAB1_WFP-TOTAL_CSLR = ITAB1_WFP-XSSL - ITAB1_WFP-XSCB - ITAB1_WFP-XSSJ.
"三、营业利润
ITAB1_WFP-TOTAL_YYLR = ITAB1_WFP-TOTAL_CSLR + ITAB1_WFP-QTYWLR - ITAB1_WFP-XSFY -
ITAB1_WFP-GLFY - ITAB1_WFP-CWFY.
"四、利润总额
ITAB1_WFP-TOTAL_LRZE = ITAB1_WFP-TOTAL_YYLR + ITAB1_WFP-TZSY + ITAB1_WFP-PTSL +
ITAB1_WFP-YYWSL - ITAB1_WFP-YYWZC + ITAB1_WFP-SYDZ.
"五、净利润
ITAB1_WFP-TOTAL_JLR = ITAB1_WFP-TOTAL_LRZE - ITAB1_WFP-SDS.
MODIFY ITAB1_WFP INDEX SY-TABIX.
*处理本年累计数ITAB2_WFP
"二、主营业务利润
ITAB2_WFP-TOTAL_CSLR = ITAB2_WFP-XSSL - ITAB2_WFP-XSCB - ITAB2_WFP-XSSJ.
"三、营业利润
ITAB2_WFP-TOTAL_YYLR = ITAB2_WFP-TOTAL_CSLR + ITAB2_WFP-QTYWLR - ITAB2_WFP-XSFY -
ITAB2_WFP-GLFY - ITAB2_WFP-CWFY.
"四、利润总额
ITAB2_WFP-TOTAL_LRZE = ITAB2_WFP-TOTAL_YYLR + ITAB2_WFP-TZSY + ITAB2_WFP-PTSL +
ITAB2_WFP-YYWSL - ITAB2_WFP-YYWZC + ITAB2_WFP-SYDZ.
"五、净利润
ITAB2_WFP-TOTAL_JLR = ITAB2_WFP-TOTAL_LRZE - ITAB2_WFP-SDS.
MODIFY ITAB2_WFP INDEX SY-TABIX.
ITAB_NC-WFPLL = TAMOUNT1.
ITAB_QM-WFPLL = TAMOUNT1 + ITAB2_WFP-TOTAL_JLR.
ITAB_NC-WFPLL = 0 - ITAB_NC-WFPLL.
ITAB_QM-WFPLL = 0 - ITAB_QM-WFPLL.
ENDFORM. " F_WFPLL
*&---------------------------------------------------------------------*
*&2000公司年初"其他流动资产"&"未分配利润"特殊处理
*&---------------------------------------------------------------------*
FORM. F_MPS.
DATA: L_TOTAL LIKE GLT0-HSLVT. "MPS利润合计
*定义内表ITAB_MPS(作为辅助使用)
DATA: BEGIN OF ITAB_MPS OCCURS 10.
INCLUDE STRUCTURE GLT0.
DATA: TAMOUNT LIKE GLT0-HSLVT.
DATA: END OF ITAB_MPS.
SELECT *
FROM GLT0
INTO CORRESPONDING FIELDS OF TABLE ITAB_MPS
WHERE BUKRS = P_BUKRS "公司代码
AND RYEAR < P_RYEAR "会计年度
AND RACCT = '0060010001'.
L_TOTAL = 0.
LOOP AT ITAB_MPS.
L_TOTAL = L_TOTAL + ITAB_MPS-HSL01 + ITAB_MPS-HSL02 + ITAB_MPS-HSL03
+ ITAB_MPS-HSL04 + ITAB_MPS-HSL05 + ITAB_MPS-HSL06 + ITAB_MPS-HSL07
+ ITAB_MPS-HSL08 + ITAB_MPS-HSL09 + ITAB_MPS-HSL10 + ITAB_MPS-HSL11
+ ITAB_MPS-HSL12 + ITAB_MPS-HSL13 + ITAB_MPS-HSL14 + ITAB_MPS-HSL15
+ ITAB_MPS-HSL16.
ENDLOOP.
ITAB_NC-QTLDZC = ITAB_NC-QTLDZC + L_TOTAL.
ITAB_NC-WFPLL = ITAB_NC-WFPLL - L_TOTAL.
ITAB_QM-QTLDZC = ITAB_QM-QTLDZC + L_TOTAL.
ITAB_QM-WFPLL = ITAB_QM-WFPLL - L_TOTAL.
ENDFORM.
*&---------------------------------------------------------------------*
*& 损益表上的2005年数据特殊处理
*& 从表ZFI03中取2005年2月的累计数据
*&---------------------------------------------------------------------*
FORM. F_FIRST_DO_WFPLL.
SELECT *
INTO CORRESPONDING FIELDS OF TABLE ITAB_FIRST_WFP
FROM ZFI03
WHERE RRCTY = '1'
AND BUKRS = P_BUKRS.
LOOP AT ITAB_FIRST_WFP.
IF P_PERID = '02'.
&n
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/765243/viewspace-253281/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/765243/viewspace-253281/