ALV Grid 函数

ALV Grid 函数的输出有两个:REUSE_ALV_GRID_DISPLAYREUSE_ALV_GRID_DISPLAY_LVC。(普通List列表:REUSE_ALV_LIST_DISPLAY)
两者的操作大同小异,只是后者能更好的和ALV容器结合使用(可以实现单元格级别是否能编辑控制),前者则不能;而在输入参数属性的结构上也有些差异。

对应的字段结构信息函数:REUSE_ALV_FIELDCATALOG_MERGE 和 LVC_FIELDCATALOG_MERGE

 

ALV函数输入参数的作用:

I_CALLBACK_PROGRAM:调用ALV的程序名称

I_CALLBACK_PF_STATUS_SET:ALV工具栏 Subroutine(子程序)

I_CALLBACK_USER_COMMAND:ALV User Command Subroutine(子程序),实现对应菜单项及相应事件功能

I_CALLBACK_TOP_OF_PAGE:ALV抬头内容信息

I_CALLBACK_HTML_TOP_OF_PAGE:ALV HTML格式抬头内容信息

I_GRID_TITLE:ALV 标题

I_GRID_SETTINGS:GRID信息

lw_glay-edt_cll_cb  = 'X'.  "设置参数回调,屏幕修改值,自动保存到ALV 内表

IS_LAYOUT / IS_LAYOUT_LVC:ALV输出布局样式

IT_FIELDCAT / IT_FIELDCAT_LVC:设定显示的项目名称及输出设定

IT_EXCLUDING:隐藏设置的ALV工具栏

IT_SORT / IT_SORT_LVC:ALV排序设置

IT_EVENTS:设置事件, 类型为slis_t_event的内表(name:事件名称,form:事件的FORM)

  DATA:
    lt_event  TYPE slis_t_event,
    lw_event  TYPE slis_alv_event.

  lw_event-name  =  slis_ev_caller_exit_at_start . "alv显示的PAI
  lw_event-form  =  'CALLER_EXIT' .                    "定义事件调用的FORM
  APPEND lw_event  TO lt_event .

  lw_event-name  =  slis_ev_data_changed .  "数据变化事件
  lw_event-form  =  'DATA_CHANGED' .          "定义事件调用的FORM
  APPEND lw_event  TO lt_event .

*----------------------------------------------------------------------*
FORM CALLER_EXIT USING LS_DATA TYPE SLIS_DATA_CALLER_EXIT. 
  DATA: l_grid TYPE REF TO cl_gui_alv_grid.

  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      e_grid = l_grid.

    "在标准屏幕中实现部分自定义屏幕PAI的功能,可以获取ALV的对象然后进行各种OO ALV的操作
"譬如注册双击,数据变化(也可以通过后面子程序实现)等事件
ENDFORM.
"第二种事件变化事件实现
FORM adata_changed USING pel_data TYPE REF TO cl_alv_changed_data_protocol. DATA: l_grid TYPE REF TO cl_gui_alv_grid. FIELD-SYMBOLS <fs_value>. CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' IMPORTING e_grid = l_grid. LOOP AT pel_data->mt_mod_cells INTO ls_cells. "循环变化数据,并处理 ENDLOOP. CALL METHOD l_grid->refresh_table_display. "内表变化后用来刷新ALV显示 ENDFORM.

 

I_DEFAULT:用户是否可以定义默认的布局,’X'-可以定义默认布局,Space-不可以定义默认布局 (默认:X)

I_SAVE:保存表格布局,’X'-只能保存全局变式;’U'-只能保存特定变式;’A'-都可以保存;Space-不能保存变式 (默认:space)

IT_FILTER / IT_FILTER_LVC:ALV过滤设置

IS_SEL_HIDE:替换或修改屏幕中select-option的值

IS_VARIANT:表格布局变式

IT_SPECIAL_GROUPS / IT_SPECIAL_GROUPS_LVC:若内表中一些字段通过SP_GROUP被分组在一起,必须为这些组传递组文本内表

I_CALLBACK_HTML_END_OF_LIST:ALV HTML格式页脚内容信息

I_STRUCTURE_NAME:为输出表数据结构的命名,指定了这个参数,域目录将会自动生成

I_BACKGROUND_ID:ALV背景图片Object ID

I_INTERFACE_CHECK: 检查接口一致性

I_BYPASSING_BUFFER: 是否使用缓存

I_BUFFER_ACTIVE:是否激活缓存,如果每次显示ALV都是相同的字段目录,则该字段目录会被放到一特殊的缓存里,加快显示速度。

IT_EVENT_EXIT:设置回调的方法的执行行为,表明用户所写的代码是在执行标准执行之前还是之后

IS_PRINT:后台打印的相关参数

I_SCREEN_START_COLUMN:以对话框形式显示的开始列

I_SCREEN_START_LINE:以对话框形式显示的开始行

I_SCREEN_END_COLUMN:以对话框形式显示的结束列

I_SCREEN_END_LINE:以对话框形式显示的结束行

I_HTML_HEIGHT_TOP:HTML抬头的高度

I_HTML_HEIGHT_END:HTML页脚的高度

IT_ALV_GRAPHICS:是否可以在图表中显示ALV

IT_HYPERLINK:使用超链接

 
posted @ 2018-01-23 11:03  做梦都笑醒  阅读(519)  评论(0编辑  收藏  举报