ALV 注意事项
- ALV 注意事项 推荐度:
- 相关推荐
ALV 注意事项
- 复制模板的时候,include也要复制,要重新起名字,起完名字之后必须要点选左面的小方块,否则复制失败
- 复制完的模板中的各个文件需要改一些注释信息为自己的程序名
- 各个文件需要格式化代码
- 在top中include自己在数据字典中定义的结构体
INCLUDE STRUCTURE zscurry_alv_training_2.
- 数据库数据查询逻辑在FORM get_data中编写,gt_data就是最后得到的数据
- 列属性(颜色,字段名,是否可以编辑等等属性)在form中的CREAT FIELDCATALOG和CHANGE FIELDCATALOG中定义,根据CREAT FIELDCATALOG生成的数据可以在CHANGE FIELDCATALOG中修改
- 排序在form中的create_default_sort中设置
- 过滤在form中的create_default_filter中设置
- 功能按钮在form中的exclude_toolbar_functions中设置
- 清理无用的代码
- 一个类想调用必须实例化
- 根据ALV列的值自动调节长度在adjust_alv_layout中设置
gs_layout_alv-cwidth_opt = 'X'. "to optimize the width of the columns in the grid
- 单选或者多选行在form中的adjust_alv_layout中设置
gs_layout_alv-sel_mode = 'A'. "selection mode of the ROWS
* A = Multiple columns, multiple rows with selection buttons.
* B = Simple selection, listbox, Single row/column
* C = Multiple rows without buttons
* D = Multiple rows with buttons and select all ICON
- grid title 在form中的adjust_alv_layout中设置
gs_layout_alv-grid_title = 'My OO ALV Grid Title'(019). "the grid title
- 红绿灯在form中的adjust_alv_layout中显示或者删除
gs_layout_alv-excp_fname = 'MY_EXCEPTION'(011)."红绿灯
- 行内颜色在form中的adjust_alv_layout中显示
gs_layout_alv-info_fname = 'MY_LINE_COLOR'(020).
- 列颜色form中的adjust_alv_layout中设置
gs_layout_alv-ctab_fname = 'MY_CELL_COLOR'(021).
- 变式在PBO中设置
* calling the used variant from the selection screenCLEAR gs_variant.IF NOT pa_vari IS INITIAL.MOVE pa_vari TO gs_variant-variant.ENDIF.MOVE gv_repid TO gs_variant-report.
- navigation在PBO中设置
* Calling the navigation profile - only when the program is running in foregroundIF cl_gui_alv_grid=>offline( ) IS INITIAL.CLEAR gs_variant_prof.MOVE-CORRESPONDING gs_profile_key TO gs_variant_prof.gs_variant_prof-report = gv_repid.gs_variant_prof-variant = pa_prof.go_navigation_profile = cl_navp_factory=>factory(io_alv = my_gridis_profile_key = gs_variant_profiv_default = ' ' "when iv_default is blank, you can select whatever navigation profile ; when ‘X’ it always selects the default profileiv_save_mode = gv_save_layoutit_table = gt_data[]iv_disable_call_transaction = ' 'iv_disable_call_okcode = ' 'iv_disable_call_class = ' ' ).ENDIF.
- 如果PBO中没有ALL METHOD my_grid->set_table_for_first_display,则ALV不显示
* Calling the ALVCALL METHOD my_grid->set_table_for_first_displayEXPORTINGis_variant = gs_varianti_save = gv_save_layouti_default = 'X'is_layout = gs_layout_alvit_toolbar_excluding = gt_excl_functions[]CHANGINGit_outtab = gt_data[]it_fieldcatalog = gt_fieldcat[]it_sort = gt_sort[]it_filter = gt_filter[].
- 自定义按钮是否显示和定义逻辑在event中
* Handle toolbarMETHOD handle_toolbar.DATA: ls_toolbar TYPE stb_button.
* Append a separator (vertical line - used for grouping actions on the toolbar)CLEAR ls_toolbar.MOVE 3 TO ls_toolbar-butn_type.APPEND ls_toolbar TO e_object->mt_toolbar.
* Append a button with an iconCLEAR ls_toolbar.MOVE 'ACTION'(003) TO ls_toolbar-function. "define the UCOMM value ; to be used in Handle User CommandMOVE icon_employee TO ls_toolbar-icon. "add an icon - see also TYPE-POOL ICONMOVE 'Do Action'(004) TO ls_toolbar-quickinfo.MOVE 'Do Action'(004) TO ls_toolbar-text.MOVE ' ' TO ls_toolbar-disabled. "to disable a button (grayed out)APPEND ls_toolbar TO e_object->mt_toolbar.* Append a REFRESH buttonCLEAR ls_toolbar.MOVE 'REFRESH'(005) TO ls_toolbar-function.MOVE icon_refresh TO ls_toolbar-icon.MOVE 'Refresh'(006) TO ls_toolbar-quickinfo.MOVE 'Refresh'(006) TO ls_toolbar-text.MOVE ' ' TO ls_toolbar-disabled. "to disable a button (grayed out)APPEND ls_toolbar TO e_object->mt_toolbar.ENDMETHOD. "handle_toolbar
* Handle User commandMETHOD handle_user_command.DATA: lt_rows TYPE lvc_t_row.DATA: ls_rows TYPE lvc_s_row.CASE e_ucomm.WHEN 'ACTION'(003). "here comes the UCOMM value (toolbar function) you added to the buttonCALL METHOD my_grid->get_selected_rowsIMPORTINGet_index_rows = lt_rows.CHECK NOT lt_rows IS INITIAL.READ TABLE lt_rows INDEX 1 INTO ls_rows.READ TABLE gt_data INDEX ls_rows-index INTO gs_data.
* After this you can define what you want to do when the user presses this buttonWHEN 'REFRESH'(005).CALL METHOD my_grid->refresh_table_display.WHEN OTHERS.ENDCASE.ENDMETHOD.
最新文章
- RTB,未来移动互联网广告的发展方向
- 360进军搜索,全站推自主搜索引擎
- 关于java中的反射
- SQLyog Ultimate 13.2 Crack
- CStdioFile之ReadString()与WriteString()注意事项
- 微信小程序之顶部导航栏(选项卡)实例 —— 微信小程序实战系列(1)
- 【基础】BMP格式
- 【Jmeter 简单使用】
- flink1.14.0+mysql5.7+mysqlcdc2.2.1报错org.apache.flink.shaded.guava18.com.google.common.util.concurren
- linux用户密码转换为明文,Linux strace 明文密码抓取
- pageInfo的转化,do转vo
- thinker board s debian系统安装配置
- iOS MVC设计模式
- SwingMVC设计模式
- 国内定制android系统吗,同样都是基于Android系统 国产定制系统差异有多大?
- janus的官网介绍
- JAVA高频面试题目集锦