cancel
Showing results for 
Search instead for 
Did you mean: 

New page in browser window on event trigger

viralkumar_patel
Explorer
0 Kudos

Hello Experts,

I have created webdynpro abap application which generates pdf interactive forms on pressing a button in UI. I want pdf to be generated in the new page of browser instead of the current page.

Any suggestions how can I implement this?

Thanks & Regards,

Viral

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

try to map ur situation with this code

DATA LO_WINDOW_MANAGER TYPE REF TO IF_WD_WINDOW_MANAGER.
DATA LO_API_COMPONENT  TYPE REF TO IF_WD_COMPONENT.
DATA LO_WINDOW         TYPE REF TO IF_WD_WINDOW.LO_API_COMPONENT  = WD_COMP_CONTROLLER->WD_GET_API( ).
LO_WINDOW_MANAGER = LO_API_COMPONENT->GET_WINDOW_MANAGER( ).
CALL METHOD LO_WINDOW_MANAGER->CREATE_EXTERNAL_WINDOW
  EXPORTING
    URL            = 'http://google.com'
    MODAL          = ABAP_FALSE
    HAS_MENUBAR    = ABAP_TRUE
    IS_RESIZABLE   = ABAP_TRUE
    HAS_SCROLLBARS = ABAP_TRUE
    HAS_STATUSBAR  = ABAP_TRUE
    HAS_TOOLBAR    = ABAP_TRUE
    HAS_LOCATION   = ABAP_TRUE
  RECEIVING
    WINDOW         = LO_WINDOW.LO_WINDOW->OPEN( ).

viralkumar_patel
Explorer
0 Kudos

Hi Anky,

Thanks for the quick response.

Could you please elobarate what you have said as I am very new to web dynpro.

Thanks & Regards,

Viral

Former Member
0 Kudos

Hello Viral,

Anky is helping you to open a new browser window tith 'Google' website.

In your case, could you do the below steps:-

Step1 : create a new window, add your view containing Adobe interactive form into this window.

Step 2: Open this window on button action event. Following snippet of code might be helpful for you.

DATA lo_nd_tabnode TYPE REF TO if_wd_context_node.
lo_nd_tabnode = wd_context->get_child_node( Name = '<Node_Name>' ).

data lo_window_manager type ref to if_wd_window_manager.
data lo_api_component  type ref to if_wd_component.
data lo_window         type ref to if_wd_window.

lo_api_component  = wd_this->wd_get_api( ).
lo_window_manager = lo_api_component->get_window_manager( ).
lo_window         = lo_window_manager->create_window(
                   window_name            = '<Window_Name>'
                   message_display_mode   = if_wd_window=>co_msg_display_mode_selected
                   button_kind            = if_wd_window=>co_buttons_ok
                   message_type           = if_wd_window=>co_msg_type_none
                   default_button         = if_wd_window=>co_button_ok
                   ).
lo_window->open( ).

Explanation:

Line 1 & 2. A reference to the context node is created This context node(Node_Name) which is mapped to the UI elemenents on the adobe interactive form.

Line 3,4 & 5: reference to the window manager, component and window are created(all those starting with 'if' stands for interfaces, if you want details about these interfaces, goto transaction SE24 and insert their name and search for parameters and methods.- putting all these details as you said you are new to Wd ABAP).

rest of the lines: creating window API and assigning mandatory parameters to this window.

last line: opening window whenever this particular(wd window) is getting called.

for more details goto SE 24 search with 'if_wd_window".

Cheers,

Jakes.

viralkumar_patel
Explorer
0 Kudos

Hi Steelman,

Thanks for reply and explanation.

I have created a window as you said and embed a view(interactive form) in that but my question here is, how would I give node name as that node is there in the other view which has interactive form. (lo_nd_tabnode = wd_context->get_child_node( Name = '<Node_Name>' ).

Hope you got my question.

Thanks & Regards,

Viral