Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

ALV object model hyperlinks

Former Member
0 Likes
773

Hi All,

I am working on ALV object model to display some tracking data. I have two tracking numbers TRACKNO AND RETURN_TRACKNO. I am able to make hyperlink with one of the fields and it is working fine which when clicked takes me to the fedex website.

But the problem is: when I add hyperlink to return tracking number, it is wiping out the hyperlinks even in first field.

Could anyone give me snippets of code that enables two different hyperlinks in two columns ( two fields) ? thanks appreciated.

Edited by: Jose Maria on Dec 20, 2007 1:49 AM

2 REPLIES 2
Read only

Former Member
0 Likes
553

hi,

take a look at: [;

also at: [http://help.sap.com/saphelp_nw04/helpdata/en/c3/d023410f6fb167e10000000a155106/frameset.htm]

Read only

Former Member
0 Likes
553

Hi,

See the follow example. It demonstrates how to use a Hiperlink field in ALV. These example was based on 'SALV_DEMO_TABLE_COLUMNS' that contains Hiperlink, icon, Hotspot...

If you are trying to set up a hiperlink to open a local file, like 'C:Documents and SettingsSapWorkDir' you must use the same routine used on field 'Hotspot' of program 'SALV_DEMO_TABLE_COLUMNS'. this routine shows a message when you clicked on hotspot, but you can use 'CL_GUI_FRONTEND_SERVICES=>GUI_UPLOAD' Instead Message statement.

code

REPORT zsalv_mar NO STANDARD PAGE HEADING.

TYPES: BEGIN OF g_type_s_outtab.

INCLUDE TYPE alv_tab.

TYPES: t_hyperlink TYPE salv_t_int4_column,

END OF g_type_s_outtab.

DATA: gt_outtab TYPE STANDARD TABLE OF g_type_s_outtab.

DATA: gr_table TYPE REF TO cl_salv_table.

TYPES: BEGIN OF g_type_s_hyperlink,

handle TYPE salv_de_hyperlink_handle,

hyperlink TYPE service_rl,

carrid TYPE s_carrid,

END OF g_type_s_hyperlink.

DATA: gt_hyperlink TYPE STANDARD TABLE OF g_type_s_hyperlink.

SELECTION-SCREEN BEGIN OF BLOCK gen WITH FRAME.

PARAMETERS: p_amount TYPE i DEFAULT 30.

SELECTION-SCREEN END OF BLOCK gen.

START-OF-SELECTION.

PERFORM select_data.

PERFORM display.

&----

-


*& Form select_data

&----

-


text

-

-


--> p1 text

<-- p2 text

-

-


FORM select_data .

DATA: line_outtab TYPE g_type_s_outtab,

ls_hype TYPE g_type_s_hyperlink,

lt_hyperlink TYPE salv_t_int4_column,

ls_hyperlink TYPE salv_s_int4_column,

v_tabix TYPE sytabix.

SELECT *

FROM alv_tab

INTO CORRESPONDING FIELDS OF TABLE gt_outtab

UP TO p_amount ROWS.

LOOP AT gt_outtab INTO line_outtab.

v_tabix = sy-tabix.

ls_hype-handle = sy-tabix.

ls_hype-hyperlink = line_outtab-url.

ls_hype-carrid = line_outtab-carrid.

INSERT ls_hype INTO TABLE gt_hyperlink.

ls_hyperlink-columnname = 'URL'.

ls_hyperlink-value = sy-tabix.

APPEND ls_hyperlink TO lt_hyperlink.

line_outtab-t_hyperlink = lt_hyperlink.

MODIFY gt_outtab FROM line_outtab INDEX v_tabix.

CLEAR line_outtab.

CLEAR lt_hyperlink.

CLEAR ls_hyperlink.

ENDLOOP.

ENDFORM. " select_data

&----

-


*& Form display

&----

-


text

-

-


--> p1 text

<-- p2 text

-

-


FORM display .

TRY.

cl_salv_table=>factory(

IMPORTING

r_salv_table = gr_table

CHANGING

t_table = gt_outtab ).

CATCH cx_salv_msg. "#EC NO_HANDLER

ENDTRY.

DATA: lr_functions TYPE REF TO cl_salv_functions_list.

lr_functions = gr_table->get_functions( ).

lr_functions->set_default( abap_true ).

*... set the columns technical

DATA: lr_columns TYPE REF TO cl_salv_columns_table,

lr_column TYPE REF TO cl_salv_column_table.

lr_columns = gr_table->get_columns( ).

lr_columns->set_optimize( abap_true ).

*... §4.7 set hyperlink column

DATA: lr_hyperlinks TYPE REF TO cl_salv_hyperlinks,

ls_hyperlink TYPE g_type_s_hyperlink.

DATA: lr_functional_settings TYPE REF TO cl_salv_functional_settings.

TRY.

lr_columns->set_hyperlink_entry_column( 'T_HYPERLINK' ).

CATCH cx_salv_data_error. "#EC NO_HANDLER

ENDTRY.

TRY.

lr_column ?= lr_columns->get_column( 'URL' ).

lr_column->set_cell_type( if_salv_c_cell_type=>link ).

lr_column->set_long_text( 'URL' ).

CATCH cx_salv_not_found. "#EC NO_HANDLER

ENDTRY.

lr_functional_settings = gr_table->get_functional_settings( ).

lr_hyperlinks = lr_functional_settings->get_hyperlinks( ).

LOOP AT gt_hyperlink INTO ls_hyperlink.

TRY.

lr_hyperlinks->add_hyperlink(

handle = ls_hyperlink-handle

hyperlink = ls_hyperlink-hyperlink ).

CATCH cx_salv_existing. "#EC NO_HANDLER

ENDTRY.

ENDLOOP.

gr_table->display( ).

ENDFORM. " display

Reward points if found helpful.....

Cheers,

Chandra Sekhar.