ALV GRID参考文档 ( 8 ) - 插入超级链接

插入超级链接
通过一个包含超级链接和他所对应的显示数据的源表来实现超级链接。这个超级链接表的类型为lvc_t_hype。对于要显示的内表中你要建立超级链接的每一个字段都要对应增加一个类型为int4的字段。这些新的字段是为了在超级链接表中得到信息。通过在field catalog中的WEB_FIELD字段来指定每个字段的句柄名。由于有这么多字段之间的关联关系,所以理解起来比较困难。下面的例子说明了超级链接的实现方法。
比如说我们想为CARRID,CONNID建立超级链接。我们就需要在要显示的内表中增加两个字段:
*-------internal table holding list data
DATA BEGIN OF gt_list OCCURS 0.
INCLUDE STRUCTURE sflight.
DATA rowcolor(4) TYPE c.
DATA cellcolors TYPE lvc_t_scol.
DATA carrid_handle TYPE int4.
DATA connid_handle TYPE int4.
DATA END OF gt_list.
建立超级链接表,当然它的类型必须为lvc_t_hype。
*------hype links table
FORM prepare_hypelinks_table CHANGING pt_hype TYPE lvc_t_hype.
 DATA ls_hype TYPE lvc_s_hype.
 
 Ls_hype-handle = ‘1’.
 Ls_hype-href = ‘www.myweb.com’
APPEND ls_hype TO pt_hype.
Ls_hype-handle = ‘2’.
Ls_hype-href = ‘www.myweb2.com’.
APPEND ls_hype TO pt_hype.
Ls_hype-handle = ‘3’.
Ls_hype-href = ‘www.myweb3.com’.
APPEND ls_hype TO pt_hype.
Ls_hype-href = ‘www.myweb3.com’.
Ls_hype-handle = ‘4’.
APPEND ls_hype TO pt_hype..
ENDFORM.
通过field catalog来指明包含句柄的字段。
对于CARRID的field catalog
 Ls_fieldcat-web_field = ‘CARRID_HANDLE’.
对于CONNID的field catalog
 Ls_fieldcat-web_field = ‘CONNID_HANDLE’.
在方法’set_table_for_first_display’中把句柄内表传给参数it_hyperlink。
当插入显示数据时,同时要把相应的句柄传给相应字段。
LOOP AT gt_list.
 IF gt_list-carrid = ‘XX’.
Gt_list-carrid_handle = ‘1’.
IF gt_list-connid = ‘01’.
 Gt_list-connid_handle = ‘4’.
ENDIF.
 ENDIF.
ENDLOOP.
把显示字段作为下拉表
把显示字段作为下拉表会使界面显得友好。使字段成为下拉列表跟使他包含超级链接差不多。不过我们并不是通过’set_table_for_first_display’的方法来传递句柄。通过方法’set_drop_down_table’来传递句柄表。如果想把整列作为增补表,那么只需设置DRDN_HNDL即可。例如:ps_fcat-drdn_hndl = ‘1’。
如果想把某一个单元格作为增补表,必须在显示内表中增加一个字段。需要在填充显示表或通过修改显示表来为这个字段设置句柄值。同时把这个字段名赋给field catalog中的’DRDN_FIELD’.
Ps_fcat-drdn_field = ‘PTYP_DD_HNDL’.
*----Internal table holding list data
DATA BEGIN OF gt_list OCCURS 0.
INCLUDE STRUCTURE SFLIGHT.
DATA rowcolor(4) TYPE c.
DATA cellcolors TYPE lvc_t_scol.
DATA carrid_handle TYPE int4.
DATA connid_handle TYPE int4.
DATA ptype_dd_hndl TYPE int4.
DATA END OF gt_list.
*----drilldwon values
FORM prepare_drilldown_values.
 DATA lt_addval TYPE lvc_t_drop.
 DATA ls_addval TYPE lvc_s_drop.
 Ls_addval-handle = ‘1’.
 Ls_addval-value = ‘JFK-12’.
 APPEND ls_addval TO lt_addval.
 Ls_addval-handle = ‘1’.
 Ls_addval-value = ‘JFK-44’.
 APPEND ls_addval TO lt_addval.
 Ls_addval-handle = ‘1’.
 Ls_addval-value = ‘JFK-66’.
 APPEND ls_addval TO lt_addval.
 CALL METHOD gr_alvgrid->set_drop_down_table
      EXPORTING
         It_dropdown = lt_addval.
ENDFORM.
正如上面的例子,准备好句柄表后,用方法set_drop_down_table来设置它。

你可能感兴趣的:(list,table,dropdown,文档,structure,Hyperlink)