资产负债表和损益表开发.docx
资产负债表和损益表,在SAP标准系统中,可以通过事务代码F.01执行;但其结果所取数 据为SAP系统内的数据,需要根据实际情况进行修改和合并,并导出到EXCEL中。在事务代码OB58中,定义会计报表项目。此会计报表项目定义直接影响科目在报表上列式 的位置步骤:1 .从标准程序RFBILAOO拷贝一个ZRFBILAOO程序,为ZRFBILAOO指定事务代码:ZF01.2 .在ZRFBILAOO主程序中搜索Submit: Submit将内表scjdata中的数据提交3 . SCR_data 的结构:BUKRS ERGSL BSUMVSUM公司代码财务码当前值比较值需要根据财务ob58配的财务版本修改SCR_DATA的数据4 .在Layout Set中,ERP+财务码 取出的数是当前数:ECP+财务码取出的数是比较数5 .针对浪潮需要做如下修改:源程序部分:在submit之前,添加以下程序段:* added by c0125* 2003. 11. 19* 定义导出Excel的格式DATA: BEGIN OF itab_sci OCCURS 0,bukrsLIKEskbl-bukrs,gsberLIKEskcla-gsber,ergslLIKErfOllq-ergsl,typ(l)TYPEc,bsumLIKEbseg-dmbtr,vsumLIKEbseg-dmbtr,saldoLIKEamount,z/Absolute Abweichungrelab(16)TYPEp DECIMALS 1,Relative Abweichungstar (5)TYPEc.waersLIKEtOOl-waers,END OF itab_scr.* 根据财务要求修改scr_data,包括些正负号和合并的要求 LOOP AT scr_data.if SCR_DATA-ERGSL = '23' or SCR_DATA-ERGSL = ' 26' or* SCR_DATA-ERGSL = ' 33' orSCR_DATA-ERGSL = '47' orSCR_DATA-ERGSL = ' 112' orSCR_DATA-ERGSL(1) = "6' orSCR_DATA-ERGSL = ' 70' orSCR_DATA-ERGSL = ' 73' orSCR_DATA-ERGSL = ' 74' orSCR_DATA-ERGSL = '114" orSCR_DATA-ERGSL = ' 71' orSCR_DATA-ERGSL=,72'orSCR_DATA-ERGSL='58'orSCR_DATA-ERGSL='75"orSCR_DATA-ERGSL='76'orSCR_DATA-ERGSL='77'orSCR_DATA-ERGSL='115'orSCR_DATA-ERGSL='116'orSCR_DATA-ERGSL='78'orSCR_DATA-ERGSL='59'orSCR_DATA-ERGSL='79'orSCR_DATA-ERGSL='56'orSCR_DATA-ERGSL='120'orSCR_DATA-ERGSL='80'orSCR_DATA-ERGSL='118'orSCR_DATA-ERGSL='117'orSCR_DATA-ERGSL='81'orSCR_DATA-ERGSL='82'orSCR_DATA-ERGSL='83'orSCR_DATA-ERGSL='84'orSCR_DATA-ERGSL='96'orSCR_DATA-ERGSL='57'orSCR_DATA-ERGSL='104'orSCR_DATA-ERGSL='90'orSCR_DATA-ERGSL='91'orSCR_DATA-ERGSL='93'orSCR_DATA-ERGSL='99'orSCR_DATA-ERGSL='88'orSCR_DATA-ERGSL='86'orSCR DATA-ERGSL="5'SCR_DATA-vsum * ,-,.SCR DATA-bsum * '-1'.SCR_DATA-vsum = SCR_DATA-bsum = modify SCR_DATA. endif.MOVE-CORRESPONDING scr data TO itab scr.itab_scr-bsum = itab_scr_vsum = APPEND itab_scr. ENDLOOP.itab_scr-bsum / 100.itab_scr-vsum / 100. 导出itab_scrPERFORM frm_process_scr_data.REFRESH itab_scr.根据layout的名称选择是资产负债表逻辑,还是损益表逻辑。FORM frm_process_scr_data.IF scr_form = ' Z_BILA_BACN,.PERFORM frm_banlance_sheet.ELSE.IF scr_form = ' Z_BILA_01.PERFORM frm_profit.ENDIF.ENDIF.ENDFORM.Afrm_process_scr_data调整itab_excel的结构,并导出FORM frm_ban1ance_sheet.REFRESH itab excel.,数数,,.数数 目次初末目次初末 项行年期项行年期1tab_excel-col11 = itab_excel-coll2 = itab_excel-col13 - itab_excel-coll4 = itab_excel-col21 = itab_excel-col22 = itab_excel-col23 = itab_excel-col24 = APPEND itab excel.PERFORM frm_fill_excel USING:流动资产:流动负债:货币资金T' '12''短期借款'51' '61','短期投资2' '22''应付票据'52' '62',减:短期投资跌价准备'3' '23''应付帐款'53' '63','短期投资净额'4' '13'预收帐款'54' '64','应收票据''5' '14''代销商品款''55' '65','应收股利'6' '15''应付工资56' '66','应收利息7' '16'应付福利费'57' '67','应收帐款8' '24''应交税金58' '68','其他应收款9' '25''应付股利''59' '69','减:坏帐准备'10' '26''其他应交款60' '70',应收帐款净额'11' '17''其他应付款'61' '73',预付帐款12' 19'预提费用62' '74',应收补贴款应收出口退税'71",'存货15' '18'13' '20' '预计负债63' '114',其他流动负债'65' '72','14' '21''一年内到期的长期负债64'其中:原材料''16' '27''产成品17' '28'''在产品''18' '110'''减:存货跌价准备'19' '29' 存货净额''20' '36''''''','待摊费用'21' '37'"待处理流动资产净损失22' 38'一年内到期的长期债券投资23' '500342,其他流动资产'24' '40'""",流动资产合计'25' '7'流动负债合计''66' '58',长期投资:长期负债:长期股权投资26' '30' 长期债券投资27' '31' '长期投资合计28' '32''长期借款'67' '75', 应付债券68' '76', '长期应付款''69' '77',减:长期投资减值准备'长期投资净额30' '34''29' '33''专项应付款70' '115', 递延收益''71' '116','其中:合并价差31' '35'其他长期负债72' '78', '固定资产:长期负债合计73' '59', 固定资产原价32' '46'递延税项:',,减:累计折旧33' '47''递延税款贷项'74' '79',固定资产净值34' '113''''''','减:固定资产减值准备'35' '112''固定资产净额36 '41'工程物资''37' '42''在建工程'38' '43'固定资产清理'39' '44''''''','待处理固定资产净损失40 '45''负债合计'75' '56',固定资产合计''41' '9'少数股东权益''76' '120',无形资产与其他资产:股东权益:',无形资产'42' '48'股本'77' '80',其中:土地使用权43 '52''减:已规还投资'78' '118',,开办费44' '49''股本净额'79' '117',长期待摊费用45' '119''资本公积'80' '81',其中:固定资产改良支出'46' '54'盈余公积'81' '82',其他长期资产47' '51''其中:公益金'82' '83',无形资产与其他资产合计''48' '10''未分配利润83' '84',递延税项递延税款借项49' '55''股东权益合计'84' '57',资产总计50 6'负债及所有者权益合计85' '5'.导出excelCALL FUNCTION ' D0WNL0AD,EXPORTINGfiletype='DAT'filename="C:ZCFZB. DATTABLESdata_tab=itab_excelEXCEPTIONSinvalid_filesize=1invalid_table_width=2invalid_type二3no_batch=4unknown_error=5gui_refuse_filetransfer=6customer_error=7OTHERS=8.6 .导出的文件是以Tab键分割的,为了方便财务使用,可以通过Excel宏编程,将数据显 示为默认格式。程序如下:Sub auto_open(),auto_open()代表启动excel自动执行如果不需要自动执行,则可以随便起名字Application. WindowState = xlMinimizedSet currentbook = Application.ActiveWorkbook old_page_name = currentbook.Name 'Sheets("sheet ).Visible = True ,Sheets(,sheetr,).Unprotect "aaaM 给模板加密,防止其他用户进行修改Workbooks.Open Filename:="c:zcfzb.da打开头文件,头文件里面一般是凭证的抬头信息 Windows(old_page_name). Activate将zcfzb.dat的相应字段复制到模板中For i = 5 To 58j = i-2Cells(i, 3) = Val(Workbooks("zcfzb.dat").Sheets("zcfzbn).Cells(j, 3)Cells(i, 4) = Val(Workbooks("zcfzb.dat").Sheets("zcfzb").Cells(j, 4)Cells(i, 7) = Val(Workbooks(,zcfzb.dat,).Sheets(,'zcfzb',).Cells(j, 7)Cells(i, 8) = Val(Workbooks(,zcfzb.dat,').Sheets(,'zcfzbn).Cells(j, 8) Next i关掉头文件表、行项目表和初始模板表,剩下的就是所有的凭证表Windows(Hzcfzb.datu).Close savechanges:=False'Windows(old_page_name).Close savechanges:=False预览或者不预览直接打印'ActiveWorkbook.Printout Copies:=1'ActiveWorkbook.PrintOut Copies:=l, Preview:=True, Collate:=TrueSheets(飞heet ).Visible = xlVeryHidden退出'Application.QuitEnd Sub7 .报表平衡判断:资产总额=负债总额+所有者权益总额资产负债表中本年利润应与损益表中本年的累计利润金额一致