打印调整
我们通过方法’set_table_for_first_display’的参数’is_print’来调整打印的格式。
Field name
|
Description
|
Value range
|
GRPCHGEDIT
|
用户可以用来定义预览的方式。如果设置了这个字段,跳向SAP LIST VIEWER就会相应的被设置。在排序对话框中用户可以设定排序方式。使用SORT TABLE可以动态的设定格式。
|
SPACE,’X’
|
NO_COLWOPT
|
在打印之前ALV GRID CONTROL会自动调整每列的宽度。如果设置了这个值缺省的设置就会被取消。
|
SPACE,’X’
|
PRNTLSTINF
|
打印列表信息。设置了这个值排序,子汇总和筛选都将会被作为统计信息显示在列表中
|
SPACE,’X’
|
PRNT_TITLE
|
定义grid title在什么时候显示
|
0:在PRINT_TOP_OF_LIST 之前。
1:在PRINT_TOP_OF_LIST 之后
2:在PRINT_TOP_OF_PAGE 之前
3:在PRINT_TOP_OF_PAGE 之后
|
RESERVELNS
|
Print_end_of_page保留的行数
|
自然数
|
在ALV GRID的预览中PRNTLSTINF的效果是看不到的。如果你先产生一个SPOOL请求,通过SP01你可以看到效果。
筛掉不想要的功能按钮
在alv grid中我们可能需要筛出一些不想要的功能按钮。如果想要筛出按钮需要填充一个类型为‘UI_FUNCTIONS’的内表,并把它传送给方法’set_table_for_first_display‘的参数‘IT_TOOLBAR_EXCLUDING‘
按钮的功能代码的值可以通过‘cl_gui_alv_grid’的常量属性获得,或者在事件处理方法’after_user_command’中获得。如果想隐掉整个工具条可以设置layout structure的NO_TOOLBAR参数。
FORM exclue_tb_functions CHANGIN pt_exclude TYPE ui_functions.
DATA: ls_exclude TYPE ui_func.
Ls_exclude = cl_gui_alv_grid=>mc_fc_maximum.
APPEND ls_exclude TO pt_exclude.
Ls_exclude = cl_gui_alv_grid=>mc_fc_minimum.
APPEND ls_exclude TO pt_exclude.
Ls_exclude = cl_gui_alv_grid=>mc_fc_subtot
APPEND ls_exclude TO pt_exclude.
Ls_exclude = cl_gui_alv_grid=>mc_fc_sum
APPEND ls_exclude TO pt_exclude.
Ls_exclude = cl_gui_alv_grid=>mc_fc_average
APPEND ls_exclude TO pt_exclude.
Ls_exclude = cl_gui_alv_grid=>mc_mb_sum.
APPEND ls_exclude TO pt_exclude.
Ls_exclude = cl_gui_alv_grid=>mc_mb_subtot
APPEND ls_exclude TO pt_exclude.
ENDFORM.
这里以‘MC_FC_’便是按钮的功能代码,以’MC_MB_’开头的是一些包含子功能菜单的功能菜单。最后一个排除了包含在这个菜单下的所有子功能菜单。
非事件的其他功能
到此已经介绍了如何设置ALV GRID的格式。下面将更加深入的研究ALV GRID的其他功能。
ALV GRID显示后改变field catalog和格式设置。下面的四个方法可以实现这些功能:
FOR the fieldcatalog: get_frontend_fieldcatalog
Set_frontend_fieldcatalog
For the layout: get_frontend_layout
Set_frontend_layout
使用这些方法随时都可以得到设置信息并改变他:
DATA:ls_fcat TYPE lvc_s_fcat,
Lt_fcat TYPE lvc_t_fcat,
Ls_layout TYPE lvc_s_layo.
CALL METHOD gr_alvgrid->get_frontend_fieldcatalog
IMPORTING
Et_fieldcatalog = lt_fcat[].
LOOP AT lt_fcat INTO ls_fcat.
IF ls_fcat-fieldname = ‘PAYMENTSUM’.
Ls_fcat-no_out = space.
MODIFY lt_fcat FROM ls_fcat.
ENDIF.
ENDLOOP.
CALL METHOD gr_alvgrid->set_frontend_fieldcatalog
EXPORTING
Et_fieldcatalog = lt_fcat[].
CALL METHOD gr_alvgrid->get_frontend_layout
IMPORTING
Es_layout = ls_layout.
Ls_layout-grid_title = ‘Flights(with payment sums’.
CALL METHOD gr_alvgrid->set_frontend_layout
EXPORTING
Es_layout = ls_layout.