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 @ 2024-06-19 13:29  Lan_dev  阅读(1091)  评论(0)    收藏  举报