ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 财务报表版本

财务报表版本

原创 Linux操作系统 作者:翟毛 时间:2009-12-30 14:57:46 0 删除 编辑

系统定义了一套会计科目,但是出总账分类账的时候要用到另外一套财务报表版本,如下:

这个可以通过标准程序RFGSBSTR输入版本号即可得到这个关系,但是程序如何做这样的转换了?有两个函数非常好用FI_IMPORT_BALANCE_SHEET_TEXT 和FI_IMPORT_BALANCE_SHEET_POS 一个读文本一个保存二者之间的关系。我写了一个仅限于获取一级科目的函数,如下:

DATA: l_idcn_cdea TYPE idcn_cdea,
        l_idcn_cflea TYPE idcn_cflea.
"获取文本用
DATA: lt_rf011q TYPE STANDARD TABLE OF rf011q,
        ls_rf011q TYPE rf011q.
"获取转换科目用
DATA: lt_rf011z TYPE STANDARD TABLE OF rf011z,
        ls_rf011z TYPE rf011z.
"获取文本信息
CALL FUNCTION 'FI_IMPORT_BALANCE_SHEET_TEXT'
EXPORTING
          sprache              = '1'
          version              = i_version
TABLES
         x011q                = lt_rf011q
*      TSTAMP_TAB           =
*    EXCEPTIONS
*      TEXT_NOT_FOUND       = 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.
SELECT SINGLE idcn_cflea
FROM idcn_detail_ea
INTO l_idcn_cflea
WHERE idcn_cdea IN ( SELECT idcn_cdea
FROM idcn_map_eas
WHERE saknr = i_racct AND fkber = i_rfarea ).
"判断是否有功能范围
IF sy-subrc = 0.
"科目编号
    e_racct = l_idcn_cflea+0(4).
"获取文本
READ TABLE lt_rf011q INTO ls_rf011q WITH KEY ergsl = l_idcn_cflea BINARY SEARCH.
    e_txt = ls_rf011q-txt45.
* "没有功能范围转换为对应的一级科目和文本
ELSE.
CALL FUNCTION 'FI_IMPORT_BALANCE_SHEET_POS'
EXPORTING
        version                 = i_version
TABLES
       i011z                   =  lt_rf011z
*      X011P                   =
*      X011S                   =
*      X011V                   =
*      X011F                   =
*    EXCEPTIONS
*      NEW_BALANCE_SHEET       = 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.
ENDIF.
"找到对应的科目
LOOP AT lt_rf011z INTO ls_rf011z.
IF ls_rf011z-bilkt >= i_racct AND ls_rf011z-vonkt <= i_racct.
exit.
ENDIF.
ENDLOOP.
READ TABLE lt_rf011q INTO ls_rf011q WITH KEY ergsl = ls_rf011z-ERGSO+0(4) BINARY SEARCH.
  e_txt = ls_rf011q-txt45.

自己以前写这类财务的东西,通常自建表,个人觉得达到了可配置的目的。但是毕竟还是没有标准的好,以后都不需要去维护代码了,只需要维护标准的东西即可。这个思路非常好。

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/donkey2004112103/archive/2009/11/22/4851404.aspx

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22116385/viewspace-623990/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-07-15

  • 博文量
    5
  • 访问量
    7804