ALV GRID(2) 详解1
上篇博文中给出了一个例子,下面对例子进行解析
1、声明ALV,没有这句话将无法定义ALV相关的结构和内表
type-pools:slis.
2、定义布局
data: ls_lay type slis_layout_alv. ls_lay-colwidth_optimize = 'X'.
slis_layout_alv中常用的产生有以下几种:
colwidth_optimize = 'X' 根据字段长度自动调整列宽
zebra = 'X' 隔行换色
box_fieldname = 'zzz' zzz列作为行现在标识(zzz必须为char1类型)
3、定义输出列
data: ltd_cat type standard table of slis_fieldcat_alv,
lth_cat type slis_fieldcat_alv.
lth_cat-fieldname = 'MATNR'. lth_cat-seltext_s = '物料编码'. append lth_cat to ltd_cat. clear lth_cat.
fieldname 输出的列名
seltext_s 列标题(短)
一般情况下 有这两个属性就能够正常输出内容。
但用户经常会提出其他一些要求
do_sum='X' 求和计算
edit='X' 列内容可编辑
edit_mask='==CUNIT' 当列为计量单位时,内部值变成外部值显示
no_zero = 'X' 不输出前导零
checkbox = 'X' 字段为复选框,一般与edit配合使用
decimals = '2' 输出小数点后2位
4、交互
i_callback_user_command = 'USER_COMMAND'
function中上行代码用来指定交互动作交给什么form去处理
form USER_command using i_ucomm like sy-ucomm i_selfield type slis_selfield. if i_ucomm = '&IC1'. case i_selfield-fieldname. when 'MATNR'. set parameter id 'MAT' field I_selfield-value. call transaction 'MM03' and skip first screen. endcase. endif. endform.
i_ucomm参数用来存放前台动作名称
浙公网安备 33010602011771号