MM 获取抬头条件净价

打印 上一主题 下一主题

主题 522|帖子 522|积分 1566

SE24
IF_PURCHASE_ORDER_MM
IM_HEADER是个接口,由系统负责实例化。
其中GET_CONDITIONS是获取抬头条件TAB页数据,可是直接通过IM_HEADER调用方法,返回的是空值。
查看方法GET_CONDITIONS,根据行号获取指定的条件定价值。全部的条目在变量po_tkomv_hash_tabletkomv中,可以尝试指针指向这两个变量。
观察行上获取条件净价的方法,标准方法通过宏命令mmpur_dynamic_cast强转my_parent,直接通过l_header调用get_tkomv获取。查看l_header方法GET_TKOMV是继承自接口IF_PURCHASING_DOCUMENT。可以用如下代码获取抬头条件净价
  1.     DATA: lo_po_doc TYPE REF TO if_purchasing_document .
  2.     DATA: lt_tkomv TYPE mmpur_tkomv .
  3.     lo_po_doc ?= ir_header.
  4.     lo_po_doc->get_tkomv( IMPORTING  ex_tkomv = lt_tkomv ) .
复制代码
SAP标准代码
抬头获取条件净价
  1. METHOD if_purchase_order_mm~get_conditions .
  2.   DATA: ls_cond_entry TYPE komv,
  3.         l_kposn       TYPE komv-kposn.
  4.   CLEAR ex_conditions.
  5.   READ TABLE po_tkomv_hash_table WITH KEY kposn = l_kposn BINARY SEARCH
  6.              TRANSPORTING NO FIELDS.
  7.   IF sy-subrc IS INITIAL.
  8.     LOOP AT po_tkomv_hash_table INTO ls_cond_entry FROM sy-tabix.
  9.       IF ls_cond_entry-kposn NE l_kposn.
  10.         EXIT.
  11.       ENDIF.
  12.       APPEND ls_cond_entry TO ex_conditions.
  13.     ENDLOOP.
  14.   ELSE.
  15.     PERFORM mepo_badi_get_conditions IN PROGRAM saplmepo
  16.                                 USING    l_kposn
  17.                                 CHANGING ex_conditions.
  18.   ENDIF.
  19. ENDMETHOD.                    "IF_PURCHASE_ORDER_MM~GET_CONDITIONS
复制代码
行获取条件净价
  1. METHOD if_purchase_order_item_mm~get_conditions .
  2.   DATA: l_header      TYPE REF TO cl_po_header_handle_mm,
  3.         lt_conditions TYPE mmpur_tkomv,
  4.         ls_cond_entry LIKE LINE OF lt_conditions,
  5.         l_kposn       TYPE komv-kposn.
  6.   CLEAR ex_conditions.
  7.   mmpur_dynamic_cast l_header my_parent.
  8.   CHECK NOT l_header IS INITIAL.
  9.   CALL METHOD l_header->get_tkomv
  10.     IMPORTING
  11.       ex_tkomv = lt_conditions.
  12.   l_kposn = po_item_number.
  13.   READ TABLE lt_conditions WITH KEY kposn = l_kposn BINARY SEARCH
  14.              TRANSPORTING NO FIELDS.
  15.   IF sy-subrc IS INITIAL.
  16.     LOOP AT lt_conditions INTO ls_cond_entry FROM sy-tabix.
  17.       IF ls_cond_entry-kposn NE l_kposn.
  18.         EXIT.
  19.       ENDIF.
  20.       APPEND ls_cond_entry TO ex_conditions.
  21.     ENDLOOP.
  22.   ELSE.
  23.     PERFORM mepo_badi_get_conditions IN PROGRAM saplmepo
  24.                                     USING    l_kposn
  25.                                     CHANGING ex_conditions.
  26.   ENDIF.
  27. ENDMETHOD.
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

tsx81428

金牌会员
这个人很懒什么都没写!

标签云

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