SAP采购订单历史明细报表源代码(自己收藏)
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采购订单历史明细报表源代码(自己收藏)的更多相关文章
- SAP公司间采购订单关联交货单报表源代码(自己收藏)
SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF } ...
- SAP MM 有了采购订单历史的PO行项目里的采购附加费不允许再改了?
SAP MM 有了采购订单历史的PO行项目里的采购附加费不允许再改了? 正确答案是: 不允许,这是SAP标准逻辑. 那么问题来了!今日收到业务人员报说采购订单4300013979,完成了收货和IV, ...
- 为什么MB51本位币金额和采购订单历史本位币金额不一样?
翻译 为什么物料凭证的本位币金额有时和采购订单历史记录物料的本位币金额不一致? 回答: 有2个字段对应FI存放位置.物料凭证的字段(MSEG-DMBER)是存放库存账目金额.采购订单历史(EKBE-D ...
- 【MM系列】SAP 采购订单的批量修改
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP 采购订单的批量修改 前言 ...
- 【MM系列】SAP 采购订单收货后不能修改价格的增强
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP 采购订单收货后不能修改价格的 ...
- SAP采购订单入库后不允许修改单价增强
需求:在根据采购订单做了入库凭证之后,如果用户反审批采购订单去修改单价,系统提示‘已收货,不允许修改单价’. 判断流程:是否有入库凭证 如果采购订单条件按采购信息记录定价,这个价格本来就不能修改,只能 ...
- SAP采购订单审批记录增强
采购订单审核函数: BAPI_PO_RELEASE 结尾加上 ENHANCEMENT ZME28_PO. "active version DATA:LS_EKKO TYPE EKKO. DA ...
- SAP采购订单屏幕增强
转自<http://blog.csdn.net/heng0757/article/details/8073875> 为采购订单增加一个页标签,在其中放入客户自定义字段, 1. CMOD 增 ...
- SAP 采购订单收货时报错:对于采购订单xxxx无收货可能
因为这个问题查了挺长时间,所以写在博客里记录下. 报错详细: 每个公司的配置不同,我公司遇到的这个问题原因是这里的确认控制是从信息记录带过来的,问题解决方法是,修改下确认控制的选项: 修改确认控制的后 ...
随机推荐
- Python字符串格式化
一.使用格式化符来格式化字符串: Python支持的所有格式化符 格式化符 意义 'd' 返回要格式化对象的十进制表示,如果可以 'i' 返回要格式化对象的十进制表示,如果可以 'o' 返回要格式化对 ...
- PopupWindowAction breaking MEF import?
If you use Prism InteractionRequest.PopupWindowAction feature, you might have found the MEF Import a ...
- C++11基于范围的for循环
C++11包含一种新的 for 循环,称为基于范围的 for 循环,可以简化对数组元素的遍历.格式如下: for(Type VarName : Array){ //每个元素的值会依次赋给 VarNam ...
- win下命令行替代品Cmder
Cmder简单使用小结 Cmder是一款Windows环境下非常简洁美观易用的cmd替代者,它支持了大部分的Linux命令. 从官网下载下来一个zip安装包,解压之后运行根目录的Cmder.exe即可 ...
- cocopods 安装与使用
iOS 最新版 CocoaPods 的安装流程 1.移除现有Ruby默认源 $gem sources --remove https://rubygems.org/ 2.使用新的源 $gem sourc ...
- JavaScript,复习总结
ECMA(European Computer Manufacturers Association)欧洲计算机制造商协会.其制定很多标准:C#语言规范:C++/CLI语言规范:Eiffel语言:CD-R ...
- USB驱动开发大全【转】
本文转载自:http://www.360doc.com/content/12/0504/19/8363527_208666082.shtml 编写USB驱动程序步骤:1所有usb驱动都必须创建主要结构 ...
- xcopy /r /y "$(TargetPath)" "$(ProjectDir)"..\CMSAdmin\DLL\
作用:1.所有都生成这里容易管理 2.tfs获取的时候不会有出问题 3.如果都是引用项目 会存在先后顺序 也会导致生成代码的时候出问题
- javascript中怎样区分元素和节点?
1.所谓元素,即html文档里面,所有的标签都可以称之为元素,比如说<p>.<tr>等,也就是说元素是个统称,一个文档里面有很多的元素.2.所谓节点,是js为了对html文档进 ...
- Bar codes in NetSuite Saved Searches(transport/reprint)
THIS IS A COPY FROM BLOG Ways of incorporating Bar Codes into your Netsuite Saved Searches. Code ...