SAP: ALV中超链接列的实现

16 篇文章 0 订阅

在ALV中我们经常会遇到超链接列的问题,如点击列中的某个值然后跳向不同的地址,

超链接列的实现如下:

(1)首先在内表中加一列,该列为INT4类型的,用于控制超链接列。

(2)定义超链接内表(Type lvc_t_hype)和对内表操作的工作区(Type lvc_s_hype)

(3)给超链接内表赋值

(4)在调用ALV时指定超链接内表

代码如下:

DATA:BEGIN OF gt_mara OCCURS 0,

matnr LIKE mara-matnr,

ersda LIKE mara-ersda,

ernam LIKE mara-ernam,

laeda LIKE mara-laeda,

vpsta LIKE mara-vpsta,

mtart LIKE mara-mtart,

color(4),”control the row color

cellclor TYPE lvc_t_scol,”control the cell color

site(10),”超链接列

handle_site TYPE int4,”用于控制超链接列的句柄列

END OF gt_mara.

*添加超链接内表数据

DATA:gt_hype TYPE lvc_t_hype.

DATA:gs_hype TYPE lvc_s_hype.

*向超链接内表中添加数据

FORM  set_hype.

REFRESH gt_hype.

CLEAR gs_hype.

gs_hype-handle = ‘1′.

gs_hype-href = ‘http://www.baidu.com’.

APPEND gs_hype TO  gt_hype.

CLEAR gs_hype.

gs_hype-handle = ‘2′.

gs_hype-href = ‘http://www.sina.com’.

APPEND gs_hype TO  gt_hype.

ENDFORM.

*构建字段目录

form build_filedcat.

‘S’ ‘TABNAME’   ‘GT_MARA’ ,

”  ’SCRTEXT_M’ ‘SITE’ ,

”  ’WEB_FIELD’ ‘HANDLE_SITE’,

”  ’EMPHASIZE’ ‘C510′,

‘E’ ‘FIELDNAME’ ‘SITE’ .

endform.

FORM p_data .

DATA:a TYPE i.

LOOP AT gt_mara.

IF gt_mara-matnr = ‘100-100′.

gt_mara-color = ‘C310′.

ENDIF.

IF gt_mara-matnr = ‘100-401′.

CLEAR gt_mara-cellclor.

CLEAR gs_cellcolor.

gs_cellcolor-fname = ‘MTART’.

gs_cellcolor-color-col = ‘6′.

APPEND gs_cellcolor TO gt_mara-cellclor.

gs_cellcolor-fname = ‘ERSDA’.

gs_cellcolor-color-col = ‘7′.

APPEND gs_cellcolor TO gt_mara-cellclor.

ENDIF.

a = sy-tabix MOD 2.

IF a = 0.

gt_mara-site = ‘Baidu’.

gt_mara-handle_site = 1.

ELSE.

gt_mara-site = ‘Sina’.

gt_mara-handle_site = 2.

ENDIF.

MODIFY gt_mara.

ENDLOOP.

ENDFORM.

*最后在调用ALV时:

CALL METHOD gs_alv->set_table_for_first_display

EXPORTING

is_layout            = gs_layout

it_toolbar_excluding = g_toolbar

it_hyperlink         = gt_hype

CHANGING

it_outtab            = gt_mara[]

it_fieldcatalog      = gt_fieldcat.

最终效果图:

b1irm3k8pofn1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值