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. 227 Entering Passive Mode (xxx,xxx,,xxx,xxx,x)

    登录ftp时显示227 Entering Passive Mode (xxx,xxx,,xxx,xxx,x) 因为FTP有两种工作模式,PORT方式和PASV方式,中文意思为主动式和被动式 ,详细介绍 ...

  2. jQuery队列操作

    jQuery.queue 1."fx"是什么? 队列动画的默认名称 队列的名字为type + "queue",默认是"fxqueue" 2. ...

  3. ArcGIS10.1 发布气温插值GP服务

    首先通过ModelBuilder 工具 构建模型 然后通过模块右键 设置输入参数 或者直接将一个模块设为输入参数 在输出模块的右键属性上 可以设置lyr文件用于渲染 设置数据添加到显示用于不是发布的时 ...

  4. kthread_run【转】

    转自:http://blog.csdn.net/zhangxuechao_/article/details/50876397 头文件 include/linux/kthread.h 创建并启动 /** ...

  5. ajax动态添加的li不能绑定click事件

    单纯的给li标签添加click事件,是不会执行的. 经过试验 <ul id="searchedUser"><li>搜索结果</li></u ...

  6. ASP.net如何保证EF操作类线程内唯一

    说到线程内唯一,肯定会想到单例模式,但是如果多用户访问网站就会出现问题.ASP.net中有两种方法可以保证EF操作类线程内唯一(目前只会这两种,以后有好的方法再添加): 1.httpcontext(实 ...

  7. Android Paint的属性

    在Paint中有很多的属性可以设置,比如可以设置阴影,颜色过滤等等,这些会产生不同的奇妙效果,今天就对各种属性探索一下. 方法一: 1 //设置绘制的颜色,a代表透明度,r,g,b代表颜色值. 2 s ...

  8. 第1章 Sass简介

    什么是 CSS 预处理器? 定义: CSS 预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为 CSS 增加了一些编程的特性,将 CSS 作为目标生成文件,然后开发者就只要使用这种语言 ...

  9. [转]RAID基础,RAID10与RAID01比较,RAID10与RAID5比较

    原文:http://blog.itpub.net/787018/viewspace-666280/ 文档内容3部分:1.基本的RAID级别介绍2.RAID10和RAID01的比较3.RAID10和RA ...

  10. java递归应用

    /** * 分配人员数据 * @param num 数据条数 * @param taskUs 人员数据 * @param isend 标记第一次循环 */private void distTaskNu ...