二维码

冲销客户清账时,查询关联清账凭证脚本

Twilight发表于 2020-06-09 18:32秦小枫 最后回复于 2020-10-28 07:40 [复制链接] 5027 2

1、清账凭证正序打印输出
  1. PARAMETERS:p_bukrs TYPE bkpf-bukrs DEFAULT '3100',
  2.            p_belnr TYPE bkpf-belnr,
  3.            p_gjahr TYPE bkpf-gjahr.

  4. DATA:lv_gjahr TYPE bseg-gjahr.
  5. DATA:lv_belnr TYPE bseg-belnr.
  6. DATA:ls_bsad  TYPE bsad.

  7. lv_gjahr = p_gjahr.
  8. lv_belnr = p_belnr.

  9. DO.
  10.   IF lv_belnr IS INITIAL.
  11.     EXIT.
  12.   ENDIF.

  13.   CLEAR:ls_bsad.
  14.   SELECT SINGLE *
  15.     FROM bsad
  16.     WHERE bukrs = @p_bukrs
  17.       AND gjahr = @lv_gjahr
  18.       AND belnr = @lv_belnr
  19.       AND buzei = '001'
  20.     INTO @ls_bsad.
  21.   IF sy-subrc = 0.
  22.     IF ls_bsad-augbl = lv_belnr AND ls_bsad-augdt+0(4) = lv_gjahr.
  23.       CLEAR:lv_belnr,lv_gjahr.
  24.     ELSE.
  25.       WRITE:/ ls_bsad-augdt+0(4),ls_bsad-augbl.

  26.       lv_gjahr = ls_bsad-augdt+0(4).
  27.       lv_belnr = ls_bsad-augbl.
  28.     ENDIF.
  29.   ELSE.
  30.     EXIT.
  31.   ENDIF.
  32. ENDDO.
复制代码

2、清账凭证倒序打印输出
  1. PARAMETERS:p_bukrs TYPE bkpf-bukrs DEFAULT '3100',
  2.            p_belnr TYPE bkpf-belnr,
  3.            p_gjahr TYPE bkpf-gjahr.

  4. DATA:BEGIN OF lt_out OCCURS 0,
  5.        gjahr_belnr TYPE char20,
  6.      END OF lt_out.

  7. DATA:lv_gjahr TYPE bseg-gjahr.
  8. DATA:lv_belnr TYPE bseg-belnr.
  9. DATA:ls_bsad  TYPE bsad.
  10. DATA:lv_string TYPE string.

  11. lv_gjahr = p_gjahr.
  12. lv_belnr = p_belnr.

  13. DO.
  14.   IF lv_belnr IS INITIAL.
  15.     EXIT.
  16.   ENDIF.

  17.   CLEAR:ls_bsad.
  18.   SELECT SINGLE *
  19.     FROM bsad
  20.     WHERE bukrs = @p_bukrs
  21.       AND gjahr = @lv_gjahr
  22.       AND belnr = @lv_belnr
  23.       AND buzei = '001'
  24.     INTO @ls_bsad.
  25.   IF sy-subrc = 0.
  26.     IF ls_bsad-augbl = lv_belnr AND ls_bsad-augdt+0(4) = lv_gjahr.
  27.       CLEAR:lv_belnr,lv_gjahr.
  28.     ELSE.
  29.       CLEAR:lt_out.
  30.       lt_out-gjahr_belnr = ls_bsad-augdt+0(4) && '/' && ls_bsad-augbl.
  31.       APPEND lt_out.

  32.       lv_gjahr = ls_bsad-augdt+0(4).
  33.       lv_belnr = ls_bsad-augbl.
  34.     ENDIF.
  35.   ELSE.
  36.     EXIT.
  37.   ENDIF.

  38. ENDDO.

  39. IF lt_out[] IS NOT INITIAL.
  40.   SORT lt_out BY gjahr_belnr DESCENDING.
  41.   LOOP AT lt_out.
  42.     IF lv_string IS INITIAL.
  43.       lv_string = lt_out-gjahr_belnr.
  44.     ELSE.
  45.       lv_string = lv_string && ',' && lt_out-gjahr_belnr.
  46.     ENDIF.
  47.   ENDLOOP.
  48.   WRITE:/ lv_string.
  49. ENDIF.

  50. *IF LT_OUT[] IS NOT INITIAL.
  51. *SORT LT_OUT BY gjahr_belnr DESCENDING.
  52. *LOOP AT LT_OUT.
  53. *  WRITE:/ LT_OUT-gjahr_belnr.
  54. *ENDLOOP.
  55. *ENDIF.
复制代码
回复

使用道具 举报

秦小枫
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

快速回帖

本版积分规则
您需要登录后才可以回帖 登录 | 注册有礼

快速回复 返回顶部 返回列表