FUNCTION zmm_fm_po_invence.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  TABLES
*"      IT_PO_ITEMS TYPE  ZMM_PO_ITEM
*"----------------------------------------------------------------------
  TYPES:BEGIN OF typ_rseg,

belnr  LIKE rseg-belnr,
          gjahr  LIKE rseg-gjahr,
          buzei  LIKE rseg-buzei,
          ebeln  LIKE rseg-ebeln,
          ebelp  LIKE rseg-ebelp,
          wrbtr  LIKE rseg-wrbtr,
          shkzg  LIKE rseg-shkzg,
          mwskz  LIKE rseg-mwskz,

lifnr  LIKE rbkp-lifnr,
          augbl  LIKE bseg-augbl,
          awkey  LIKE bseg-awkey,

status TYPE c, "发票是否已过账
        END OF typ_rseg.

TYPES:BEGIN OF typ_bseg,
          belnr LIKE bseg-belnr,
          gjahr LIKE bseg-gjahr,
          awkey LIKE bseg-awkey,
          augbl LIKE bseg-augbl,
        END OF typ_bseg.
  DATA:gt_rseg TYPE TABLE OF typ_rseg,
       gs_rseg TYPE typ_rseg.
  DATA:gt_bseg TYPE TABLE OF typ_bseg,
       gs_bseg TYPE typ_bseg.

CHECK it_po_items IS NOT INITIAL.

SELECT
    r~belnr
    r~gjahr
    r~buzei
    r~ebeln
    r~ebelp
    r~wrbtr
    r~shkzg
    r~mwskz
    rb~lifnr

INTO CORRESPONDING FIELDS OF TABLE gt_rseg
    FROM rseg AS r
    INNER JOIN rbkp AS rb
    ON r~belnr = rb~belnr AND r~gjahr = rb~gjahr

FOR ALL ENTRIES IN it_po_items
    WHERE r~ebeln = it_po_items-ebeln
    AND   r~ebelp = it_po_items-ebelp
    AND   rb~stblg = ''.

LOOP AT gt_rseg INTO gs_rseg.
    gs_rseg-awkey = gs_rseg-belnr && gs_rseg-gjahr.
    CONDENSE gs_rseg-awkey NO-GAPS.
    MODIFY gt_rseg FROM gs_rseg TRANSPORTING awkey.

ENDLOOP.

SELECT
    belnr
    gjahr
    awkey
    augbl

INTO CORRESPONDING FIELDS OF TABLE gt_bseg
    FROM bseg AS b
    FOR ALL ENTRIES IN gt_rseg
    WHERE b~awkey = gt_rseg-awkey
     AND  b~koart = 'K'.
  SORT gt_bseg BY awkey.
  SORT gt_rseg BY awkey.

LOOP AT gt_rseg INTO gs_rseg.
    CLEAR gs_bseg.
    READ TABLE gt_bseg INTO gs_bseg WITH KEY awkey = gs_rseg-awkey.
    IF sy-subrc EQ 0.
      gs_rseg-augbl = gs_bseg-augbl.
      gs_rseg-status = 'X'."标识发票是否过账
    ENDIF.
    IF gs_rseg-shkzg EQ 'H'.
      gs_rseg-wrbtr = gs_rseg-wrbtr * -1.
    ENDIF.
    IF gs_rseg-augbl IS NOT INITIAL.
      gs_rseg-augbl = 'X'.
    ENDIF.
    MODIFY  gt_rseg FROM gs_rseg.
  ENDLOOP.

DATA:wa_po TYPE zmm_po_item_line.
  DATA:it_po_hash TYPE HASHED TABLE OF zmm_po_item_line
                              WITH UNIQUE KEY ebeln ebelp lifnr.

LOOP AT gt_rseg INTO gs_rseg  WHERE status EQ 'X'."取出已开票过账的来统计总欠款和已清额
    wa_po-ebeln = gs_rseg-ebeln.
    wa_po-ebelp = gs_rseg-ebelp.
    wa_po-lifnr = gs_rseg-lifnr.
    wa_po-fp_sum = gs_rseg-wrbtr.

IF gs_rseg-augbl EQ 'X'.
      wa_po-fp_yq = gs_rseg-wrbtr.
    ENDIF.

COLLECT wa_po INTO it_po_hash.
    CLEAR wa_po.
  ENDLOOP.

CLEAR it_po_items.
  it_po_items[] = it_po_hash[] .

ENDFUNCTION.

ABAP 查看采购订单行项目已开票金额和已清金额的更多相关文章

  1. ABAP-根据采购订单行项目统计供应商未清额和已清额

    1.传入和传出表结构都是一样的: FUNCTION zmm_fm_po_invence. *"------------------------------------------------ ...

  2. ME_PROCESS_PO_CUST 实现采购订单行项目增强

    用户希望创建采购订单时,输入行项目时,能根据采购订单类型,自动带出科目分类类别. 业务顾问看了一下配置,不能实现这个功能,所以用增强实现. 采购订单BADI增强:ME_PROCESS_PO_CUST. ...

  3. ABAP-复制采购订单行项目到新的行

    FUNCTION zmm_fm_copy2new. *"------------------------------------------------------------------- ...

  4. SAP 采购订单行项目中科目分配被隐藏,发现行项目设置中显示字段长度为0

    1.sm30 维护 视图 TCVIEW 修改对应字段的显示长度

  5. 如何用代码填充S/4HANA销售订单行项目的数量字段

    我的任务是用代码生成S/4HANA销售订单(Sales Order)的行项目,并且填充对应的quantity(数量)值. 最开始我用了下面的代码,把quantity的值写入item字段target_q ...

  6. C4C销售订单行项目价格维护方法

    需求很简单,能够创建销售订单,在行项目里添加产品,带出价格来,同时把总价显示在销售订单抬头区域. 如下图所示: 下面是具体配置. Business Configuration里,点击Sales Ord ...

  7. 【ABAP系列】SAP 销售订单的行项目里条件的增强

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP 销售订单的行项目里条件的 ...

  8. 【MM系列】SAP 采购订单的批量修改

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP 采购订单的批量修改   前言 ...

  9. 【MM系列】SAP MM模块-委外采购订单 把Warning转换成Error信息提示

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP MM模块-委外采购订单 把W ...

随机推荐

  1. C语言学习书籍推荐《学通C语言的24堂课》下载

    下载地址:点我 编辑推荐 <学通C语言的24堂课>:用持续激励培养良好习惯以良好习惯铸就伟大梦想——致亲爱的读者朋友在开始学习<学通C语言的24堂课>的同时,强烈建议读者朋友同 ...

  2. Java 7 源码学习系列(一)——String

    String表示字符串,Java中所有字符串的字面值都是String类的实例,例如“ABC”.字符串是常量,在定义之后不能被改变,字符串缓冲区支持可变的字符串.因为 String 对象是不可变的,所以 ...

  3. 9.18考试 第三题chess题解

    在讲这道题之前我们先明确一个丝薄出题人根本没有半点提示却坑死了无数人的注意点: 走敌人和不走敌人直接到时两种走法,但只走一个敌人和走一大坨敌人到同一个点只算一种方案(当然,前提是步骤一致). 当时看完 ...

  4. 微信小程序开发--API界面交互

    一.wx:showActionSheet(上拉菜单) 属性 类型 默认值 必填 说明 itemList Array.<string>   是 按钮的文字数组,数组长度最大为 6 itemC ...

  5. 15号作品teamfinal使用体验

    通过使用这款软件,可以轻松的查阅所处学期的任意周中某一天中的基教.一教.二教.三教和土木楼中的空教室,方便了同学去寻找空教室的方便,方便同学们上自习,节省寻找教室的时间,提供了非常大的便利. 打开界面 ...

  6. Spring 自动生成getter和setter方法 tostring方法

    添加maven依赖 <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --> <dependency& ...

  7. jquery:为动态加载的元素绑定事件

    最近在做项目的时候发现的一个问题,通过ajax动态加载出来的一个button值绑定不了点击事件.我使用的是datatables这款表单插件,表单内容是通过ajax动态渲染出来的. 解决方案: 通过Go ...

  8. Apache Httpd 启用重定向 rewrite

    1.启用模块 由:#LoadModule rewrite_module modules/mod_rewrite.so 更改为:LoadModule rewrite_module modules/mod ...

  9. kaptcha谷歌验证码工具

    Kaptcha 简介 Kaptcha 是一个可高度配置的实用验证码生成工具,可自由配置的选项如: 验证码的字体 验证码字体的大小 验证码字体的字体颜色 验证码内容的范围(数字,字母,中文汉字!) 验证 ...

  10. .net持续集成sonarqube篇之 sonarqube集成单元测试

    系列目录 通过前面章节我们可以看到,不论怎么构建,单元测试覆盖率一栏总是0% 这是因为单元测试覆盖率报告需要额外集成.这一节我们就讲解如何在sonarqube里集成单元测试覆盖率报告. 这里需要借助O ...