我使用cl_salv_table
撰写报告。
我做了哪些。之后我想在alv网格的工具栏上创建一个按钮,它会显示一个预定义的弹出窗口,然后打个招呼。
我能够在工具栏上创建一个按钮并将Functional code
设置为详细信息,我也在调试模式中看到,单击按钮时sy-ucomm
设置为详细信息,但它是不去案例循环。
任何帮助或建议都将不胜感激。
答案 0 :(得分:0)
请查看程序SALV_DEMO_TABLE_SELECTIONS如何正确实现事件处理程序,基本上lcl_handle_events类中的on_user_command方法就是您要查找的内容。
答案 1 :(得分:0)
首先,您应该在带有容器的屏幕上显示SALV网格:
var clickAddScore = function () {
if ( $("name").value == "" || $("score").value < 0 || $("score").value > 100 || isNaN($("score").value) ) {
alert("Please enter a valid name and score");
$("name").value = "";
$("score").value = "";
return false;
};
else {
names[names.length] = $("name").value;
scores[scores.length] = $("score").value;
$("name").value = "";
$("score").value = "";
};
};
然后应启用所有功能:
try.
cl_salv_table=>factory(
exporting
r_container = gr_container
container_name = 'CONTAINER'
importing
r_salv_table = gr_table
changing
t_table = gt_outtab ).
catch cx_salv_msg. "#EC NO_HANDLER
endtry.
最后,您可以添加自己的功能,如下所示:
lr_functions = gr_table->get_functions( ).
lr_functions->set_all( gc_true ).
下一步是在同一类或单独的处理程序类中创建include <icon>.
try.
lr_functions->add_function(
name = 'MYFUNCTION'
icon = CONV string( icon_complete )
text = `My function`
tooltip = `My custom function`
position = if_salv_c_function_position=>right_of_salv_functions ).
catch cx_salv_existing cx_salv_wrong_call.
endtry.
事件处理程序:
on_user_command
最后一件事是处理程序方法的实现,它将完成实际的功能工作
data: gr_events type ref to lcl_handle_events.
set handler gr_events->on_user_command for lr_events.