SAP ABAP FB05 清账函数

传入凭证+年度+行

标准筛选 MF05BFS0

 

 

筛选凭证item 行项目

 

 

FB05 操作 双击差别金额 会添加一行

 

调用函数前 补充录屏数据

 

 

复制代码
DATA:lt_bdcdata TYPE TABLE OF bdcdata, " bdc
        ls_bdcdata TYPE bdcdata,
       lv_wrbtr   TYPE string,
        gv_id      TYPE char20. "MEMORY ID

  DATA:u_wrbtr     TYPE wrbtr.

 DEFINE def_bdcdata.
    CLEAR ls_bdcdata.
    ls_bdcdata-program = &1.
    ls_bdcdata-dynpro = &2.
    ls_bdcdata-dynbegin = &3.
    ls_bdcdata-fnam = &4.
    ls_bdcdata-fval = &5.
    APPEND ls_bdcdata TO lt_bdcdata.
  END-OF-DEFINITION.

  CLEAR:lt_bdcdata,gv_id.
  CONCATENATE sy-uname 'ADD_SCR' INTO gv_id. 

 "--部分清账
  IF u_wrbtr IS NOT INITIAL .
    READ TABLE t_qz INTO DATA(ls_qz) INDEX 1.
    "部分清账界面
    def_bdcdata: 'SAPDF05X' '3100' 'X' '' '',
                 '' '' '' 'BDC_OKCODE' '=PART', "点击部分清账页签
                 '' '' '' 'BDC_SUBSCR' 'SAPDF05X   6102PAGE',
                 '' '' '' 'BDC_CURSOR' 'DF05B-PSSKT(01)',
                 '' '' '' 'RF05A-ABPOS' '1'.

    CLEAR:lv_wrbtr.
    lv_wrbtr = u_wrbtr.
    CONDENSE lv_wrbtr NO-GAPS.

    " 填入金额
    def_bdcdata: 'SAPDF05X' '3100' 'X' '' '',
                 '' '' '' 'BDC_OKCODE' '/00',                " 回车
                 '' '' '' 'BDC_SUBSCR' 'SAPDF05X   6104PAGE',
                 '' '' '' 'BDC_CURSOR' 'RF05A-AKOBT',
                 '' '' '' 'RF05A-ABPOS' '1',
                 '' '' '' 'RF05A-AKOBT' lv_wrbtr.        " 金额

    " 过账
    def_bdcdata: 'SAPDF05X' '3100' 'X' '' '',
           '' '' '' 'BDC_OKCODE' '=BU', "保存过账
           '' '' '' 'BDC_SUBSCR' 'SAPDF05X   6104PAGE',
           '' '' '' 'BDC_CURSOR' 'DF05B-PSZAH(01)',
           '' '' '' 'RF05A-ABPOS' '1'.
  ENDIF.
复制代码

 

 

清账函数增强 POSTING_INTERFACE_CLEARING 

 

 

 

复制代码
*{   INSERT         DS4K901144                                        1
"-在程序ZFI210中
     DATA:GV_ID TYPE CHAR20,
          LT_BDCDATA TYPE TABLE OF BDCDATA,
          LS_BDCDATA TYPE BDCDATA,
          LV_LINES TYPE I.

     CLEAR:LT_BDCDATA,GV_ID.
     CONCATENATE SY-UNAME 'ADD_SCR' INTO GV_ID.

    IMPORT LT_BDCDATA TO LT_BDCDATA FROM MEMORY ID GV_ID. "补充屏幕数据

    IF LT_BDCDATA IS NOT INITIAL.
      APPEND LINES OF LT_BDCDATA TO FT.

      LOOP AT  FT WHERE FVAL = '/11'.
         FT-FVAL = '=PA' .
       MODIFY FT.
      ENDLOOP.

     FREE MEMORY ID GV_ID.
    ENDIF.
*}   INSERT
复制代码

 

posted @   Lan_dev  阅读(234)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
点击右上角即可分享
微信分享提示