REUSEALVGRIDDISPLAYLVC超详细讲解Word文档下载推荐.docx
- 文档编号:19143437
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:24
- 大小:177.24KB
REUSEALVGRIDDISPLAYLVC超详细讲解Word文档下载推荐.docx
《REUSEALVGRIDDISPLAYLVC超详细讲解Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《REUSEALVGRIDDISPLAYLVC超详细讲解Word文档下载推荐.docx(24页珍藏版)》请在冰豆网上搜索。
m_buffer
1.4.3.准备好所需数据,如登录用户的描述、制表日期等
得到登录用户的描述
SELECT
SINGLE
adrp~name_first
adrp~name_last
INTO
(name_first,name_last)
FROM
adrp
INNER
JOIN
usr21
ON
adrp~persnumber
usr21~persnumber
WHERE
usr21~bname
sy-uname
IF
sy-subrc
0
CONCATENATE
ELSE
ENDIF.
CLEAR
拼接制表日期
sy-datum+0(4)
.'
sy-datum+4
(2)
sy-datum+6
(2)
1.4.4.将表头数据输出
开始输出表头标题
<
HTML>
CENTER>
H1>
ALV测试<
/H1>
/CENTER>
/HTML>
CALL
METHOD
p_cl_dd->
html_insert
EXPORTING
contents
m_buffer
CHANGING
position
m_p.
输出制表人和制表日期
P
ALIGN
CENTER
>
出表人:
l_name'
出表日期:
现将需要显示的表头数据放到变量“M_BUFFER”中,然后调用方法“P_CL_DD->
HEML_INSERT”将数据插入到HTML页面中显示,至此显示表头数据完成;
2.函数“REUSE_ALV_GRID_DISPLAY_LVC”中输入参数的应用
2.1.排序
排序之前,如果同一列有相同的数据,则排好序以后,在该列会自动将相同的数据合并为一行显示,不再出现多行重复的情况(但是若该ALV中有字段设置了“可编辑”,合并这一现象会失效),步骤如下:
2.1.1.在显示ALV的子FORM里定义排序用到的变量
定义排序变量
wa_sort_lvc
lvc_s_sort
struture
it_sort_lvc
lvc_t_sort
.table
2.1.2.设置好需要排序的字段
设置排序参数
wa_sort_lvc-spos
1
.
排序顺序
wa_sort_lvc-fieldname
CITYFROM'
排序字段
wa_sort_lvc-up
X'
升序
APPEND
2
CITYTO'
2.1.3.在显示ALV的函数的输入参数里添加排序的属性
it_sort_lvc
2.2.隐藏不必要的标准按钮
2.2.1.先在显示ALV的子FORM里定义隐藏按钮用到的变量
定义隐藏标准按钮的变量
wa_excluding
slis_t_extab
it_excluding
slis_extab
2.2.2.得到需要隐藏的标准按钮的“FCODE”
首先用事务码“SE24”进入SAP的“类别制作器”,在“Objecttype”后面输入ALV的类“CL_GUI_ALV_GRID”,点击“Display”进入显示界面,点击“Attributes”选项卡,找到自己需要的“属性”和“初始值”,这个初始值就是我们要找的标准按钮的“FCODE”(注意:
每一个标准按钮代表的FCODE是靠经验积累而掌握的);
1>
、设将需要隐藏的标准按钮的“FCODE”添加到内表IT_EXCLUDING中,代码如下:
设置要隐藏的按钮的“FCODE”
wa_excluding-fcode
&
ABC'
2>
、在显示ALV的函数的输入参数里添加隐藏按钮的属性参数:
it_excluding
1、ALV标题,定义标题变量并赋值,然后在显示ALV的函数的输入参数里添加“小标题”的参数,代码如下:
小标题
i_grid_title
lvc_title
小标题'
**********************************
i_grid_title
i_grid_title
2.3.自定义“工具栏”
2.3.1.在显示ALV的函数的输入参数里指定自定义按钮的子FORM
i_callback_pf_status_set
F_SET_STATUS'
当然该子FORM和产生表头的子FORM一样,也不显式的调用,代码如下:
f_set_status
p_extab
SET
PF-STATUS
Z_ALV_STATUS'
ENDFORM.
f_set_status
双击其中的“Z_ALV_STATUS”,进入创建工具栏的界面,输入名字后进入最终的界面在界面右侧,
点击“应用工具条”后面的展开符号,在“项目”后面的白色方框内输入“自定义按钮”的代码后回车,选择静态文本回车,在“函数文本”后面输入想要显示的按钮的名称,在“图标名称”后面选择相应的图标(可选),回车在这一界面选择一个“快捷键”(必填)后回车,这样一个自定义按钮就做好了,也可以修改,记住刚刚创建的按钮的代码,在下面的捕捉用户的动作的自FORM(F_USER_COMMAND)会根据刚才的代码来进行相应的操作;
1、点开“功能键”后面的展开符号,进入功能键的设置,下图是各个动作对应的代码:
2、没有自定义按钮时候,函数里的“i_callback_pf_status_set
”这个参数可以不要,这时会显示ALV标准的按钮,当然这些按钮可以部分隐藏(见三、2);
3、当我们使用自定义按钮后,ALV自带的标准按钮,就会失效,这时我们需要将一些用户要求我们必须显示的按钮一一地在“应用工具条”后面补上,如下图:
其中“分隔符”的插入方法为:
在需要插入分隔符的方框内选择菜单“Edit”→“Insert”→“Separatorline”即可插入分隔符;
下面是上图中的标准工具的名称、代码、图标名称、快捷键
名称
代码
图标名称
快捷键
刷新
REFRESH
ICON_REFRESH
F8(可随便更改)
导出为EXCEL表格
EXCEL
无
Shift-F8(可随便更改)
ABC分析
ABC
ICON_ABC
Ctrl-F1
按升序排列
OUP
ICON_SORT_UP
Ctrl-F4
设置过滤器
ILT
ICON_FILTER
Ctrl-F5
总计
UMC
ICON_SUM
Ctrl-F6
邮件查收件
%SL
ICON_MAIL
Ctrl-F7
更改布局…
OL0
ICON_ALV_VARIANTS
Ctrl-F8
选择布局…
OAD
ICON_ALV_VARIANT_CHOOSE
Ctrl-F9
保存布局…
AVE
ICON_ALV_VARIANT_SAVE
Ctrl-F10
信息
INFO
ICON_INFORMATION
Ctrl-F12
明细
ETA
ICON_SELECT_DETAIL
Ctrl-Shift-F3
按降序排列
ODN
ICON_SORT_DOWN
Ctrl-Shift-F4
删除过滤器
ILD
ICON_FILTER_UNDO
Ctrl-Shift-F5
小计…
SUM
ICON_INTERMEDIATE_SUM
Ctrl-Shift-F6
Microsof
VEXCEL
ICON_XLS
Ctrl-Shift-F7
字处理
AQW
ICON_WORD_PROCESSING
Ctrl-Shift-F8
本地文件
%PC
ICON_EXPORT
Ctrl-Shift-F9
打印预览
RNT_PREV
ICON_LAYOUT_CONTROL
Ctrl-Shift-F10
图形
GRAPH
ICON_GRAPHICS
Ctrl-Shift-F11
上表中红色的属于自定义按钮,自定义按钮可以使用标准的图标名称,也可以不适用图标;
3.热点链接、用户动作的捕捉、调用其他程序或标准事务程序
3.1.在显示ALV的函数的输入参数里指定捕捉用户动作的子FORM
f_user_command
p_ucomm
sy-ucomm
p_rs_selfield
slis_selfield
当然该子FORM和产生表头的子FORM一样,也不显式的调用;
3.2.在“字段和列名”的子FORM(F_FIELDS)里,对需要链接的列添加“热点”属性
v_pos
+
wa_fieldcat-col_pos
wa_fieldcat-fieldname
wa_fieldcat-scrtext_l
起飞城市'
wa_fieldcat-fix_column
wa_fieldcat-hotspot
热点,链接用
wa_fieldcat
i_fieldcat
这样在显式界面上“起飞城市”所代表的字段“CITYFROM”的下面就会出现一条下划线,同时当鼠标移动到该列时,就会变成“等待”的手势,当用户单击每一条时,就会触动子FORM(F_USER_COMMAND)中的动作,进而引起某些操作;
3.3.操作代码
对于热点链接,所对应的动作码为“&
IC1”,在子FORM(F_USER_COMMAND)中捕捉用户的动作,并进行相应的操作,代码如下:
CASE
p_ucomm.
WHEN
IC1'
判断用户的动作
读取用户点击的当前行的一行内容
READ
TABLE
i_tab
wa_tab
INDEX
p_rs_selfield-tabindex
p_rs_selfield-fieldname
EQ
判断用户点击的是哪一列
NOT
wa_tab-cityfrom
IS
INITIAL
PERFORM
f_show_detail
显示具体细节
ELSEIF
TCODE'
wa_tab-tcode
f_call_tran
调用其他事务
ENDIF
ICON_FOLDER'
f_open_folder
打开文件
SAVE_DATA'
f_save_data
保存数据
PRINT'
f_print_data.
打印数据
EXCEL'
f_export
导出数据
ENDCASE.
p_rs_selfield-refresh
当用户在显式界面上对数据进行修改时,同时内表中的数据也随之刷新
f_user_command
3.4.显示具体细节
、先定义一个存放具体内容的内表并整理好相关数据;
、调用一个指定大小的屏幕来显示具体的内容,代码如下:
SCREEN
0100
STARTING
AT
12
ENDING
137
24
3>
、双击该屏幕号码“0100”创建该屏幕,在“属性”卡输入该屏幕的描述,在“逻辑流”卡里将系统默认注释掉的PBO、PAI事件的模块取消注释并产生这两个模块(双击并确定);
4>
、在“屏幕制作器”界面点击
进入“屏幕制作器”的图形界面,开始绘制我们需要的屏幕元素,这里我们需要一个“表控制”(最左边从下数第四个元素),该表格的属性设置为:
名称:
起始行列和高宽
上图表示“列标题”为“具体内容”,可以水平或垂直的调节大小,有水平和垂直的分隔符,只能同时选中一行一列,带选择列(DE_BOX),最左端两列固定不滚动;
5>
、接下来给单元格和列标题名称并给单元格指定内表的字段,
6>
、屏幕的PBO、PAI事件的代码如下:
PROCESS
BEFORE
OUTPUT.
MODULE
status_0100.
LOOP
i_detail
wa_detail
WITH
CONTROL
vs_detail
CURSOR
i_detail-current_line
ENDLOOP.
*
AFTER
INPUT.
user_command_0100.
7>
、需要在定义变量的时候声明一下表控制和动作的接受者(OK_CODE)如下:
*
表控制IS_MATNR
CONTROLS
TABLEVIEW
利用同名传递原理,来接受细节屏幕上的元素“ok_code”的值
ok_code
sy-ucomm
8>
“MODULE
status_0100.”的代码如下:
status_0100
0100'
DESCRIBE
LINES
vs_detail-current_line
ENDMODULE.
OUTPUT
在“0100”的工具栏里,只设置
即可满足需求;
“MODULE
user_command_0100.”的代码如下:
user_command_0100
ok_code.
BACK'
返回主屏幕
INPUT
完成调用细节屏幕;
注意:
在显示细节屏幕的字段的类型上,当内表中有数据为货币类型的时候,要在“格式”里指明该字段是货币类型的数据,如下图:
3.5.调用其他事务
PARAMETER
ID
LIB'
FIELD
p_rs_selfield-value
TRANSACTION
SE37'
."
AND
SKIP
FIRST
f_call_tran
“LIB”是指参数ID,查找方法:
用一个事务码进入事务界面,在输入框内按F1,在弹出来的界面中点击
,新界面中的
就是参数ID;
“SE37”是指我们要调用的事务代码,“AND
SCREEN”表示跳过第一屏屏幕;
3.6.打开并选择文件:
、现则内表中定义好存放文件路径的字段(这里是FILE_PATH),当用户点击界面上设置好的打开文件图标时,就会触发子FORM(F_USER_COMMAND)里的打开文件的子FORM(F_OPEN_FOLDER);
子FORM(F_OPEN_FOLDER)的代码如下:
l_file_path
rlgrap-filename
FUNCTION
WS_FILENAME_GET'
mode
O'
title
选择文件'
IMPORTING
filename
l_file_path
inv_winsys
no_batch
2
selection_cancel
3
selection_error
4
5.
0.
wa_tab-file_path
将得到的文件的路径赋给当前行的路径
MODIFY
wa_tab-numer
TRANSPORTING
file_path
MESSAGE
s000
没有选择文件'
f_open_folder
4.关于设置字段和列名的子FORM(F_FIELDS)的参数设置:
4.1.单列优化宽度
当在子FORM(F_BUILD_LAYOUT)里没有指明全局优化列宽的时候,在需要指定优化的字段的属性里指定下列属性就可以单列优化了,
wa_fieldcat-col_opt
4.2.单列求和或者取消求和,添加属性
wa_fieldcat-do_sum
求和
wa_fieldcat-no_sum
取消求和
如果此时在子FORM(F_BUILD_L
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- REUSEALVGRIDDISPLAYLVC 详细 讲解