SAP ALV OO 选择行打印
&---------------------------------------------------------------------*
*& Report ZSDF001
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZSDF001.
INCLUDE ZSDF001_INC_001.
TABLES:VTTP,LIPS,LIKP,KNA1.
TYPES:BEGIN OF TY_HEADER,
NAME1 LIKE KNA1-NAME1,"客户名称
ORT01 LIKE KNA1-ORT01,"城市
REGIO LIKE KNA1-REGIO,"地区
STRAS LIKE KNA1-STRAS,"街道
TELF1 LIKE KUWEV-TELF1,"电话
VBELN LIKE LIKP-VBELN,"交货单号
VGBEL LIKE LIPS-VGBEL,"订单号
BLDAT LIKE LIKP-BLDAT,"日期
LNUMT LIKE T300T-LNUMT,"仓库
END OF TY_HEADER.
*单据抬头结束
*单据明细开始
TYPES:BEGIN OF TY_ITEMS,
GV_NAME LIKE KNA1-NAME1,"客户名称
GV_KUNAG LIKE LIKP-KUNAG,"客户编号(售达方)
GV_MATNR LIKE LIPS-MATNR,"物料编码
GV_ARKTX LIKE LIPS-ARKTX,"物料描述
GV_LFIMG LIKE LIPS-LFIMG,"交货数量
END OF TY_ITEMS.
*单据明细结束
DATA:fm_name TYPE rs38l_fnam.
DATA:itemsname(32) TYPE c.
DATA:headername(32) TYPE c.
DATA:GT_ITEMS TYPE TY_ITEMS OCCURS 0.
DATA:WA_ITEMS TYPE TY_ITEMS.
DATA:lt_prt_temp TYPE TY_ITEMS OCCURS 0.
*DATA:gs_tab type TY_ITEMS,
* gt_tab type TABLE OF GT_ITEMS.
DATA: alv TYPE REF TO cl_salv_table.
DATA columns TYPE REF TO cl_salv_columns_table.
DATA column TYPE REF TO cl_salv_column_table.
data lr_selections TYPE REF TO cl_salv_selections.
START-OF-SELECTION.
SELECT-OPTIONS: P_TKNUM FOR VTTP-TKNUM OBLIGATORY.
PERFORM FRM_GET_DATA.
PERFORM INITIALIZE_ALV.
alv->display( ).
*PERFORM Z_ALV_PRINT.
*PERFORM FRM_PRINT_DATA.
END-OF-SELECTION.
FORM FRM_GET_DATA.
SELECT k~NAME1 L1~KUNAG L2~MATNR L2~ARKTX L2~LFIMG
FROM VTTP AS V
INNER JOIN LIKP AS L1
ON V~VBELN = L1~VBELN
INNER JOIN KNA1 AS K
ON L1~KUNAG = K~KUNNR
INNER JOIN LIPS AS L2
ON L2~VBELN = L1~VBELN
INTO (WA_ITEMS-GV_NAME,WA_ITEMS-GV_KUNAG,WA_ITEMS-GV_MATNR,WA_ITEMS-GV_ARKTX,
WA_ITEMS-GV_LFIMG)
WHERE V~TKNUM IN P_TKNUM .
APPEND WA_ITEMS TO GT_ITEMS.
SORT GT_ITEMS BY GV_KUNAG.
CLEAR WA_ITEMS.
ENDSELECT.
ENDFORM.
CLASS lcl_handle_events DEFINITION.
PUBLIC SECTION.
CLASS-METHODS: on_user_command FOR EVENT added_function OF cl_salv_events_table
IMPORTING e_salv_function,
on_before_salv_function FOR EVENT before_salv_function OF cl_salv_events_table
IMPORTING e_salv_function,
on_after_salv_function FOR EVENT after_salv_function OF cl_salv_events_table
IMPORTING e_salv_function.
PRIVATE SECTION.
CLASS-DATA: g_string TYPE string.
ENDCLASS. "lcl_handle_events DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_handle_events IMPLEMENTATION
*----------------------------------------------------------------------*
* 事件操作类(实现)
*----------------------------------------------------------------------*
CLASS lcl_handle_events IMPLEMENTATION.
*单击新增功能按钮事件处理方法
METHOD on_user_command.
DATA:lines TYPE i .
DATA:MODCOUNT TYPE i VALUE 3."一页显示几行
DATA:COUNT TYPE i.
CASE e_salv_function.
WHEN '&PRINT'.
PERFORM SEL_CHECK.
DESCRIBE TABLE lt_prt_temp LINES lines.
COUNT = lines mod MODCOUNT .
COUNT = MODCOUNT - COUNT.
DO COUNT TIMES.
APPEND WA_ITEMS TO lt_prt_temp.
ENDDO.
PERFORM FRM_PRINT_DATA.
CLEAR lt_prt_temp.
WHEN '&BACK'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMETHOD. "on_user_command
*触发事件之前
METHOD on_before_salv_function.
CONCATENATE 'Before Function '
e_salv_function
INTO g_string SEPARATED BY space.
MESSAGE i000(0k) WITH g_string.
ENDMETHOD. "on_before_salv_function
*触发事件之后
METHOD on_after_salv_function.
CONCATENATE 'After Function '
e_salv_function
INTO g_string SEPARATED BY space.
MESSAGE i000(0k) WITH g_string.
ENDMETHOD. "on_after_salv_function
ENDCLASS. "lcl_handle_events IMPLEMENTATION
FORM INITIALIZE_ALV .
DATA message TYPE REF TO cx_salv_msg.
data lr_events TYPE REF TO cl_salv_events_table.
TRY.
cl_salv_table=>factory(
IMPORTING
r_salv_table = alv
CHANGING
t_table = GT_ITEMS ).
"设置GUI Status
alv->set_screen_status(
report = sy-repid
pfstatus = 'STANDARD'
set_functions = alv->c_functions_all
).
"注册事件
lr_events = alv->get_event( ).
SET HANDLER lcl_handle_events=>on_user_command FOR lr_events.
SET HANDLER lcl_handle_events=>on_before_salv_function FOR lr_events.
SET HANDLER lcl_handle_events=>on_after_salv_function FOR lr_events.
* alv->set_screen_status( pfstatus = 'ALV_STANDARD'
* report = lv_repid
* set_functions = alv->c_functions_all ).
*
* PERFORM enalbe_layout_settings. "设置样式
* PERFORM optimize_column_width."设置行宽度
* PERFORM hide_client_column.
* PERFORM set_departure_country_column. "设置列的一些属性
PERFORM set_toolbar. "设置工具栏
PERFORM display_settings. "设置显示
* PERFORM set_aggregations. "设置合计
PERFORM set_select_mode. "设置选择模式
CATCH cx_salv_msg INTO message.
ENDTRY.
ENDFORM. " INITIALIZE_ALV
FORM SET_TOOLBAR .
DATA functions TYPE REF TO cl_salv_functions_list.
functions = alv->get_functions( ).
functions->set_all('X').
ENDFORM.
FORM DISPLAY_SETTINGS .
data lr_display type ref to cl_salv_display_settings.
lr_display
= alv->get_display_settings( ).
lr_display
->set_list_header('领料单列表').
ENDFORM. " DISPLAY_SETTINGS
FORM SET_SELECT_MODE .
lr_selections
= alv->get_selections( ).
"设置选择模式
lr_selections
->set_selection_mode( if_salv_c_selection_mode=>row_column ).
ENDFORM. " SET_SELECT_MODE
FORM SEL_CHECK .
Data: gi_select_rows type salv_t_row.
data lw_row LIKE LINE OF gi_select_rows.
data l_lines type i.
data:wa_prt_temp type TY_ITEMS.
* lt_prt_temp type table of TY_ITEMS.
lr_selections
= alv->get_selections( ).
gi_select_rows
= lr_selections->get_selected_rows( ).
* call method alv->get_selected_rows
* importing
* et_index_rows = gi_index_rows.
DESCRIBE TABLE gi_select_rows lines l_lines.
IF l_lines = 0.
CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'
EXPORTING
textline1
= 'You must choose a valid line'.
EXIT.
ENDIF.
LOOP AT gi_select_rows into lw_row.
READ TABLE GT_ITEMS INDEX lw_row INTO wa_prt_temp.
append wa_prt_temp to lt_prt_temp.
ENDLOOP.
clear wa_prt_temp.
ENDFORM. " SEL_CHECK
FORM FRM_PRINT_DATA.
call function 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname
= 'ZSDSF001'
IMPORTING
fm_name
= fm_name
EXCEPTIONS
no_form
= 1
no_function_module
= 2
OTHERS = 3.
CONCATENATE 'ZDDITEMMM' SY-UZEIT INTO itemsname.
*CONCATENATE 'ZDDHEADER' SY-UZEIT INTO headername.
savebuffer lt_prt_temp itemsname
.
* savebuffer GT_HEADER headername.
*调用 smartForms
call function fm_name
EXPORTING
PTR_ITEMS
= itemsname
* PTR_HEADER = headername
EXCEPTIONS
formatting_error
= 1
internal_error
= 2
send_error
= 3
user_canceled
= 4.
clearbuffer itemsname
.
clearbuffer headername
.
ENDFORM.
SAP ALV OO 选择行打印的更多相关文章
- 【ABAP系列】SAP ALV 导出报表数据 始终使用选定的格式”,一旦勾上,就再也不会弹出选择框了。
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ALV 导出报表数据 始 ...
- SAP ALV内嵌(In-place)Excel的问与答
1.问题:点击ALV工具栏的"Excel"图标后,出现空白的内嵌Excel界面,无法正常显示报表数据.可按以下思路解决:(1)检查Excel中的宏安全设置选项.访问方法:启动Exc ...
- DataGridView中添加CheckBox列用于选择行
DataGridView中添加CheckBox列用于选择行 1,编辑DataGridView,添加一列 CheckBox ,Name 赋值为 "select",如下图: 2,取消 ...
- [King.yue]Ext中Grid得到选择行数据的方法总结
(1)grid.getStore().getRange(0,store.getCount()); //得到grid所有的行 (2)grid.getSelectionModel().getSele ...
- jquery easyui datagrid 获取Checked选择行(勾选行)数据
原文:jquery easyui datagrid 获取Checked选择行(勾选行)数据 getSelected:取得第一个选中行数据,如果没有选中行,则返回 null,否则返回记录. getSel ...
- ExtJS如何取得GridPanel当前选择行数据对象 - nuccch的专栏 - 博客频道 - CSDN.NET
body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...
- Ubuntu使用命令行打印文件
Ubuntu使用命令行打印文件 正文 环境: Ubuntu 16.04.3 LTS HP Deskjet InkAdvantage 4648 准备步骤 安装Common UNIX Printing S ...
- python – 基于pandas中的列中的值从DataFrame中选择行
如何从基于pandas中某些列的值的DataFrame中选择行?在SQL中我将使用: select * from table where colume_name = some_value. 我试图看看 ...
- Dev GridControl 选择行及绑定/获取List对象
GridControl绑定List对象一般是为了获取焦点行时直接获得该行代表的List对象,或者为了实现嵌套表格,对第一中情况,起始不用绑定List,绑定DataTable也可以实现获取对应List对 ...
随机推荐
- WAMP启动失败简单解决方法
一般情况下,直接选择安装,突然出现问题了:提示:msvcp110.dll或msvcr110.dll问题, 那么你直接复制这个来百度就行. 在百度会提示让你一键安装并且修复的. 或者你可能会看网上其他教 ...
- mock.js-无需等待,让前端独立于后端进行开发
概述 首先啦,我不认识mock.js的作者,带着需求找到mock.js让我觉得很惊艳. 相对于其他同类的框架的实现,mock.js超出了我的意料. 基于 数据模板 生成模拟数据. 基于 HTML模板 ...
- php:获取浏览器的版本信息
//分析返回用户网页浏览器名称,返回的数组第一个为浏览器名称,第二个是版本号. function getBrowser() { $sys = $_SERVER['HTTP_USER_AGE ...
- Linux之匹配符
shell常见通配符: 字符 含义 实例 * 匹配 0 或多个字符 a*b a与b之间可以有任意长度的任意字符, 也可以一个也没有, 如aabcb, axyzb, a012b, ab. ? 匹配任意 ...
- hiho #1114 : 小Hi小Ho的惊天大作战:扫雷·一
#1114 : 小Hi小Ho的惊天大作战:扫雷·一 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 故事背景:密室.监视器与充满危机的广场 “我们还是循序渐进,先来考虑这 ...
- 多通道(Multichannel)单通道(singlechannel)图像概念梳理
在做机器视觉时,常常要将一个多通道图像分离成几个单通道图像或者将几个单通道图像合成一个多通道图像,以方便图像处理,但是.写这篇博客,是为加深对这两个概念的理解,下面会给出部分OpenCV对单通道与多通 ...
- Sound Generator 原理
Sound Generator 原理 旨在简单的阐述声音如何通过单片机模块来产生. 声音 声音的种类有千千万,但归根到底还是属于波.在对声音进行模拟转数字的时候,采样越高, 声音被还原的越逼真. 声音 ...
- dropify插件的字符串
1.可以拖拽图片进行上传. 2.使用起来方便. 3.不能进行视频与其他文件的上传,只能上传图片. 4.其余都像普通<input type="file">. 5.在dro ...
- 转: Annovar 软件注释流程介绍
第一步:下载Annovar 上Annovar官网下载(http://annovar.openbioinformatics.org/en/latest/user-guide/download/),现在要 ...
- HTTP协议概念篇
1.概念 协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器. ...