SAP-ABAP:ALV报表单击跳转页面

 SAP ABAP开发篇  初探ABAP开发,敬请期待

一、背景需求

通过单击ALV字段实现URL网页跳转,应用场景:数电票URL文件回传后查看发票PDF文件预览,电子档案档案信息查看。

二、实现

定义字段

SE11-域-创建,输入域名称,描述,勾选区分大小写,防止url自动转换大写,导致跳转失败。

定义数据元素

se11-定义数据元素,引用刚刚创建的域

se11-修改透明表,增加zurl字段,引用刚刚创建的数据元素

接下来修改代码:

在已经定义好的内表中和查询语句中增加该字段

在调用fieldcat中增加该字段传参

在from里增加该字段属性,设置单击事件

IF u_fieldname = 'ZURL'.
    gs_fieldcat-hotspot  = 'X'.
  ENDIF.

修改user_command,增加&IC1单双击触发事件


FORM frm_user_command USING u_ucomm LIKE sy-ucomm
                            u_rs_selfield TYPE slis_selfield.
  DATA: ls_stable TYPE lvc_s_stbl.

  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      e_grid = go_grid.
  CALL METHOD go_grid->check_changed_data.

  CASE u_ucomm.
    WHEN '&IC1'.
      PERFORM frm_hotspot USING u_rs_selfield.
    WHEN OTHERS.
  ENDCASE.

在form中判断点击字段,并触发跳转操作,下面是两种方法,都可进行跳转

FORM frm_hotspot USING u_rs_selfield TYPE slis_selfield.
IF u_rs_selfield-fieldname EQ 'ZURL'.
    CALL FUNCTION 'CALL_BROWSER'
      EXPORTING
        url                    = u_rs_selfield-value
*       WINDOW_NAME            = ' '
*       NEW_WINDOW             = ' '
*       BROWSER_TYPE           =
*       CONTEXTSTRING          =
      EXCEPTIONS
        frontend_not_supported = 1
        frontend_error         = 2
        prog_not_found         = 3
        no_batch               = 4
        unspecified_error      = 5
        OTHERS                 = 6.
    IF sy-subrc <> 0.
* Implement suitable error handling here
    ENDIF.
ENDFORM.

FORM frm_hotspot USING u_rs_selfield TYPE slis_selfield.  
  IF u_rs_selfield-fieldname EQ 'ZURL'. 
    CALL METHOD cl_gui_frontend_services=>execute
      EXPORTING
        document = u_rs_selfield-value && ''.
  ENDIF.
ENDFORM.

特别鸣谢:LIH.

以上内容由ABAP开发LIH特别提供,由David.Gao编辑,Dong.Li审核。

 以上:
原创声明:转载请联系作者,禁止一切商业用途;
更多内容请关注个人公众号搜:思AI普

公告:周一至周五每日一更,周六日存稿,请您点“关注”和“在看”,后续推送的时候不至于看不到每日更新内容,感谢。 

Allways  on  the  way

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值