SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF }
.L0S31 { font-style: italic; color: #808080 }
.L0S32 { color: #3399FF }
.L0S33 { color: #4DA619 }
.L0S52 { color: #0000FF }
.L0S55 { color: #800080 }
.L0S70 { color: #808080 }

*&---------------------------------------------------------------------*
*& Report  ZTESTXIAO002
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT ZTESTXIAO002.

TABLES:EKBE,EKPO,EKKO,LFA1.

*定义ALV变量
TYPE-POOLS: SLIS.
DATA: FIELDCATALOG   TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
      GD_TAB_GROUP   TYPE SLIS_T_SP_GROUP_ALV,
      GD_LAYOUT      TYPE SLIS_LAYOUT_ALV,
      GD_REPID       LIKE SY-REPID,
      GT_EVENTS      TYPE SLIS_T_EVENT,
      GD_PRNTPARAMS  TYPE SLIS_PRINT_ALV,
      GT_SORT        TYPE SLIS_T_SORTINFO_ALV,
      GS_SORT        TYPE SLIS_SORTINFO_ALV,
      G_TITLE        TYPE LVC_TITLE.

DATA:BEGIN OF GT_OUT OCCURS 0,
  EBELN LIKE EKBE-EBELN,      "采购订单号
  WERKS LIKE EKPO-WERKS,      "工厂
  AEDAT LIKE EKPO-AEDAT,      "采购凭证日期
  MATNR LIKE EKPO-MATNR,      "物料号
  TXZ01 LIKE EKPO-TXZ01,      "物料描述
  NETPR LIKE EKPO-NETPR,      "净价
  MENGE LIKE EKPO-MENGE,     "凭证数量
  BUZEI LIKE EKBE-BUZEI,      "行项目
  VGABE LIKE EKBE-VGABE,      "业务\事件类
  BELNR LIKE EKBE-BELNR,      "凭证号
  MENGE1 LIKE EKBE-MENGE,      "数量
  BWART LIKE EKBE-BWART,      "移动类型
  BUDAT LIKE EKBE-BUDAT,      "过账日期
  HSWAE LIKE EKBE-HSWAE,      "货币
  LIFNR LIKE EKKO-LIFNR,      "供应商
  NAME1 LIKE LFA1-NAME1,      "供应商名称
  END OF GT_OUT.

DATA:BEGIN OF GT_EKBE occurs 0,

  EBELN LIKE EKBE-EBELN,      "采购订单号
  BUZEI LIKE EKBE-BUZEI,      "行项目
  VGABE LIKE EKBE-VGABE,      "业务\事件类
  BELNR LIKE EKBE-BELNR,      "凭证号
  MENGE1 LIKE EKBE-MENGE,      "数量
  BWART LIKE EKBE-BWART,      "移动类型
  BUDAT LIKE EKBE-BUDAT,      "过账日期
  HSWAE LIKE EKBE-HSWAE,      "货币
  MATNR LIKE EKPO-MATNR,      "物料号
  END OF GT_EKBE.

DATA:BEGIN OF GT_EKKO occurs 0,
  EBELN LIKE EKBE-EBELN,      "采购订单号
  WERKS LIKE EKPO-WERKS,      "工厂
  AEDAT LIKE EKPO-AEDAT,      "采购凭证日期
  MATNR LIKE EKPO-MATNR,      "物料号
  TXZ01 LIKE EKPO-TXZ01,      "物料描述
  NETPR LIKE EKPO-NETPR,      "净价
  MENGE LIKE EKPO-MENGE,      "凭证数量
  LIFNR LIKE EKKO-LIFNR,      "供应商
  BUZEI LIKE EKBE-BUZEI,      "行项目
  VGABE LIKE EKBE-VGABE,      "业务\事件类
  BELNR LIKE EKBE-BELNR,      "凭证号
  MENGE1 LIKE EKBE-MENGE,      "数量
  BWART LIKE EKBE-BWART,      "移动类型
  BUDAT LIKE EKBE-BUDAT,      "过账日期
  HSWAE LIKE EKBE-HSWAE,      "货币
*  MATNR LIKE EKPO-MATNR,      "物料号
  END OF GT_EKKO.

DATA:BEGIN OF GT_LFA1 occurs 0,
  LIFNR LIKE EKKO-LIFNR,      "供应商
  NAME1 LIKE LFA1-NAME1,      "供应商名称
  END OF GT_LFA1.

"定义选择屏幕(输入条件)
SELECTION-SCREEN BEGIN OF BLOCK BLOCK1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS:   S_EBELN for EKBE-EBELN.  "采购订单号
SELECTION-SCREEN END OF BLOCK BLOCK1.

START-OF-SELECTION.
  "取数
  PERFORM GET_DATA.
  "处理数据
  PERFORM DEAL_DATA.
  "alv显示
  PERFORM ALV_DIS.

END-OF-SELECTION.
*&---------------------------------------------------------------------*
*&      Form  GET_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM GET_DATA .

  SELECT
    EBELN
    BUZEI
    VGABE
    BELNR
    MENGE AS MENGE1
    BWART
    BUDAT
    HSWAE
    MATNR
    INTO CORRESPONDING FIELDS OF TABLE GT_EKBE
    FROM EKBE
    WHERE EBELN in S_EBELN.

  SELECT
     A~EBELN
     A~WERKS
     A~AEDAT
     A~MATNR
     A~TXZ01
     A~NETPR
     A~MENGE
     B~LIFNR
    INTO CORRESPONDING FIELDS OF TABLE GT_EKKO
    FROM EKPO AS A
    INNER JOIN EKKO AS B ON A~EBELN = B~EBELN
*    inner join ekbe as c on A~EBELN = c~EBELN
    WHERE B~EBELN in S_EBELN.

  SELECT
    LIFNR
    NAME1
    INTO CORRESPONDING FIELDS OF TABLE GT_LFA1
    FROM LFA1
    FOR ALL ENTRIES IN GT_EKKO
    WHERE LIFNR = GT_EKKO-LIFNR.

ENDFORM.                    " GET_DATA
*&---------------------------------------------------------------------*
*&      Form  DEAL_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM DEAL_DATA .  "给需要输出的字段赋值
loop at GT_EKKO.
     READ TABLE GT_EKBE WITH KEY EBELN = GT_EKKO-EBELN.
     IF SY-SUBRC <> 0.
       MOVE-CORRESPONDING GT_EKKO TO GT_out.

     READ TABLE GT_LFA1 WITH KEY LIFNR = GT_EKKO-LIFNR.
     IF SY-SUBRC = 0.
     GT_OUT-NAME1 = GT_LFA1-NAME1.
     ENDIF.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
    EXPORTING
      INPUT  = GT_OUT-MATNR
    IMPORTING
      OUTPUT = GT_OUT-MATNR.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
    EXPORTING
      INPUT  = GT_OUT-LIFNR
    IMPORTING
      OUTPUT = GT_OUT-LIFNR.
     append GT_out.
     clear      GT_EKKO.
     ENDIF.
endloop.
 LOOP AT GT_EKBE.
    MOVE-CORRESPONDING GT_EKBE TO GT_OUT.
*    GT_OUT-EBELN = GT_EKBE-EBELN.
*    GT_OUT-BUZEI = GT_EKBE-BUZEI.
*    GT_OUT-VGABE = GT_EKBE-VGABE.
*    GT_OUT-BELNR = GT_EKBE-BELNR.
*    GT_OUT-MENGE1 = GT_EKBE-MENGE1.
*    GT_OUT-BWART = GT_EKBE-BWART.
*    GT_OUT-BUDAT = GT_EKBE-BUDAT.
*    GT_OUT-HSWAE = GT_EKBE-HSWAE.

     READ TABLE GT_EKKO WITH KEY EBELN = GT_EKBE-EBELN
                                 matnr = GT_EKBE-matnr.
     IF SY-SUBRC = 0.
     GT_OUT-WERKS = GT_EKKO-WERKS.
     GT_OUT-AEDAT = GT_EKKO-AEDAT.
     GT_OUT-MATNR = GT_EKKO-MATNR.
     GT_OUT-TXZ01 = GT_EKKO-TXZ01.
     GT_OUT-NETPR = GT_EKKO-NETPR.
     GT_OUT-MENGE = GT_EKKO-MENGE.
     GT_OUT-LIFNR = GT_EKKO-LIFNR.
     ENDIF.

     READ TABLE GT_LFA1 WITH KEY LIFNR = GT_EKKO-LIFNR.
     IF SY-SUBRC = 0.
     GT_OUT-NAME1 = GT_LFA1-NAME1.
     ENDIF.

    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
    EXPORTING
      INPUT  = GT_OUT-MATNR
    IMPORTING
      OUTPUT = GT_OUT-MATNR.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
    EXPORTING
      INPUT  = GT_OUT-LIFNR
    IMPORTING
      OUTPUT = GT_OUT-LIFNR.

     APPEND GT_OUT.
     CLEAR  GT_OUT.

  ENDLOOP.

ENDFORM.                    " DEAL_DATA
*&---------------------------------------------------------------------*
*&      Form  ALV_DIS
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM ALV_DIS .

*创建字段宏定义和输出字段赋值
  PERFORM FRM_BUILD_FIELDCATALOG.

*定义输出模式
  GD_LAYOUT-NO_INPUT           = 'X'.
  GD_LAYOUT-COLWIDTH_OPTIMIZE  = 'X'.
  GD_LAYOUT-F2CODE             = '&IC1'.  "Sets fcode for when double click(press f2)
  "gd_layout-box_fieldname      = 'BOX'.
  GD_LAYOUT-CELL_MERGE         = 'X'.
  GD_LAYOUT-ZEBRA              = 'X'.

*使用ALV输出函数
  GD_REPID = SY-REPID.
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
            I_CALLBACK_PROGRAM       = GD_REPID
**用户操作的参数
*            I_CALLBACK_USER_COMMAND  = 'USER_COMMAND_4000' "自定义指向代码
*ALV输出状态的参数
            I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS_3200' "菜单
*输出模式参数
            IS_LAYOUT                = GD_LAYOUT
            IT_FIELDCAT              = FIELDCATALOG[]
            IS_PRINT                 = GD_PRNTPARAMS
            I_GRID_TITLE             = G_TITLE
            I_SAVE                   = 'X'
            "it_sort                  = gt_sort[]
       TABLES
*用于输出ALV的内表
            T_OUTTAB                 = GT_OUT
       EXCEPTIONS
*定义输出异常时的信息,配合MESSAGE语句使用
            PROGRAM_ERROR            = 1
            OTHERS                   = 2.

ENDFORM.                    " ALV_DIS
*&---------------------------------------------------------------------*
*&      Form  FRM_BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FRM_BUILD_FIELDCATALOG .

  "创建字段宏定义
  DEFINE ADD_FIELD.
    FIELDCATALOG-FIELDNAME =  &1.   "内表字段名称
    FIELDCATALOG-SELTEXT_M =  &2.    "字段输出名称
    FIELDCATALOG-NO_ZERO   =  &3.    "是否显示零
    FIELDCATALOG-JUST      =  &4.    "对齐方式
    FIELDCATALOG-EMPHASIZE =  &5.    "是否高亮
    FIELDCATALOG-CHECKBOX    = &6.  "是否带单选框
    FIELDCATALOG-EDIT      =  &7.    "可编辑
    APPEND FIELDCATALOG.
    CLEAR FIELDCATALOG.
  END-OF-DEFINITION.
*输出字段赋值
  ADD_FIELD 'EBELN'                  '采购订单号'         '' 'L' '' '' ''.
  ADD_FIELD 'WERKS'                    '工厂'         '' 'L' '' '' ''.
  ADD_FIELD 'AEDAT'                    '凭证日期'         '' 'L' '' '' ''.
  ADD_FIELD 'MATNR'                    '物料号'         '' 'L' '' '' ''.
  ADD_FIELD 'TXZ01'                    '物料描述'         '' 'L' '' '' ''.
  ADD_FIELD 'NETPR'                  '净价'         '' 'L' '' '' ''.
  ADD_FIELD 'MENGE'                  '凭证数量'         '' 'L' '' '' ''.
  ADD_FIELD 'BUZEI'                    '行项目'         '' 'L' '' '' ''.
  ADD_FIELD 'VGABE'                    '业务\事件类'         '' 'L' '' '' ''.
  ADD_FIELD 'BELNR'                    '凭证号'         '' 'L' '' '' ''.
  ADD_FIELD 'MENGE1'                  '数量'         '' 'L' '' '' ''.
  ADD_FIELD 'BWART'                  '移动类型'         '' 'L' '' '' ''.
  ADD_FIELD 'BUDAT'                  '过账日期'         '' 'L' '' '' ''.
  ADD_FIELD 'HSWAE'                  '货币'         '' 'L' '' '' ''.
  ADD_FIELD 'LIFNR'                    '供应商'         '' 'L' '' '' ''.
  ADD_FIELD 'NAME1'                    '供应商名称'         '' 'L' '' '' ''.

ENDFORM.                    " FRM_BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
*&      Form  set_pf_status_3200
*&---------------------------------------------------------------------*
*       GUI定义
*----------------------------------------------------------------------*
*      -->EXTAB      text
*----------------------------------------------------------------------*
FORM SET_PF_STATUS_3200 USING  EXTAB TYPE SLIS_T_EXTAB.
  DATA: R_UCOMM LIKE SY-UCOMM.
  SET PF-STATUS 'MYSTATUS'.
ENDFORM.

SAP采购订单历史明细报表源代码(自己收藏)的更多相关文章

  1. SAP公司间采购订单关联交货单报表源代码(自己收藏)

    SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF } ...

  2. SAP MM 有了采购订单历史的PO行项目里的采购附加费不允许再改了?

    SAP MM 有了采购订单历史的PO行项目里的采购附加费不允许再改了? 正确答案是: 不允许,这是SAP标准逻辑. 那么问题来了!今日收到业务人员报说采购订单4300013979,完成了收货和IV, ...

  3. 为什么MB51本位币金额和采购订单历史本位币金额不一样?

    翻译 为什么物料凭证的本位币金额有时和采购订单历史记录物料的本位币金额不一致? 回答: 有2个字段对应FI存放位置.物料凭证的字段(MSEG-DMBER)是存放库存账目金额.采购订单历史(EKBE-D ...

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

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

  5. 【MM系列】SAP 采购订单收货后不能修改价格的增强

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP 采购订单收货后不能修改价格的 ...

  6. SAP采购订单入库后不允许修改单价增强

    需求:在根据采购订单做了入库凭证之后,如果用户反审批采购订单去修改单价,系统提示‘已收货,不允许修改单价’. 判断流程:是否有入库凭证 如果采购订单条件按采购信息记录定价,这个价格本来就不能修改,只能 ...

  7. SAP采购订单审批记录增强

    采购订单审核函数: BAPI_PO_RELEASE 结尾加上 ENHANCEMENT ZME28_PO. "active version DATA:LS_EKKO TYPE EKKO. DA ...

  8. SAP采购订单屏幕增强

    转自<http://blog.csdn.net/heng0757/article/details/8073875> 为采购订单增加一个页标签,在其中放入客户自定义字段, 1. CMOD 增 ...

  9. SAP 采购订单收货时报错:对于采购订单xxxx无收货可能

    因为这个问题查了挺长时间,所以写在博客里记录下. 报错详细: 每个公司的配置不同,我公司遇到的这个问题原因是这里的确认控制是从信息记录带过来的,问题解决方法是,修改下确认控制的选项: 修改确认控制的后 ...

随机推荐

  1. setCapture只能作用于鼠标不可作用于键盘等其它事件

    处理的优点非常类似于流媒体的优点.分析能够立即开始,而不是等待所有的数据被处理.而且,由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中.这对于大型文档来说是个巨大的优点.事实上,应用 ...

  2. python学习笔记系列----(五)输入和输出

    这一章主要是讲述程序展示其数据的一些方法,一般都是直接按照一定的格式输出在屏幕,或者写入到文件以便以后使用.按照一定格式的输出,在python中实际就是对str的操作,主要就是介绍了formart() ...

  3. IT girl

    听着柔和的音乐,敲着自己喜欢的代码......

  4. 8139too.c网卡驱动简单分析

    从事linux C开发工作以来,工作内容主要是在应用层,对nginx和unbound等软件有些了解,也常对这2个软件进行二次开发. 对网络这块一直比较有兴趣.也很好奇网卡到底是怎么接受到报文的,以及报 ...

  5. PHP就业班心得:IP与域名以及DNS和端口号的概念

    什么是IP地址 概念:IP地址就相当于人们的身份证号码!每一个连入Internet的计算机都应该有全世界独一无二的IP地址 IP地址是使用32个bit位来保存,也就是4个字节! 为了方便记忆,采用十进 ...

  6. CentOS 7 配置静态 ip

    1. 需求场景: 在 CentOS7 上部署了一个 svn ,由于centOS7 默认是 dhcp 的,所以每过一段时间 ip 就会有变化,而 svn 要求 ip 是不能变的,不然没法同步. 网上找了 ...

  7. 【原创】在pc端集成地图功能(一)

    在pc端做人员调度功能,用到地图.看了一点高德地图API,由于手机端用的是百度地图,现在需要改用百度地图.下面把看的高德地图一点点成果记录下来: 1.在高德地图开放平台(http://lbs.amap ...

  8. Instantaneous Transference--POJ3592Tarjan缩点+搜索

    Instantaneous Transference Time Limit: 5000MS Memory Limit: 65536K Description It was long ago when ...

  9. angular源码阅读,依赖注入的原理:injector,provider,module之间的关系。

    最开始使用angular的时候,总是觉得它的依赖注入方式非常神奇. 如果你跳槽的时候对新公司说,我曾经使用过angular,那他们肯定会问你angular的依赖注入原理是什么? 这篇博客其实是angu ...

  10. HQL查询——关联和连接

    HQL查询--关联和连接 为了便于理解有关的使用关联和连接进行HQL查询,首先提供两个具有关联关系的持久化类:Person类和MyEvent类 Person类: import javax.persis ...