************************************************************************
* Trables 标准表
************************************************************************
TABLES: ekko,ekpo.
************************************************************************
* Business Data Define
************************************************************************
DATA:BEGIN OF gs_list ,
bukrs LIKE ekko-bukrs, "公司代码
werks LIKE ekpo-werks, "工厂
lifnr LIKE ekko-lifnr, "供应商
bsart LIKE ekko-bsart, "采购订单类型
ekorg LIKE ekko-ekorg, "采购组织
ekgrp LIKE ekko-ekgrp, "采购组
waers LIKE ekko-waers, "币别
ebeln LIKE ekpo-ebeln, "采购订单号
ebelp LIKE ekpo-ebelp, "采购项次
matnr LIKE ekpo-matnr, "物料号
lgort LIKE ekpo-lgort, "库存地点
menge LIKE ekpo-menge, "采购数量
netpr LIKE ekpo-netpr, "采购单价
END OF gs_list.
DATA gt_list LIKE STANDARD TABLE OF gs_list.
1.3定义ALV变量
************************************************************************
* ALV Define 定义ALV变量
************************************************************************
TYPE-POOLS:slis."制定alv类型组
DATA:
gt_fieldcat TYPE slis_t_fieldcat_alv, "用于定义ALV列字段相关类型数据,是表字段的整体
gs_layout TYPE slis_layout_alv. "用于定义布局类型数据对象
SELECTION-SCREEN:BEGIN OF BLOCK b1……SELECTION-SCREEN:END OF BLOCK b1.用来定义屏幕框架,即格式化选择屏幕
WITH FRAME TITLE text-s01:屏幕块名或者是说明(这里定义的是“选择条件”如图14所示)
PARAMETERS:设置单一的选择框,即为变量定义输入字段
SELECT-OPTIONS:设置一定范围,为选择标准定义 输入字段
************************************************************************
* SELECTION-SELECTION 定义选择屏幕输入条件
************************************************************************
SELECTION-SCREEN:BEGIN OF BLOCK b1 WITH FRAME TITLE text-s01.
PARAMETERS: pa_werks LIKE ekpo-werks OBLIGATORY MEMORY ID wer . "工厂
SELECT-OPTIONS: so_lifnr FOR ekko-lifnr , "供应商
so_matnr FOR ekpo-matnr. "物料
SELECTION-SCREEN:END OF BLOCK b1.
FORM frm_get_data.
SELECT
ekko~bukrs ekpo~werks ekko~lifnr ekko~bsart ekko~ekorg
ekko~ekgrp ekko~waers ekpo~ebeln ekpo~ebelp ekpo~matnr
ekpo~lgort ekpo~menge ekpo~netpr
INTO CORRESPONDING FIELDS OF TABLE gt_list
FROM ekko JOIN ekpo
ON ekko~ebeln = ekpo~ebeln
WHERE werks = pa_werks AND
lifnr IN so_lifnr AND
matnr IN so_matnr.
IF sy-subrc NE 0. " 判断ALV 是否有数据 NE 是 等于
"无数据
g_data_found = ''.
MESSAGE S001 DISPLAY LIKE 'E'.
LEAVE LIST-PROCESSING.
RETURN.
ELSE.
g_data_found = 'X'.
ENDIF.
*&---------------------------------------------------------------------*
*& Report ZMMZRPOLIST_B1
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
INCLUDE ZMMZRPOLIST_B1_top. "全局数据
INCLUDE ZMMZRPOLIST_B1_e01. "事件
INCLUDE ZMMZRPOLIST_B1_f01. "子例程
*&---------------------------------------------------------------------*
*& 包括 ZMMZRPOLIST_B1_TOP
*&---------------------------------------------------------------------*
REPORT zmmzrpolist_b1
MESSAGE-ID ZMMZRPOLIST_B1_MES.
************************************************************************
* Trables
************************************************************************
TABLES: ekko,ekpo.
************************************************************************
* Business Data Define
************************************************************************
DATA:BEGIN OF gs_list ,
bukrs LIKE ekko-bukrs, "公司代码
werks LIKE ekpo-werks, "工厂
lifnr LIKE ekko-lifnr, "供应商
bsart LIKE ekko-bsart, "采购订单类型
ekorg LIKE ekko-ekorg, "采购组织
ekgrp LIKE ekko-ekgrp, "采购组
waers LIKE ekko-waers, "币别
ebeln LIKE ekpo-ebeln, "采购订单号
ebelp LIKE ekpo-ebelp, "采购项次
matnr LIKE ekpo-matnr, "物料号
lgort LIKE ekpo-lgort, "库存地点
menge LIKE ekpo-menge, "采购数量
netpr LIKE ekpo-netpr, "采购单价
END OF gs_list.
DATA gt_list LIKE STANDARD TABLE OF gs_list.
DATA: g_data_found TYPE c. "用来判断是否ALV中有数据的变量,可以不设置此变量直接判断
************************************************************************
* ALV Define 定义ALV变量
************************************************************************
TYPE-POOLS:slis."制定alv类型组
DATA:
gt_fieldcat TYPE slis_t_fieldcat_alv, "用于定义ALV列字段相关类型数据,是表字段的整体
gs_layout TYPE slis_layout_alv. "用于定义布局类型数据对象
************************************************************************
* SELECTION-SELECTION 定义选择屏幕输入条件
************************************************************************
SELECTION-SCREEN:BEGIN OF BLOCK b1 WITH FRAME TITLE text-s01.
PARAMETERS: pa_werks LIKE ekpo-werks OBLIGATORY MEMORY ID wer . "工厂
SELECT-OPTIONS: so_lifnr FOR ekko-lifnr , "供应商
so_matnr FOR ekpo-matnr. "物料
SELECTION-SCREEN:END OF BLOCK b1.