ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:332.98KB ,
资源ID:26742180      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/26742180.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(作业需求编写FI模块应收应付的报表.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

作业需求编写FI模块应收应付的报表.docx

1、作业需求编写FI模块应收应付的报表作业需求:编写FI模块应收应付的报表 目录:1. 作业目的和安排本作业的目的是:1. 为了进一步熟悉ABAP的编程技巧;2. 更主要的目标的:熟悉sap fi模块的应收和应付业务场景;3. 熟悉相关的表;2. 作业简单需求开发一个FI模块的报表:输入的条件是:供应商 (但是可以多选),公司代码 (必输)账龄计算日:报表输出字段包括: 公司代码、供应商(客户),年度销售总额、应付(收)账款总额、0天金额 1-30天,31-60天,61-90天,91-150天,150天以上数据结果需要和这个表进行比对。3. 作业要求时间要求:1 郭裕的要求2天左右开发完成报表;2

2、 一般的项目要求给予4天左右。3 最低要求4. 作业过程1 充分分析需求;2 对于复杂程序在编写之前要画流程图;为了方便和加深对要编写程序的理解,我们一般:步骤一:编写字段来源输入的条件是:公司代码(必输),供应商(但是可以多选),账龄计算日(默认今天)报表输出字段包括:公司代码、供应商,年度采购总额、应付账款总额、=0天金额,1-30天,31-60天,61-90天,91-150天,150天以上需要的表字段:(具体见步骤2)BSIK(会计核算:供应商的第二次索引(未结算项目):公司代码(bukrs),供应商(lifnr),清帐日期(AUGDT) 用于到期日计算的基准日期(ZFBDT)BSAK(

3、会计核算:供应商的第二个索引(已结算项目):公司代码(bukrs),供应商(lifnr),清帐日期(AUGDT) 用于到期日计算的基准日期(ZFBDT)要知道年度采购总额,必须知道年度已付账款总额+年度应付账款总额,采购成立与否,是由收到发票与否来判断的。每张发票都对应一个会计凭证,此凭证分别在bsik和bsak中都可找到。经se16n检查,bsik中清算单据的单据号码(AUGBL)全部为空,bsak中清算单据的单据号码(AUGBL)全部不为空。这个字段表示对会计凭证编号(BELNR)的清算单据号,blart代表凭证类型。例子:用f-53实验了2笔清帐凭证,2笔都是完全清帐了1个会计凭证,部分

4、清帐了1个会计凭证。第1笔清帐凭证号是1500000005,我填的开始总清帐金额为1234元,完全清帐了5100000673的696元,部分清帐了1500000005的538元,一共就是1234元。第2笔清帐凭证号为1500000006,开始清帐总金额为2345元,完全清帐了5100000004的367.72元,部分清帐了1500000006的1977.28元,共2345元。在se11中查看bsak,可以分别看到2笔清帐凭证已经完成的清帐,注意SHKZG是借贷标记,DMBTR(按本位币计的金额)和WRBTR(凭证货币金额),同样在se11中查看bsik,可以分别看到2笔清帐凭证部分完成的清帐:

5、年度采购总额可以通过发票金额总额来判断,也就是bsik和bsak中凭证类型为RE的。应付账款总额,即bsik中所有凭证金额之和(正负冲销,原因见下面)。上图其实是已清的,为何在未清中呢?这很令人混淆,其实答案很简单,它是正值!写到那里就是为了冲销用的,所有应付的实质是欠款,因此显示都是负值,因此,它们还是显示原来的值(负值),不管冲销多少,只要没冲销完,就显示原来的,比如下图:已经被冲销了很多次了,可是没有完,所以值不变。正负冲销的判断是借方或贷方科目,在字段借贷标识(SHKZG)中。步骤二:画数据来源表的逻辑关系本次表关系比较简单,难在1. 业务的理解和数据的寻找 2. 程序的统计功能上。还

6、在艰难摸索中。步骤三:具体完整程序流程在bsik中累加得到发票总金额selectbukrslifnrsum(dmbtr)intotablegit_bsik_sumfrombsikwherebukrs=s_bukrsandlifnrins_lifnrandblart=REgroupbybukrslifnr.在bsak中累加得到发票总金额selectbukrslifnrsum(dmbtr)intotablegit_bsak_sumfrombsakwherebukrs=s_bukrsandlifnrins_lifnrandblart=REgroupbybukrslifnr.合并未结算发票总额表git

7、_bsik_sum与已结算发票总额表git_bsak_sum,结果得到销售总额表git_sumgit_sum=git_bsak_sum.sortgit_sumbylifnr.loopatgit_bsik_sum.loopatgit_bsak_sum.first_index=SY-TABIX.check=0.ifgit_bsik_sum-lifnr=git_bsak_sum-lifnr.clearwa_sum.wa_sum-bukrs=git_bsak_sum-bukrs.wa_sum-lifnr=git_bsak_sum-lifnr.wa_sum-dmbtr_sum=git_bsik_sum-

8、dmbtr_sum+git_bsak_sum-dmbtr_sum.modifygit_sumfromwa_sumindexfirst_index.check=1.exit.endif.endloop.ifcheck=0.clearwa_sum.wa_sum-bukrs=git_bsik_sum-bukrs.wa_sum-lifnr=git_bsik_sum-lifnr.wa_sum-dmbtr_sum=git_bsik_sum-dmbtr_sum.appendwa_sumtogit_sum.endif.endloop.对销售总额表按公司与供应商进行排序sortgit_sumbybukrslif

9、nr.程序设计中的检查功能*write:/销售总额表git_sum.*write:/#.*loopatgit_sum.*write:/git_sum-bukrs,git_sum-lifnr,git_sum-dmbtr_sum.*endloop.在bsik中以公司供应商与借贷标识累加得到应付账款总额的分别借贷方得到处理前的应付账款总额表selectbukrslifnrSHKZGsum(dmbtr)intotablegit_bsik_yfzefrombsikwherebukrs=s_bukrsandlifnrins_lifnrgroupbybukrslifnrshkzg.(难点)计算应付账款总额:

10、思路:设置check为s,开始循环,done = 0,检查是否H,一 是 上体是否h(由check判断),1.是则上体写入git,本体写入wa,check设为h;2.否则本体写入wa,check设为h。二 否 本体减额写入wa,写入git,done = 1,check设为s。三 判断是否到了表尾,是则判断done是否为0,是则本体写入git,最后一次清空wa。对此处理前应付总额表分别借贷方进行升序排序,S在前,H在后sortgit_bsik_yfzebybukrslifnrSHKZG.*loopatgit_bsik_yfze.程序设计中的检查功能*write:/git_bsik_yfze-bu

11、krs,git_bsik_yfze-lifnr,git_bsik_yfze-SHKZG,git_bsik_yfze-dmbtr_sum.*endloop.得到合并借贷方后的处理后应付账款总额表git_bsik_yfzepp代表process”已经处理过的“cleargit_bsik_yfzep.check_p=s.loopatgit_bsik_yfze.ifgit_bsik_yfze-SHKZG=H.ifcheck_p=h.appendwa_bsik_yfzeptogit_bsik_yfzep.clearwa_bsik_yfzep.wa_bsik_yfzep-bukrs=git_bsik_yf

12、ze-bukrs.wa_bsik_yfzep-lifnr=git_bsik_yfze-lifnr.wa_bsik_yfzep-dmbtr_sum=git_bsik_yfze-dmbtr_sum.check_p=h.else.clearwa_bsik_yfzep.wa_bsik_yfzep-bukrs=git_bsik_yfze-bukrs.wa_bsik_yfzep-lifnr=git_bsik_yfze-lifnr.wa_bsik_yfzep-dmbtr_sum=git_bsik_yfze-dmbtr_sum.check_p=h.endif.else.wa_bsik_yfzep-bukrs=

13、git_bsik_yfze-bukrs.wa_bsik_yfzep-lifnr=git_bsik_yfze-lifnr.wa_bsik_yfzep-dmbtr_sum=wa_bsik_yfzep-dmbtr_sum-git_bsik_yfze-dmbtr_sum.ifwa_bsik_yfzep-dmbtr_sum0.appendwa_bsik_yfzeptogit_bsik_yfzep.endif.check_p=s.initial_yingfu=initial_yingfu+git_bsik_yfze-dmbtr.endif.endloop.对处理后应付账款总额表进行排序sortgit_bs

14、ik_yfzepbybukrslifnr.*write:/处理后应付账款总额表git_bsik_yfzep.*write:/#.*loopatgit_bsik_yfzep.程序设计中的检查功能*write:/git_bsik_yfzep-bukrs,git_bsik_yfzep-lifnr,git_bsik_yfzep-dmbtr_sum.*endloop.(难点)合并年度采购总额和应付账款总额表:思路:Loop年度采购总额表,在应付账款总额表中找公司号与供应商号相同记录,找到则将应付账款总额加入,否则为0。写入git。Loop 应付账款总额表,在年度采购总额表中找公司号与供应商号不同记录(因

15、为上一步已经找了相同记录),如果是则将采购总额加入,否则为0。写入git。合并销售总额表git_sum与应付账款总额表git_bsik_yfzep第一步refreshgit_sumyfzep.loopatgit_sum.readtablegit_bsik_yfzepwithkeybukrs=git_sum-bukrslifnr=git_sum-lifnrbinarysearch.ifsy-subrc=0.clearwa_sumyfzep.wa_sumyfzep-bukrs=git_sum-bukrs.wa_sumyfzep-lifnr=git_sum-lifnr.wa_sumyfzep-dmb

16、tr_gsum=git_sum-dmbtr_sum.wa_sumyfzep-dmbtr_yfzep=git_bsik_yfzep-dmbtr_sum.appendwa_sumyfzeptogit_sumyfzep.else.clearwa_sumyfzep.wa_sumyfzep-bukrs=git_sum-bukrs.wa_sumyfzep-lifnr=git_sum-lifnr.wa_sumyfzep-dmbtr_gsum=git_sum-dmbtr_sum.wa_sumyfzep-dmbtr_yfzep=0.appendwa_sumyfzeptogit_sumyfzep.endif.en

17、dloop.sortgit_sumbybukrslifnr.前面已经sort过了,且没有改动表合并销售总额表git_sum与应付账款总额表git_bsik_yfzep第二步loopatgit_bsik_yfzep.readtablegit_sumwithkeybukrs=git_bsik_yfzep-bukrslifnr=git_bsik_yfzep-lifnrbinarysearch.ifsy-subrc0.clearwa_sumyfzep.wa_sumyfzep-bukrs=git_bsik_yfzep-bukrs.wa_sumyfzep-lifnr=git_bsik_yfzep-lifn

18、r.wa_sumyfzep-dmbtr_gsum=0.wa_sumyfzep-dmbtr_yfzep=git_bsik_yfzep-dmbtr_sum.appendwa_sumyfzeptogit_sumyfzep.endif.endloop.将得到的销售总额与应付账款总额表git_sumyfzep排序sortgit_sumyfzepbybukrslifnr.程序设计中的检查功能*write:/销售总额与应付账款总额表git_sumyfzep.*write:/#.*loopatgit_sumyfzep.*write:/git_sumyfzep-bukrs,git_sumyfzep-lifnr,

19、git_sumyfzep-dmbtr_gsum,git_sumyfzep-dmbtr_yfzep.*endloop.内表无法innerjoin*select*abukrs*alifnr*admbtr_sum*bdmbtr_sum*intotablegit_sumyfzep*fromgit_sumasaleftjoingit_bsik_yfzepasb*onabukrs=bbukrs*andalifnr=blifnr.*loopatgit_bsik_yfze.程序设计中的检查功能*write:/git_bsik_yfze-bukrs,git_bsik_yfze-lifnr,git_bsik_yf

20、ze-SHKZG,git_bsik_yfze-dmbtr_sum.*endloop.(难点)统计不同时间段的应付账款总额:Loop git_bsik表,-1. 赋值tmax_git_bsik = SY-TMAXL。0. 如果为借方,则直接重新循环。(原因见4)1. 如果SY-TABIX=1,记录此供应商号入wa,readme = 1,check = 0,然后进入2;否则与上一供应商号比,相等且check = 0则重新循环。若不等且check = 0则记录此供应商号入wa,readme = 1,进入下一步。若相等且check = 1,进入下一步。若不等且check = 1,则通过wa直接根据ta

21、bix_sumyfzep来modify git_sumyfzep表,清空wa,记录供应商号入wa,check = 0,readme = 1,进入下一步。2. 如果readme = 0,直接进入3;如果readme = 1,读表git_sumyfzep看有无记录的供应商号且应付总额不为0,无则check = 0,重新循环。有则check = 1,readme = 0,并记录读此表的sy-tabix(tabix_sumyfzep = sy-tabix)进入下一步。3. 判断是否为贷方(原因见4),是则按账龄计算日与付款基准日ZFBDT对比,归类于不同时间段来累加金额,重新循环。4. 判断是否到达表

22、尾(此为最后一条记录),也就是最外层sy-tabix是否等于tmax_git_bsik,是则通过wa直接根据tabix_sumyfzep来modify git_sumyfzep表,最后一次清空wa,跳出。5. 由于业务理解阻碍,程序无法完美实现,因此只能做出半成品,可以知道应付账款各二阶汇总原始总额(贷方数据),而无法知道其现实总额(被借方冲销后剩余的贷方数据)按公司与供应商把所有借贷方金额与付款基准日期选出,以备二阶汇总selectbukrslifnrSHKZGdmbtrZFBDTintocorrespondingfieldsoftablegit_bsikfrombsikwherebukrs

23、=s_bukrsandlifnrins_lifnr.将二阶汇总备用表git_bsik按公司与供应商排序sortgit_bsikbybukrslifnr.将二阶汇总应付数据写入销售与应付总额表,得到最终git_sumyfzep表clearwa_sumyfzep.重要!我很容易就搞忘了loopatgit_bsik.ifgit_bsik-shkzg=S.continue.endif.ifsy-tabix=1.wa_sumyfzep-bukrs=git_bsik-bukrs.wa_sumyfzep-lifnr=git_bsik-lifnr.readme=1.check=0.else.if(git_bs

24、ik-lifnr=wa_sumyfzep-lifnrandcheck=0).continue.endif.if(git_bsik-lifnrwa_sumyfzep-lifnrandcheck=0).wa_sumyfzep-bukrs=git_bsik-bukrs.wa_sumyfzep-lifnr=git_bsik-lifnr.readme=1.endif.if(git_bsik-lifnr=wa_sumyfzep-lifnrandcheck=1).直接往下走endif.if(git_bsik-lifnrwa_sumyfzep-lifnrandcheck=1).modifygit_sumyfz

25、epfromwa_sumyfzepindextabix_sumyfzep.clearwa_sumyfzep.wa_sumyfzep-bukrs=git_bsik-bukrs.wa_sumyfzep-lifnr=git_bsik-lifnr.check=0.readme=1.endif.endif.ifreadme=0.直接往下走endif.ifreadme=1.看此公司供应商是否有应付账款,有的话肯定在git_sumyfzep中有记录readtablegit_sumyfzepwithkeylifnr=wa_sumyfzep-lifnrbinarysearch.ifsy-subrc0.continue.else.ifgit_sumyfzep-dmbtr_yfzep=0.continue.endif.endif.check=1.readme=0.tabix_sumyfzep=sy-tabix.wa_sumyfzep-dmbtr_

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1