“ 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