Dynamically change embedded interface view in window

I have a Maincomponent M which embedds in its Mainwindow an interface view V_L from a component definition interface cid L. CID L handles the layout with several views and has two at runtime chosen variants (= cid_L-implementating components ) L1 and L2.
now my wd-application starts e.g. with layout L1 and I want to switch at runtime via a button or an event to L2. how can I achieve this?
Because M embedds in its window V_L (which can be filled by L1 or L2) I tried to delete the component in the usage of L1 and create the new component for showing L2.
but this doesn´t work. should I change some navigation links dynamically? because I thought when I create component L2 the interfaceview V_L is filled and I it´s automatically shown in its higher-ranking Mainwindow from M which embedds V_L.

Hi Thorsten.
Is your scenarion as follows.
You define an outbound plug in your main (e.g. 'OUT') at design time.
Then you start the application and you create a dynmic navigation using OUT
to L1 and embedd L1 in M this way.
Then you click a button and create again a dynamic navigation using OUT as outbound to L2 and embedd L2 in M?
If so you create 2 navigations which will be triggered when you fire OUT.
You can test this by setting the break point on the fire method. Somehow you will come to a point where you will see a table which stores the navigations and should contain 2.
I have a table with authorisation which contains all necessary data for the navigation to a corresponding component. I use the authoridation ID as name for the outbound which have to be created dynamically. And I use a Hashtable to store the value. This is of the type CL_C2S_SAPI_HASHTABLE. I create the object as attribute in view controller. Then each time a link is clicked I check whether the hashtable already contains a value for this authorisation. If not I call
prepare_dynamic_navigation and use the ID as outbound. Afterwards I store it in th hashtable.
lv_outplug = wd_this->outbound_plugs->getvalue( lv_auth ).
*   the navigation to the specified auth is performed
*   for the first time and have to be created.
    if lv_outplug is initial.
      lv_outplug = lv_auth.
      try.
          l_view_controller_api->PREPARE_DYNAMIC_NAVIGATION(
              source_window_name          = 'W_MAIN'
              source_vusage_name          = 'V_MAIN_USAGE_1'
              source_plug_name            = lv_outplug
              target_component_name       = lv_comp
              target_component_usage      = 'USED_COMPONENT'
              target_view_name            = 'W_MAIN'
              target_plug_name            = lv_plug
              target_embedding_position   = 'V_MAIN/UI_COMP_CONTAINER' ).
*         save outbound_plug for later usage.
          wd_this->outbound_plugs->setvalue(
           exporting
             name = lv_auth
             value = lv_outplug
        catch cx_wd_runtime_repository into lr_exception.
          data s type string.
          s = lr_exception->get_text( ).
          raise exception type cx_wdr_rt_exception.
      endtry.
    endif.
    l_view_controller_api->fire_plug(
     exporting
       plug_name = lv_outplug
Hope this helps.
Cheers,
Sascha

Similar Messages

  • Dynamically embed interface view in window

    Hi,
    I am reusing the same WD ALV component in different tabs on the same view
    of my application. The WD framework does not allow to embed the same interface view of the same component usage more than once on the same view -> error message '... is already embedded in your view...'
    So as I don't want to slow down the application and create 5 component usages of the ALV reuse component because of this, I would like to dynamically assign the same
    instance interface view to the currently viewed tab. In each tab, there would be a view
    container to embed the interface view. I tried calling the method below in both wdDoInit and on the plug handler of the default inbound plug, but no success so far
    I implemented the method as far as I understood the saphelp correctly:
    http://aiokeh.wdf.sap.corp:1080/SAPIKS2/contentShow.sap?_CLASS=IWB_EXTHLP&TMP_IWB_TASK=DISPLAY&_LOIO=4C60154219FCE12CE10000000A1550B0&_SLOIO=7C3545415EA6F523E10000000A155106&RELEASE=700&LANGUAGE=EN&_SEQNUM=71&_SCLASS=IWB_STRUCT
    method EMBED_ALV_VIEW .
      data: L_VIEW_CONTROLLER_API type ref to IF_WD_VIEW_CONTROLLER,
      L_VIEW_CONTROLLER_API = WD_THIS->WD_GET_API( ).
    L_VIEW_CONTROLLER_API->PREPARE_DYNAMIC_NAVIGATION(
                  source_window_name          = 'RPM_DASHBOARD_WINDOW'  "embedding app window
                  source_vusage_name          = 'RPM_DASHBOARD_VIEW_USAGE_1' "own local view containing all those tabs
                  source_plug_name            = 'DEFAULT'  " inbound plug for the window above
                  target_component_name       = 'SALV_WD_TABLE' "alv reuse component
                  target_component_usage      = 'SALV_WD_TABLE' "usage name of this component
                  target_view_name            = 'TABLE'  "interface view name of embedded component
                  target_plug_name            = 'DEFAULT' "startup plug for this interface view
                  target_embedding_position   = 'CNT1' ). "own view container on view.
    Thank you for your help!
    CHeers, Robert

    Hi Robert,
    Check out the following:
    In the Wiki they have added a feature about inputfields/dropdownboxes.
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/wdabap/dynamicuseof+Dictionary&
    you can also check the weblogs by Thomas:
    /people/thomas.szcs/blog/2005/12/28/dynamic-programming-in-web-dynpro-abap--introduction-and-part-i-understanding-ui-elements
    /people/thomas.szcs/blog/2006/01/03/dynamic-programming-in-web-dynpro-abap--part-ii-handling-viewelements
    /people/thomas.szcs/blog/2006/02/22/dynamic-programming-in-web-dynpro-abap--part-iii-aggregations-and-ddic-binding-of-viewelements
    You could use MultiPane or RowRepeater. WDR_TEST_EVENTS contains an example for both.
    Hope this will help you.
    Cheers,
    Darshna.

  • Change Button for Interface View is Inactive

    Hi,
    I have created a Web Dynpro ABAP component & application.
    Now I want to add URL parameters to it.
    I went  to interface view, I can see "change" button in menu but its not clickable.
    Any idea why this is happening?
    Thanks and regards,
    Amey

    Hi Amey,
    IF you dont have any interface attributes or methods, there is nothing you can change in Interface View.
    For Adding Parameters, goto your Application to add application parameters in Parameters tab.
    You can chooose from existing set of parameters or Create a new parameter such as TEST1 & any default value like 1 or A etc .
    Now goto your Window method HANDLEDEFAULT & frmo here you can access what value you are getting from the URL Parameter TEST1 by using below code...
    data lv_configid type string.
    lv_configid = wdr_task=>client_window->get_parameter( TEST1' ).
    now IF for your application say zph_test02, if you are running URL as  http://xxxxxx.xx/sap/bc/webdynpro/sap/zph_test02?sap-language=EN&TEST1=2  
    The value lv_configid will have value 2 now when application is launched with that url & parameter  TEST1=2.
    Thanks,
    Phani Mullapudi

  • Regarding navigation from Interface View

    Hi All,
    i am trying to pass data from one component to other component via exposing the interface view controller of second component to 1st component via Used Webdynpro Component concept.
    I am able to navigate from one component view to 2nd component view with the action of fireplug from 1st to 2nd. but i am not able to do
    vise versa.
    What i got, after embedding the 2nd view in the 1st component window, inbound plug is created automatically. If in the same view(embedded interface view) i try to place out bound plug i m not able to do. how to get this navigation from 2nd view to 1st view.
    Please help me out.
    Regards,
    Deepak

    Hi deepak,
    I didnt work on it but giving just an idea....
    till now you did....
    i am trying to pass data from one component to other component via exposing the interface view controller of second component to 1st component via Used Webdynpro Component concept.
    I am able to navigate from one component view to 2nd component view with the action of fireplug from 1st to 2nd. but i am not able to do
    vise versa.
    What i got, after embedding the 2nd view in the 1st component window, inbound plug is created automatically. If in the same view(embedded interface view) i try to place out bound plug i m not able to do. how to get this navigation from 2nd view to 1st view.
    now to do vis versa you have to do all this things for other component. I mean expose 2nd component via Used WD component concept. now embed 1st view in 2nd component window. just reverse of what you did till now.
    and take a view set where in first view area show the first navigation, and in the second view area of view set show the second navigation.
    Am I clear?
    PraDeep

  • Month View makes window disappear

    HI I am wondering about this - I was using iCal and it was working fine, then I cam back to the computer later, and the calendar had disappeared. I quit restarted, repaired permissions, all to no avail.
    What I am finding is that I can see my calendars in Day and Week view, but if I change to month view the window disappears. It also does thew same if I press cmd+3.
    I only use it on one computer, am not syncing to anything. The only that may have been strange was that I was connected to an LC Projector when i was using it, then I disconnected while it was still open. Afterward it doesn't seem to work. But I have also reset the displays to detect that there is not a second monitor, etc.
    I am using a Powerbook G4 17", 1.67GHz, running 10.4.8, and iCal 2.0.4
    I also can't seem to find an updater.
    And just to try - how does one reset iCal to begin with, and not lose all calendars - I've been using it for about 3.5 years (and have the next 8 months scheduled out on it) and haven't had trouble until now, and don't want to lose everything.

    Hi,
    The window positions are kept in your preferences.
    Quit iCal and try moving the com.apple.iCal.plist file in User>Library>Preferences to your Desktop, then re-start iCal. The preference file will be re-created with the default settings, this will not affect the contents of your calendars.
    best wishes
    John M

  • How to dynamically change the text of a TextObject with embedded DataField?

    Hi
    I'm trying to dynamically change the text of a TextObject at runtime, by using the .NET library. My problem is that if one or more DatabaseFieldDefinition is embedded inside my text, I'm unable to change the "static text" only, by keeping the field, e.g. I have :
    Text1 => "Contact Name: {Contact.Name}"
    and I'd like to change it to anything else like:
    Text1 => "Nom du Contact: {Contact.Name}"
    Half of my TextObject is static text while second part comes from the dataset.
    (of course the translation is dynamic - it is called at run-time and the new value to be set depends on the calling application language)
    If I simply modify the Text property of my TextObject, the {Contact.Name} embedded field is not evaluated anymore by the Crystal Engine, but considered as a single text.
    Using formulas or parameters looks quite difficult, because it means having many ones just for translation needs - I cannot control the way my users will create their reports and "force them" to use complex methods just in order to put a text and a value together...
    Anyone knows how to deal with that ?

    Only way I can think of doing this:
    1) Create a formula (call it lang) and enter the string "Contact Name" in it
    2) Place the  {Contact.Name} field next to the string
    3) So now you have:
    ContactName:  {Contact.Name}
    4) Check what localization you are after. If you need "Nom du Contact", change the lang formula so it shows "Nom du Contact" using the code below:
    Imports CrystalDecisions.CrystalReports.Engine
    Imports CrystalDecisions.Shared
    Public Class Form1
    Inherits System.Windows.Forms.Form
    Dim Report As New CrystalReport1()
    Dim FormulaFields As FormulaFieldDefinitions
    Dim FormulaField As FormulaFieldDefinition
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    FormulaFields = Report.DataDefinition.FormulaFields
    FormulaField = FormulaFields.Item(0)
    FormulaField.Text = "[formula text]"
    CrystalReportViewer1.ReportSource = Report
    End Sub
    I realize this may not give you consistent spacing as the translations may have strings of differnt length. Perhaps someone has other idea(s)...

  • Opening Parent DC's View in embeded child DC's  interface view.

    Hi, I have a requirement to open a view/window of a parent webdynpro application from an embeded child DC's interface view.
    Currently i'm doing it by creating a context element for ComponentAPI in interface controller and passing the parents ComponentAPI reference to embeded dc through interface controller context.
    How should I do it without pasing the reference? Is there any way to get parent Applications ComponentAPI in a child DC?

    Hi,
    If I want to add a reference of parent in child DC then the child DC should aware of the parents that are going to use it. Then there is no use of using DC.
    The child dc can be used by any number/type of webdynpro applications and my requiremnt is to get the parent's window at the runtime, not at the desing time.
    Anbu.

  • Dynamically change the Binding of a view object

    I want to reuse a panel several times in my application. The VO has one bind parameter (:1). The same panel should be reused several times with different bind variables.
    I found a technical note concerning this issue called: How to Dynamically Change the binding of a View Object to a JClient Panel. This works for JDeveloper 9i but not for JDeveloper 19g. Does anybody know how to dynamically change the binding in JDeveloper 10g

    You may use bindRowSetIterator() and pass in a custom fetched ViewObject or a RowSetIterator to the iterator binding that is displayed in your panel.

  • Dynamic embedding of view in used component

    Hi All,
    I have a scenario were i have to provide print functionality to all the views of an existing web dynpro component. This component has around 20 views. I have developed a new component for the print functionality were i am using BSP to fire the CTRL+P function.
    But the problem is how do i get the view at runtime in my print component.....?
    I tried passing the view controller reference to the print component through context binding, but i am unable to embed the view through the reference in to the print component view container element.
    Is there any way i can acheive this....???
    Any help will be appreciated..!
    Regards,
    Runal

    hi Runal ,
    have a look at this video presntation for dynamic embedding of views :
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/media/uuid/5cb731e7-0b01-0010-1792-fbe5f55e39d2
    or
    I wud suggest u to procced like this :
    1 In design time , insert all ur views inside ur tansparent container
    2 * initially set all ur view to invisible* , for this :
    Re: Making UI elements visible at runtime based on events.
    a) make a context attribute of type WDUI_VISIBILITY
    b) bind this attribute wid ur view
    c) set the view to invisible by setting the context attribute to '01' using set_attribute method
       DATA lo_nd_cn_visiblesuper TYPE REF TO if_wd_context_node.
        DATA lo_el_cn_visiblesuper TYPE REF TO if_wd_context_element.
        DATA ls_cn_visiblesuper TYPE wd_this->element_cn_visiblesuper.
        DATA lv_ca_visible LIKE ls_cn_visiblesuper-ca_visible.
    *   navigate from <CONTEXT> to <CN_VISIBLESUPER> via lead selection
        lo_nd_cn_visiblesuper = wd_context->get_child_node( name = wd_this->wdctx_cn_visiblesuper ).
    *   get element via lead selection
        lo_el_cn_visiblesuper = lo_nd_cn_visiblesuper->get_element(  ).
    *   get single attribute
        lo_el_cn_visiblesuper->set_attribute(
          EXPORTING
            name =  `CA_VISIBLE`
            value = '01').
    // context attribute CA_VISIBLE under node cn_visible set to invisible
    3 nw based pn ur condition , whn u wanted to do dynamic embedding , at tht time make ur view visible inside ur appropriate method
    this wud do
    rgds,
    amit

  • Smartforms-Dynamic Change of Font Size in main window

    Hi Friends,
       How shall I be able to change dynamically the font size in main window of smartform. If the records are more in main window then the layout comes in 2 pages but if less in 1 page. So I want to decrease the font if the records are more to assign it in 1 page.
    Eg : I can print only 10 lines in 1 page of main window, but if the records exceed 10 lines it is going to next page, so I want to shrink the font size to maintain the layout in 1 page.
    Thanks & Regards,
    Somen
    Edited by: Das_SAP on Jun 23, 2009 7:59 AM

    Hi,
    SmartForms does not offer the option to set some characteristics at runtime. You must work with conditions in your form.
    First find out how many records you have in your table
    DESCRIBE TABLE mytable RECORDS sy-tfill.
    You create 2 texts nodes with the text to be output and assign the font and font size to them. Obviouly, one node will have a big font size and the other one a normal font size but both contain the same information and same variables.
    You can now work with an alternative. If the condition (there are many records for a secondpage) is true, assign text node with normal font size to option TRUE and the other text node to FALSE.
    Optionally, every text node has folder CONDITIONS, where you can say
    SY-TFILL >   10 lines  <-- for text node with normal font size
    SY-TFILL <= 10 lines  <-- for text node with big font size

  • How to change the package name of View or Window

    Hi all,
    i have created the Webdynpro Application.i have some Views and Windows in the WebDynpro Peoject.i want to change the package Names of Views.is it possible???
    thanks in advance
    regards
    Naidu

    Hi Naidu
        Though you rename the package name, the view in that package refers to the old package and hence that view can be used in other views by including the old package name only. Renaming doesn't have significance that you expect. You can create a new package and views in it and copy the implementation of views from the old package to the views in the new package.
    Regards
    Vijayakhanna Raman

  • Change the Show View Options' "All windows" default to "This window only"?

    By default, all Show View Options panes are set to "All windows". Is it possible to change the default to "This window only"?
    I regularly change icon sizes for various folders, but never for all windows. So every time that I use the Show View Options pane, it's an annoying "click This window only" process.
    screen capture of Show View Options pane
    http://aycu01.webshots.com/image/11080/2003481958008021751_rs.jpg
    17" iMac G4, 1GHz PowerPC, 768mb RAM Mac OS X (10.4.9)

    The default is for any window you have not previously opened and set to have All Windows as the default, for List and Icon Views. Once you click This Window Only and make your settings, then every time you open that particular folder it should remain at the This Window setting.
    I find the default of All Windows really really annoying, but I am aware of no way to change this. Send Feedback to Apple:
    http://www.apple.com/macosx/feedback/
    It should be a user settable global preference, but it isn't.
    Francine
    Francine
    Schwieder

  • Dynamically changing windows size

    Hi Folks,
    Is it possible to dynamically change the dimensions of windows i.e. Main and Secondary windows.

    Hi,
    See the fallowing link
    Smart forms - Dynamic sizing of the windows.
    Regards,
    Vijay.

  • Dynamically Changing Labels for Multi Row Block Buttons

    Forms [32 Bit] Version 9.0.4.1.0 (Production)
    Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
    On my local: Windows 7 OS
    I am having a difficult time in doing the following in forms, and not sure if it can be done?
    I have a multi row block,based on DB table, which displays filename and another column from the table.
    It also has a push button on each row, which opens and displays the physical file from its source, when clicked. The filename thus can have 3 diff statuses depending on its sources and accordingly corresponding button should display appropriate label:
    a) View Image (its is in content server and successfully imaged. In this case I display the file in the browser, from the content server, when the button is clicked)
    b) View File (Display the file from file system)
    c) View Error (Display imaging error message from the table, as file failed to make it to the imaging server)
    I have this logic currently coded in the post query trigger, at the block level, and tried using set_item_property(button_id, label, <button_lable>), where I programmatically set the button lable, based on the file status (imaged, not imaged or has error) in that row. This wroks well, only if all the files in the multi row block have the same status. If each of them have diff statuses, then only last processed files's status gets reflected into the button label. For eg: The file in the first row of the block is imaged, and one in the second row has an imaging error. The button label for the first row should say 'View Image' and button for the second row should say 'View Error'. But now buttons for both the rows display 'View Error', as thats what got processed last!
    I __can not use set_item_instance property for 'label'__ (which lets us dynamically change the label on the push buttons).
    Is there any way to do this for ORacle forms? I am now playing with having 3 diff button items in that block, laying them on top of each other and showing only those that are appropriate and hiding the others... But I am not sure it is going to give me what I need? I think I am going to end up facing the same issues as in above case!!
    Any expert advice is highly appreciated.
    Thanks in advance for your time:
    Libran_Girl
    Edited by: libran on Aug 30, 2011 8:04 AM
    Edited by: libran on Aug 30, 2011 8:05 AM

    <p>I have just updated this existing PJC, that was originally constructed to handle Text Fields. You can, now, also handle buttons with it.
    Set the Button's Implementation Class property to : oracle.forms.fd.MultiButton.
    </p>
    This is the code you have to put one triggers of your based block:
    When-New-Record-Instance trigger: (based on the EMP table)
    declare
         LN$Pos  pls_integer ;
         LN$Rec  pls_integer := Get_Block_Property('EMP', CURRENT_RECORD) ;
         LN$Max  pls_integer := Get_Block_Property('EMP', RECORDS_DISPLAYED) ;
         LC$C    Varchar2(15) ;
    Begin     
         LN$Pos :=  LN$Rec - (trunc(LN$Rec/LN$Max) * LN$Max) ;
         If LN$Pos = 0 Then LN$Pos := LN$Max ; End if ;
         If LN$Pos > 0 Then
              Set_Custom_Property('EMP.BT', LN$Pos, 'SET_LOG', 'true' );
              -- Add the new item --
              Set_Custom_Property('EMP.BT', LN$Pos, 'SET_NEW_REC', to_char(LN$Rec) );
              -- Set some properties --
              Set_Custom_Property('EMP.BT', LN$Pos, 'SET_LABEL', to_char(LN$Rec) || ',' || :EMP.ENAME );
              If :EMP.JOB = 'MANAGER' Then
                Set_Custom_Property('EMP.BT', LN$Pos, 'SET_FONT', to_char(LN$Rec) || ',Arial,bold,14' );
                Set_Custom_Property('EMP.BT', LN$Pos, 'SET_FGCOLOR', to_char(LN$Rec) || ',0,0,255' );
              End if ;
              If :GLOBAL.I > 250 Then :GLOBAL.I := 5 ;
              Else  :GLOBAL.I := :GLOBAL.I + 5 ;
              End if ;     
              LC$C := To_Char(LN$Rec) || ','
                   || To_Char(255) || ','
                   || To_Char(255-:GLOBAL.I) || ','
                   || To_Char(255-:GLOBAL.I) ;    
              Set_Custom_Property('EMP.BT', LN$Pos, 'SET_BGCOLOR', LC$C );
              Synchronize;
         End if ;
    end;When-Create-Record trigger:
    declare
         LN$N    pls_integer ;
         LN$Rec  pls_integer := :system.cursor_record ;
         LC$C    Varchar2(15) ;
    Begin     
         if get_block_property('EMP',TOP_RECORD) > 1 Then
              LN$n := :system.cursor_record - get_block_property('EMP',TOP_RECORD) + 1 ;
         else
              LN$N := :system.cursor_record ;
         end if;
         If LN$N > 0 Then
              Set_Custom_Property('EMP.BT', LN$n, 'SET_LOG', 'true' );
              -- Add the new item --
              Set_Custom_Property('EMP.BT', LN$n, 'SET_NEW_REC', to_char(LN$Rec) );
         End if ;
    end;Post-Query trigger:
    declare
         LN$Pos  pls_integer ;
         LN$Rec  pls_integer := Get_Block_Property('EMP', CURRENT_RECORD) ;
         LN$Max  pls_integer := Get_Block_Property('EMP', RECORDS_DISPLAYED) ;
         LC$C    Varchar2(15) ;
    Begin     
         LN$Pos :=  LN$Rec - (trunc(LN$Rec/LN$Max) * LN$Max) ;
         If LN$Pos = 0 Then LN$Pos := LN$Max ; End if ;
         If LN$Pos > 0 Then
              Set_Custom_Property('EMP.BT', LN$Pos, 'SET_LOG', 'true' );
              -- Add the new item --
              Set_Custom_Property('EMP.BT', LN$Pos, 'SET_NEW_REC', to_char(LN$Rec) );
              -- Set some properties --
              Set_Custom_Property('EMP.BT', LN$Pos, 'SET_LABEL', to_char(LN$Rec) || ',' || :EMP.ENAME );
              If :EMP.JOB = 'MANAGER' Then
                Set_Custom_Property('EMP.BT', LN$Pos, 'SET_FONT', to_char(LN$Rec) || ',Arial,bold,14' );
                Set_Custom_Property('EMP.BT', LN$Pos, 'SET_FGCOLOR', to_char(LN$Rec) || ',0,0,255' );
              End if ;
              If :GLOBAL.I > 250 Then :GLOBAL.I := 5 ;
              Else  :GLOBAL.I := :GLOBAL.I + 5 ;
              End if ;     
              LC$C := To_Char(LN$Rec) || ','
                   || To_Char(255) || ','
                   || To_Char(255-:GLOBAL.I) || ','
                   || To_Char(255-:GLOBAL.I) ;    
              Set_Custom_Property('EMP.BT', LN$Pos, 'SET_BGCOLOR', LC$C );
              Synchronize;
         End if ;
    end;Don't forget to copy the multirecord.jar file in your /forms/java folder, then add it to the archive and archive_jini tags of your /forms/server/formsweb.cfg file.
    Enjoy it,
    Francois

  • Add Embed Interface View of a Componenet instance

    In a WebDynpro project (not DC), we create two webDynpro components WA, WB.
    WB is is declared as Used Web Dynpro Components in WA. When we want to embed the interface view, in the pop-out window, we can see the Component Instances node with a "+" , but we can not open the node to select. This case can be reproduced on some machine, but in another machine it works properly.
    We use NW 2004 with SP11, any one know how to solve the problem?

    Hi Robert,
    Check out the following:
    In the Wiki they have added a feature about inputfields/dropdownboxes.
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/wdabap/dynamicuseof+Dictionary&
    you can also check the weblogs by Thomas:
    /people/thomas.szcs/blog/2005/12/28/dynamic-programming-in-web-dynpro-abap--introduction-and-part-i-understanding-ui-elements
    /people/thomas.szcs/blog/2006/01/03/dynamic-programming-in-web-dynpro-abap--part-ii-handling-viewelements
    /people/thomas.szcs/blog/2006/02/22/dynamic-programming-in-web-dynpro-abap--part-iii-aggregations-and-ddic-binding-of-viewelements
    You could use MultiPane or RowRepeater. WDR_TEST_EVENTS contains an example for both.
    Hope this will help you.
    Cheers,
    Darshna.

Maybe you are looking for