点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我创建了一个ALV程...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我创建了一个ALV程...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我创建了一个ALV程序,并显示了标准的alv工具栏,该工具栏还包括排序asc和Des按钮,但是这些按钮不能很好地工作。
前期问题:
1。 一列按升序排列-很好。 现在单击同一列上的降序按钮,它将打开一个对话框,在这里我需要选择排序顺序,单选按钮位于其中,用于排序asc和sort des。 我选择了desc按钮,但它并没有按des顺序排序。
2。 现在,我选择多个列,然后单击按asc顺序排序的按钮,它再次显示对话框以选择列,并要求选择相应的单选按钮,例如asc或desc。 为所有列选择Asc,不进行排序。
我曾经假设过,这些是标准的排序按钮,应该可以正常工作,但看起来并不像。 我有什么想念的吗? 我需要在字段目录中设置排序吗?
最好的问候
KS
1。 在此演示程序中,排序工作正常。 同样,在代码中没有专门实现排序的东西。 它是标准工具栏按钮,应该可以正常工作。
2。 右键单击也具有相同的行为。 第一次很好,第二次打开对话框。
3。 首先,此对话框不应该出现,其次,如果我要对一列进行排序,为什么我需要将所有列移至排序条件。
4。 单击信息记录列上的升序排序,效果很好。 然后通过选择同一列单击降序按钮,打开对话框,在该对话框中选择降序,它完全破坏了升序或降序的排序。 参见屏幕截图。 分拣1。 您可以看到在列上显示了降号,但排序不正确。
编码如下:
方法create_cont_grid。
如果me-> custom_container是INITIAL。 "此检查可确保仅在第一次处理屏幕PBO时创建容器。
*创建容器
创建对象我-> custom_container
导出
container_name ='MYCONTAINER'
例外情况
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link =5。
如果sy-subrc <>0。
*错误 创建硬币容器
ENDIF。
*使用容器作为父容器创建alv网格。
创建对象me-> gr_grid
导出
i_parent = me-> custom_container
例外
error_cntl_create = 1
error_cntl_init = 2
error_cntl_link = 3
error_dp_create = 4
其他=5。
IF sy-subrc <>0。
*创建错误 grid
ENDIF。
*触发第一个显示
me-> first_display()。
ELSE。
*只需刷新网格。
me-> refresh_grid()。
ENDIF。
ENDMETHOD。
方法首次显示。
数据:ls_layout类型lvc_s_layo,
ls_variant类型不变量,
lv_repid TYPE repid。
数据ls_排除类型ui_func。
数据lt_toolbar_不包括类型ui_functions。
*排除不必要的标准工具栏按钮 _c> c = c APPEND ls_exclude到lt_toolbar_exception。
ls_exclude = cl_gui_alv_grid => mc_fc_loc_append_row。
APPEND ls_exclude排除到lt_toolbar_except。
ls_exclude = cl_gui_alv_grid => mc_fc_loc_de cl_gui_alv_grid => mc_fc_loc_insert_row。
APPEND ls_exclude排除到lt_toolbar_clusion。 br> * ls_exclude = cl_gui_alv_grid => mc_fc_refresh。
* APPEND ls_exclude TO lt_toolbar_clusion。
ls_exclude = cl_gui_alv_grid => mc_fc_loc_cut。
APPEND ls_exclude
ls_exclude = cl_gui_alv_grid => mc_fc_loc_undo。
APPEND ls_exclude到lt_toolbar_clusion。
*以下两个要排除带有Overwri的插入 te Combi Button
ls_exclude = cl_gui_alv_grid => mc_fc_loc_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_l_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_l_c_l_c_c_l_c_bar =。
APPEND ls_exclude = cl_gui_alv_grid => mc_fc_loc_c_s_c_c br> APPEND ls_exclude至lt_toolbar_clusion。
ls_exclude = cl_gui_alv_grid => mc_fc_views。
APPEND ls_exclude至lt_toolbar_clusion。
lv_repid = sy-repid。
ls_variant-report = lv_repid。
ls_layout-zebra ='X'。
ls_layout-smalltitle ='X'。
*第一次显示ALV。
调用方法gr_grid-> set_table_for_first_display
导出
is_variant = ls_variant
is_layout = ls_layout
i_default ='X'",X用户可以保存默认布局 。
i_save ='A'"空格:无法保存布局。如果存在空格,用户将无法保存默认布局。 U:仅用户定义的布局。 X:仅全局布局。 答:用户定义的布局和全局布局。
it_toolbar_clusion = lt_toolbar_clusion
更改
it_fieldcatalog = ot_fieldcat []
it_outtab = ot_data
例外情况
invalid_parameter_combination = 1
program_error = 2 < br> too_many_lines = 3
其他=4。
IF sy-subrc NE0。
*网格显示错误
ENDIF。
*将类分配给事件处理程序。
*创建对象gr_event_handler。
SET HANDLER me-> handle_hotspot_click FOR gr_grid。
SET HANDLER me-> on_data_changed FOR gr_grid。
SET HANDLER me-> 刷新FOR gr_grid。
ENDMETHOD。
谢谢。
一周热门 更多>