cancel
Showing results for 
Search instead for 
Did you mean: 

Dynamically create number of link of actions

Former Member
0 Kudos

Hi folks,

I have an requirement in web dynpro in which

when I enter "4" in a text box and hit a button.

4 action to link (hyperlinks) must be created below.

Please see the below image.

My logic:

I have already read the text box value in lv_attribute = 4.

DO  lv_attribute  TIMES.

*Create the hyperlink

ENDDO.

******************************************************************************

PS: I dont know how to create hyperlink

Can any one help me please.

Accepted Solutions (0)

Answers (2)

Answers (2)

former_member198833
Active Participant
0 Kudos

Hi Samson,

Please see the following tutorial on how to dynamically create UI elements:

The UI element you need to create is LinkToURL.

In your scenario, do you need each of the links to be different?

Regards,

Felipe

Former Member
0 Kudos

Hi Felipe,

Thanks for the reply.

Yes each of the links needs to be different

former_member198833
Active Participant
0 Kudos

Hi Samson,

You can use below method of class CL_WD_LINK_TO_URL to dynamically create the LinkToURL UI element.

  CL_WD_LINK_TO_URL=>NEW_LINK_TO_URL(

*    exporting

*      ACTIVATE_ACCESS_KEY         =

*      BIND_CONTROL_MENU_DISABLING =

*      BIND_DESIGN                 =

*      BIND_ENABLED                =     " BIND_ENABLED

*      BIND_IMAGE_FIRST            =     " BIND_IMAGE_FIRST

*      BIND_IMAGE_HEIGHT           =     " BIND_IMAGE_HEIGHT

*      BIND_IMAGE_IS_DECORATIVE    =

*      BIND_IMAGE_SOURCE           =     " BIND_IMAGE_SOURCE

*      BIND_IMAGE_WIDTH            =     " BIND_IMAGE_WIDTH

*      BIND_REFERENCE              =     " BIND_REFERENCE

*      BIND_TARGET                 =     " BIND_TARGET

*      BIND_TEXT                   =     " BIND_TEXT

*      BIND_TEXT_DIRECTION         =     " BIND_TEXT_DIRECTION

*      BIND_TOOLTIP                =     " BIND_TOOLTIP

*      BIND_TYPE                   =     " BIND_TYPE

*      BIND_VISIBLE                =     " BIND_VISIBLE

*      BIND_WRAPPING               =     " BIND_WRAPPING

*      CONTEXT_MENU_BEHAVIOUR      = E_CONTEXT_MENU_BEHAVIOUR-INHERIT

*      CONTEXT_MENU_ID             =

*      CONTROL_MENU_DISABLING      = 'X'

*      DESIGN                      = E_DESIGN-STANDARD

*      ENABLED                     = 'X'    " ENABLED

*      HOTKEY                      = E_HOTKEY-NONE

*      ID                          =     " ID

*      IMAGE_FIRST                 = 'X'    " IMAGE_FIRST

*      IMAGE_HEIGHT                =     " IMAGE_HEIGHT

*      IMAGE_IS_DECORATIVE         =

*      IMAGE_SOURCE                =     " IMAGE_SOURCE

*      IMAGE_WIDTH                 =     " IMAGE_WIDTH

*      REFERENCE                   =     " REFERENCE

*      TARGET                      =     " TARGET

*      TEXT                        =     " TEXT

*      TEXT_DIRECTION              = E_TEXT_DIRECTION-INHERIT    " TEXT_DIRECTION

*      TOOLTIP                     =     " TOOLTIP

*      TYPE                        = E_TYPE-NAVIGATION    " TYPE

*      VIEW                        =     " VIEW

*      VISIBLE                     = E_VISIBLE-VISIBLE    " VISIBLE

*      WRAPPING                    =     " WRAPPING

*    receiving

*      CONTROL                     =     " CONTROL

   ).


These are all the possible properties you can set. The reference property is the destination of the link (e.g. http://scn.sap.com/ )


In order to have all LinkToURL UI Elements point to different destinations, you can create a internal table, which contains all desired destinations, and loop into it, using the above method to dynamically create the URLs.


So, instead of using DO  lv_attribute TIMES (this would create equal elements any number of times, you can use the following.

You would just need to populate the internal table with the number of links the user provides (in this case 4). How are the links being maintained?

Try the following:

TYPES: BEGIN OF ty_links,

         link TYPE STRING,

        END OF ty_links.

DATA lt_links      TYPE STANDARD TABLE OF ty_links.

DATA wa_links      LIKE LINE OF lt_links .

  wa_links-link = 'http://scn.sap.com'.

  APPEND wa_links TO lt_links.

  CLEAR wa_links.

  wa_links-link = 'http://www.sap.com'.

  APPEND wa_links TO lt_links.

  CLEAR wa_links.

  wa_links-link = 'http://www.sap.de'.

  APPEND wa_links TO lt_links.

  CLEAR wa_links.

  wa_links-link = 'http://support.sap.com'.

  APPEND wa_links TO lt_links.

  CLEAR wa_links.

LOOP AT lt_links INTO wa_links.

   CL_WD_LINK_TO_URL=>NEW_LINK_TO_URL(

*    exporting

*      ACTIVATE_ACCESS_KEY         =

*      BIND_CONTROL_MENU_DISABLING =

*      BIND_DESIGN                 =

*      BIND_ENABLED                =     " BIND_ENABLED

*      BIND_IMAGE_FIRST            =     " BIND_IMAGE_FIRST

*      BIND_IMAGE_HEIGHT           =     " BIND_IMAGE_HEIGHT

*      BIND_IMAGE_IS_DECORATIVE    =

*      BIND_IMAGE_SOURCE           =     " BIND_IMAGE_SOURCE

*      BIND_IMAGE_WIDTH            =     " BIND_IMAGE_WIDTH

*      BIND_REFERENCE              =     " BIND_REFERENCE

*      BIND_TARGET                 =     " BIND_TARGET

*      BIND_TEXT                   =     " BIND_TEXT

*      BIND_TEXT_DIRECTION         =     " BIND_TEXT_DIRECTION

*      BIND_TOOLTIP                =     " BIND_TOOLTIP

*      BIND_TYPE                   =     " BIND_TYPE

*      BIND_VISIBLE                =     " BIND_VISIBLE

*      BIND_WRAPPING               =     " BIND_WRAPPING

*      CONTEXT_MENU_BEHAVIOUR      = E_CONTEXT_MENU_BEHAVIOUR-INHERIT

*      CONTEXT_MENU_ID             =

*      CONTROL_MENU_DISABLING      = 'X'

*      DESIGN                      = E_DESIGN-STANDARD

*      ENABLED                     = 'X'    " ENABLED

*      HOTKEY                      = E_HOTKEY-NONE

*      ID                          =     " ID

*      IMAGE_FIRST                 = 'X'    " IMAGE_FIRST

*      IMAGE_HEIGHT                =     " IMAGE_HEIGHT

*      IMAGE_IS_DECORATIVE         =

*      IMAGE_SOURCE                =     " IMAGE_SOURCE

*      IMAGE_WIDTH                 =     " IMAGE_WIDTH

       REFERENCE                   =    wa_links-link

*      TARGET                      =     " TARGET

*      TEXT                        =     " TEXT

*      TEXT_DIRECTION              = E_TEXT_DIRECTION-INHERIT    " TEXT_DIRECTION

*      TOOLTIP                     =     " TOOLTIP

*      TYPE                        = E_TYPE-NAVIGATION    " TYPE

*      VIEW                        =     " VIEW

*      VISIBLE                     = E_VISIBLE-VISIBLE    " VISIBLE

*      WRAPPING                    =     " WRAPPING

*    receiving

*      CONTROL                     =     " CONTROL

    ).

ENDLOOP.

ChrisSolomon
Active Contributor
0 Kudos

Two things....

1. in your context, have an element that allows "many" entries....like something basic....just a STRING. You will simply add values (links as strings) to this context element.

2. on your view, bind that context to an area that renders as hyperlinks for each one.

That should do it....if you get what I am saying.