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來設置它。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章