Create Dynamic UI element

Hi Experts,
        i want to create fileupload,dropdown,inputfield,checkbox,,...etc , my requirement is ,when i click one button that time only i want to create  dynamically one ui element,then when i click the second button that time second ui element is created
Please tell me how can i do that,its urgent
Regards,
Sundaresan

hi,
   Create the Ui elements Dybamically in the Domodify Method of the view as
IWDGroup group = (IWDGroup) View.getElement("ID of the Group") ;
IWDInputField input = view.createElement(IWDInputField.class);
       input.setLength(20);
       input.bindValue("DynamicNode.input");
group.addElement(input);
In the Similar way u can create all the Ui elements .
  create a Context Attributr of type WDVisibilty.
Bind the Visible Property of ythe Ui element to this Context Attribute.
finally in the doinit ,method set the First ui element to WDVisibilty.Visible.
and set the visible property of others ui elements to WDVisibilty.none.
finally in the Action of first ui element set the second Second Ui element to WdVisibility.Visisble. and so on.
Thanks and regards,
Fistae

Similar Messages

  • Can't create dynamic html elements with jsp????? important

    Hi All,
    I am having problem creating dynamic html elements with jsp tags, i have tried to use EL and java scriplet, both of them don't work.
    i am trying to create dynamic menu in my "rightMenu.jspf", based on, if user has logged in or not.
    some like this!
    <jsp:if test ="${validUser == null}">
    some simple text menu here
    </jsp:if>
    but it is not working. it simply loading all and images with in statement, regardless of whether user has logged in or not. i think some how if statement is not working properly.
    "validUser" is a session bean, which is not creating at this point, it will created when user will log in successfully. and also this session bean does not exist at the page, where i am trying to check that .
    Is there any way to create dynamic values in jsp. It is really important, is there any body who help me in this matter. i would be really grateful.
    zaman

    hi jaspre,
    thanks for replying me. you know what, is it not something wrong with web.xml file. i remember once, i deleted some from there, a property with "*.jsp". i can't remember what exactly was it though.
    all if statements works on files ending with extension ".jsp" but don't work only on with extension ".jspf". there must be to do with this.
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <servlet>
    <servlet-name>ValidateServlet</servlet-name>
    <servlet-class>ValidateServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>ValidateServlet</servlet-name>
    <url-pattern>/ValidateServlet</url-pattern>
    </servlet-mapping>
    <servlet>
    <servlet-name>dwr-invoker</servlet-name>
    <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
    <init-param>
    <param-name>debug</param-name>
    <param-value>true</param-value>
    </init-param>
    <init-param>
    <param-name>pollAndCometEnabled</param-name>
    <param-value>true</param-value>
    </init-param>
    </servlet>
    <servlet-mapping>
    <servlet-name>dwr-invoker</servlet-name>
    <url-pattern>/dwr/*</url-pattern>
    </servlet-mapping>
    <session-config>
    <session-timeout>
    30
    </session-timeout>
    </session-config>
    <welcome-file-list>
         <welcome-file>
    main.jsp
    </welcome-file>
    </welcome-file-list>
    </web-app>
    if any one can figure it out. i would be grateful.
    zaman

  • How to create dynamic list element in Site Studio designer?

    Hi all,
    I have installed the Site Studio Designer(10gR4).The dynamic list element that i have added in the contributor region executes a query to search and display all the files in a particular folder.In the contributor mode when i try to add/edit the dynamic list element it gives an error saying :
    Unable to perform the action due to the following reasons:
    [+] Unable to retrieve search results. Unable to retrieve search results. Unable to create result set for query 'SELECT IdcColl2.dID, dDocName, dDocTitle, dDocType, dRevisionID, dSecurityGroup, dDocAuthor, dDocAccount, dRevLabel, dFormat, dOriginalName, dExtension, dWebExtension, dInDate, dOutDate, dCreateDate, dPublishType, dRendition1, dRendition2, VaultFileSize, WebFileSize, URL, dFullTextFormat, dFullTextCharset, DocMeta.* FROM IdcColl2, DocMeta WHERE IdcColl2.dID=DocMeta.dID AND (((((( xCollectionID >= 14 AND xCollectionID <= 14 ) AND NOT ( (CONTAINS(xDontShowInListsForWebsites, '{DIPP_Sample}') > 0) )))))) ORDER BY dDocTitle desc'. ORA-20000: Oracle Text error: DRG-10599: column is not indexed
    I have enabled the full-text search on the content server and also included xWebsites and xWebsiteObjectType columns to be full indexed in the Zone Fields Configuration.Is there any other setting to be done?Please help.
    Thanks,
    nithya

    Hi
    Include the xDontShowInListsForWebsites also from the zone filed and then update it.Then test it out.
    Hope it helps
    Srinath

  • Creating Dynamic UI Elements in Web Dynpro ABAP

    Hi,
    I want to an application in which the context nodes and the UI Elements for the second screen get created dynamically at run time based on the input on the first screen
    First i have used this method :
    cl_wd_dynamic_tool=>create_nodeinfo_from_struct()
    to  create the dynamic context nodes.
    I have checked in debugger and the dynamic context node is getting creates successfully.
    I have saved the reference for the context node in DYN_NODE.
    Now for creating the dynamic UI Elements corresponding to the attributes of this context node, i call the method :
    cl_wd_dynamic_tool=>create_form_from_node(
    ui_parent = group_1
    node = dyn_node
    inputlength = 20 ).
    But this thing is dumping.
    This is the dump.
    The following error text was processed in the system CG7 : Adapter error in &VIEW_ELEMENT_TYPE& "BP_ICLIENT" of view "ZWD_ONLINE_FORMS.FINAL_VIEW": Context binding of property VALUE cannot be resolved: Node FINAL_VIEW.1.BP does not contain any elements
    Where BP_ICLIENT is the first attribute of the dynmaic context node BP  created..
    Please Help.
    Thanks
    Shivi

    Refer this wiki :
    https://wiki.sdn.sap.com/wiki/display/WDABAP/CreatingUIElementsDynamicallyinAbapWebdynpro+Application
    More links are available on SDN reg Dynammci UI creations :
    Have a look at the documentation for the WDDOMODIFYVIEW section of the phase model:
    http://help.sap.com/saphelp_nw70ehp1/helpdata/en/d2/8acd409cc4dd50e10000000a1550b0/frameset.htm
    There is also the class CL_WD_DYNAMIC_TOOL:
    http://help.sap.com/saphelp_nw70ehp1/helpdata/en/67/6935425394033be10000000a1550b0/frameset.htm
    Also have a look at the example application DEMODYNAMIC.
    eLearning on the topic here as well:
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/201ddd3b-b4ce-2b10-8883-880ae8147f89
    Edited by: Saurav Mago on Oct 26, 2009 12:23 PM

  • Code to create dynamic context elements

    Dear Guys,
    I have create a dynamic text edit using the following code in abap webdynpro.
    I have created a transparent container named PREREPLY set to grid layout and created a context REPLY type string and in WDDOMODIFYVIEW view i have written the following 
    data : lr_container type ref to cl_wd_uielement_container,
             lr_comment type ref to cl_wd_text_edit.
    lr_container ?= view->get_element( 'PREREPLY' ).
    lr_comment = cl_wd_text_edit=>NEW_TEXT_EDIT( BIND_VALUE = 'REPLY'
                                                                                    COLS = 70
                                                                                    ID = 'PREREPLIES2'
                                                                                    STATE = 01 ).
    lr_comment->BIND_VALUE( 'REPLY' ).
    cl_wd_grid_data=>new_grid_data( element = lr_comment ).
    lr_container->ADD_CHILD( lr_comment ).
    i am able to see a new textedit when i run my application.
    Now I want to create the context also dynamically, because i will not know how many text edit will be there. Based on the number of lines in the internal table i want the create the context and textedits dynamically.
    Give me the code to create context dynamically in abap webdynpro.
    Regards,
    Shamila

    Hi Sharmila,
    Just go through this sample code snippet which does the following.
    1) It dynamically creates a context node named CHILD and then creates 4 attributes ATTR1, ATTR2,..
    2) Creates a GROUP UI element with a caption attached to it
    3) Create 4 textEdit UI elements bound to the 4 context attributes created earlier and embed them within the group
    METHOD wddomodifyview.
      DATA: lr_container TYPE REF TO cl_wd_uielement_container,
            lr_group TYPE REF TO cl_wd_group,
            lr_caption_group TYPE REF TO cl_wd_caption,
            lr_textedit TYPE REF TO cl_wd_text_edit,
            lr_node_info TYPE REF TO if_wd_context_node_info,
            lr_node TYPE REF TO if_wd_context_node,
            lr_element TYPE REF TO if_wd_context_element,
            lr_attribute_info TYPE wdr_context_attribute_info,
            content TYPE string,
            attribute_name TYPE string,
         lv_textview_id TYPE string.
      CHECK first_time = abap_true.
      lr_node_info = wd_context->get_node_info( ).
      CALL METHOD lr_node_info->add_new_child_node
        EXPORTING
          name                         = 'CHILD'
          is_mandatory                 = abap_false
          is_multiple                  = abap_true
          is_multiple_selection        = abap_true
          is_singleton                 = abap_false
          is_initialize_lead_selection = abap_true
          is_static                    = abap_false
        RECEIVING
          child_node_info              = lr_node_info.
      lr_container ?= view->get_root_element( ).
      cl_wd_matrix_layout=>new_matrix_layout( container = lr_container ).
      lr_group = cl_wd_group=>new_group( id = 'GROUP' ).
      lr_group->set_width( value = '50%' ).
      cl_wd_matrix_layout=>new_matrix_layout( container = lr_group ).
      cl_wd_matrix_head_data=>new_matrix_head_data( element = lr_group ).
      lr_caption_group = cl_wd_caption=>new_caption( text = 'Group Header' ).
      lr_group->set_header( the_header = lr_caption_group ).
      DO 4 TIMES.
        MOVE sy-index TO attribute_name.
    ** Preparing the data to be displayed in the textEdit i.e, data for context attribute
        CONCATENATE 'This'
                    'is the'
                    'data for textEdit number: '
                     attribute_name  INTO content SEPARATED BY cl_abap_char_utilities=>newline.
        CONCATENATE 'ATTR'
                    attribute_name INTO attribute_name.
    ** Condense the ID to ensure that the format is consistent with SAP standard
        CONDENSE attribute_name NO-GAPS.
    ** Prepare properties of attribute & add to context node CHILD
        lr_attribute_info-name = attribute_name.
        lr_attribute_info-type_name = 'STRING'.
        lr_attribute_info-value_help_mode = '0'.
        lr_node_info->add_attribute( EXPORTING attribute_info = lr_attribute_info ).
        lr_node = wd_context->get_child_node( name = 'CHILD' ).
        lr_element = lr_node->create_element( ).
        lr_element->set_attribute( name  = attribute_name
                                   value = content ).
        lr_node->bind_element( new_item             = lr_element
                               set_initial_elements = abap_false ).
    ** Compute the attribute path dynamically i.e, like CHILD.ATTR1
        CONCATENATE 'CHILD.'
                    attribute_name INTO attribute_name.
        CONDENSE attribute_name NO-GAPS.
        lr_textedit = cl_wd_text_edit=>new_text_edit( cols  = 10
                                                      rows  = 5
                                                      width = '90%'
                                                      bind_value = attribute_name ).
        cl_wd_matrix_head_data=>new_matrix_head_data( element = lr_textedit ).
        lr_group->add_child( the_child = lr_textedit ).
      ENDDO.
    lr_container->add_child( the_child = lr_group ).
    ENDMETHOD.
    Hope that you can manage to go through this & try change it to suit your requirement.
    Regards,
    Uday

  • How to create the Dynamic UI element table in web dynpro in abap

    Hi All,
    Does anybody have reference note or teach me how to create dynamic UI element table in web dynpro in abap ?
    Regards,
    Luke

    HI LukeWong ,
    for creating any UI dynamically you shoul use their runtime class that always start with cl_wd_* ui element name*
    so for the Table UI element the runtime class is CL_WD_TABLE
    now reffer the below code for creating the Table UI dynamically
    METHOD wddomodifyview.
    DATA lr_table TYPE REF TO cl_wd_table.
    DATA lr_flow_data TYPE REF TO cl_wd_flow_data.
    DATA lr_container TYPE REF TO cl_wd_uielement_container.
    DATA lr_column_name TYPE REF TO cl_wd_table_column.
    DATA lr_text_view TYPE REF TO cl_wd_text_view.
    DATA lr_table_header TYPE REF TO cl_wd_caption.
    DATA lr_column_name_header TYPE REF TO cl_wd_caption.
    IF first_time EQ abap_true.
    lr_container ?= view->get_element( 'ROOTUIELEMENTCONTAINER' ).
    lr_table = cl_wd_table=>new_table(
    id = 'TBL_TABLE'
    bind_data_source = 'TABLE'
    design = cl_wd_table=>e_design-alternating
    visible_row_count = 3
    lr_flow_data = cl_wd_flow_data=>new_flow_data( element =
    lr_table ).
    lr_container->add_child( lr_table ).
    lr_column_name = cl_wd_table_column=>new_table_column(
    id = 'TBL_EXAMPLE_NAME'
    lr_table_header ?= cl_wd_caption=>new_caption( text = 'Table UI elem
    ent - example').
    lr_table->add_column( the_column = lr_column_name ).
    lr_table->set_header( lr_table_header ).
    lr_text_view = cl_wd_text_view=>new_text_view(
    id = 'TXV_NAME'
    bind_text = 'TABLE.NAME'
    lr_column_name_header ?= cl_wd_caption=>new_caption( text = 'Name').
    lr_column_name->set_table_cell_editor( the_table_cell_editor = lr_text_view).
    lr_column_name->set_header( lr_column_name_header ).
    ENDIF.
    ENDMETHOD.
    Regards
    Chinnaiya P
    Edited by: chinnaiya pandiyan on Sep 17, 2010 12:01 PM

  • Dynamic Dictionary Elements

    Hello All,
         Can Anyone help me to create Dynamic Dictionary Element. Runtime, I want to create a Simple Type data element in Dictionary, which can be binded to a RadioGroup ui element. So that Enumeration data can be added Runtime for that dictionary element.
         Is there any Java Docs for WebDynpro SAP packages.
       Help !!!

    Please check the tutorial
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webas/webdynpro/value help in web dynpro applications.pdf
    Regards, Anilkumar

  • How to create dynamic elements in action of a view?

    hi all,
    I created 2 buttons dynamically in WdDoModifyView(). I created  action1, and parameter for that action i.e, id of type string.
    when i click on button1, some ui elements must be displayed.....
    can anyone tell me how to dynamically add UI elements in onAction() of view.....
    i wrote the following code to create & map dynamically in WdDoModifyView()........
    if(firstTime)
        IWDButton b1=(IWDButton)view.createElement(IWDButton.class,"button1");
        b1.setText("Button1");
        IWDButton b2=(IWDButton)view.createElement(IWDButton.class,"button2");
        b2.setText("Button2");
        IWDTransparentContainer tc=(IWDTransparentContainer)view.getElement("RootUIElementContainer");
        tc.addChild(b1);
        tc.addChild(b2);
         IWDButton butt1 = (IWDButton)view.getElement("button1");
         IWDParameterMapping pm1a = butt1.mappingOfOnAction();
         pm1a.addParameter("id1","link1a");
         IWDButton butt2 = (IWDButton)view.getElement("button2");
         IWDParameterMapping pm1b = butt2.mappingOfOnAction();
         pm1b.addParameter("id1","link1b");
    after writing this..... in onAction().........of view... i wrote like this...
    if (id1.equals("link1a"))
    else{
    in the if & else condition, i have to create UI elements dynamically.
    when i am trying to create Ui elements dynamically, but i am unable to create dynamically here.
    pls give me suggestion how to proceed this
    regards,
    vila

    Hi Vila,
    Are you trying to create UI elements dynamically in the action? If yes then you won't be able to do so because you can only create UI elements dynamically in WDDoModifyView().
    Always WDDoModifyView() would be called after your action. So, you can handle it as you want in your WDDoModifyView() itself.
    But if you want that those elements should be created everytime when you fire an event then don't write it within if(firstTime) clause as this would be true only when WDDoModifyView() is called for the first time when the page intially loads.
    Regards,
    Murtuza

  • Error when trying to create a Dynamic UI Element(DropDownByKey)

    Dear All,
    I am trying to create a Dynamic UI element(dropdownbykey) .
    I used the following code which i wrote in domodify:
    if (firstTime)
    IWDTransparentContainer thetransparent =(IWDTransparentContainer)view.getElement("AttributeDynamic_TransparentContainer");
    IWDNodeInfo node = wdContext.getNodeInfo().addChild(
      "DynamicNode",null,true,true,false,true,false,true,null,null,null);
                              IWDAttributeInfo attr1=node.addAttribute("attrib00","ddic:com.sap.dictionary.string");
    IWDAbstractDropDownByKey Sizedropdown=(IWDAbstractDropDownByKey)view.createElement(IWDAbstractDropDownByKey.class,null);
    Sizedropdown.bindSelectedKey(attr1);
    thetransparent.addChild(Sizedropdown);
    When i deployed it i got the following error:
    com.sap.tc.webdynpro.services.exceptions.CreationFailedException: Cannot create view element implementation com.sap.tc.webdynpro.clientserver.uielib.standard.api.IWDAbstractDropDownByKey
    Can anyone please help me in this regard.
    Thanks and Regards
    Nishita Salver

    Dear All,
    Thanks for ur quick reply below is the entire error chain:
    com.sap.tc.webdynpro.services.exceptions.CreationFailedException: Cannot create view element implementation com.sap.tc.webdynpro.clientserver.uielib.standard.api.IWDAbstractDropDownByIndex
         at com.sap.tc.webdynpro.progmodel.view.ViewElementFactory.createElement(ViewElementFactory.java:161)
         at com.sap.tc.webdynpro.progmodel.view.View.createElement(View.java:177)
         at com.sap.satyam.dynamic_attrapp.Dynamic_attrAppView.wdDoModifyView(Dynamic_attrAppView.java:184)
         at com.sap.satyam.dynamic_attrapp.wdp.InternalDynamic_attrAppView.wdDoModifyView(InternalDynamic_attrAppView.java:364)
         at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.doModifyView(DelegatingView.java:78)
         at com.sap.tc.webdynpro.progmodel.view.View.modifyView(View.java:337)
         at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.doModifyView(ClientComponent.java:481)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doModifyView(WindowPhaseModel.java:551)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:148)
         at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:335)
         at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:143)
         at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:321)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessingStandalone(ClientSession.java:713)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:666)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:250)
         at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:149)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:62)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doGet(DispatcherServlet.java:46)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:386)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:364)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:1039)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:265)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(AccessController.java:207)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:102)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:172)
    Caused by: java.lang.NoSuchMethodException
         at java.lang.Class.getConstructorImpl(Native Method)
         at java.lang.Class.getConstructor(Class.java:554)
         at com.sap.tc.webdynpro.progmodel.view.ViewElementFactory.createElement(ViewElementFactory.java:150)
         at com.sap.tc.webdynpro.progmodel.view.View.createElement(View.java:177)
         at com.sap.satyam.dynamic_attrapp.Dynamic_attrAppView.wdDoModifyView(Dynamic_attrAppView.java:184)
    Thanks and Regards,
    Nishita

  • Problem in Dynamically create Group ui element

    Hi everyone,
    I was trying to create group UI element  dynamically in Webdynpro ABAP. I was getting Error :Access via 'NULL' object reference not possible.
    I have gone through the following procedure
    Create component with window and view
    In view layout Method: WDDOMODIFYVIEW and done the following code
      Source Code
    if first_time  = ABAP_TRUE.
    data:lr_container type REF TO CL_WD_UIELEMENT_CONTAINER,
          lr_flowdata TYPE REF TO cl_wd_flow_data,
          lr_group TYPE REF TO cl_wd_group,
          object type REF TO IF_WD_VIEW_ELEMENT.
    CALL METHOD view->get_root_element
       receiving
         root_view_element = object.
    lr_container ?= object.
    CALL METHOD cl_wd_group=>new_group
       EXPORTING
         design                   = 01
         enabled                  = ABAP_TRUE
         has_content_padding      = ABAP_TRUE
         id                       = 'GRP1'
         view                     = VIEW
         visible                  = 02
       receiving
         control                  = lr_group.
    CALL METHOD lr_container->add_child
       EXPORTING
         the_child = lr_group.
    CALL METHOD cl_wd_flow_data=>new_flow_data
       EXPORTING
         element     = lr_group
       receiving
         control     = lr_flowdata.
    endif.
    To get Group ui element dynamically what i have to do rather than the above code
    Thanks in Advance
    Sreenivas P

    Hi Sreenivas,
    Try to debug and find what line the error occurs and return it to us.
    If the error occurs in
    CALL METHOD view->get_root_element
       receiving
         root_view_element = object.
    or in
    lr_container ?= object.
    you will need to check content of object.
    Best regards

  • How to create an UI element dynamically on action in drop down?

    Hi,
    How to create an UI element dynamically on action of selecting a value from the  drop down?
    help out with the steps i need to follow..

    Hi,
    <u><i><b>Dynamic UI Element creation</b></i></u>
    We can create it only in the WD Modify View.
    Get the instance for the Root UI Element Container.
    Create the UI element Ex: Input Field, Text View etc.
    Bind the UI Element to the Attribute Value.
    Now bind the UI Element to the Root UI Element Container.
              IWDTransparentContainer root =(IWDTransparentContainer)view.getRootElement();
              IWDDropdownByIndex DdbName = (IWDDropdownByIndex)view.createElement(IWDDropdownByIndex.class,"DdbName");
              IWDDropdownByIndex DdbAge = (IWDDropdownByIndex)view.createElement(IWDDropdownByIndex.class,"DdbAge");
              IWDDropdownByIndex DdbGender = (IWDDropdownByIndex)view.createElement(IWDDropdownByIndex.class,"DdbGender");
              IWDNode Mad =wdContext.getChildNode("Person",0);
              IWDAttributeInfo NameAtt = Mad.getNodeInfo().getAttribute("Name");
              IWDAttributeInfo AgeAtt = Mad.getNodeInfo().getAttribute("Age");
              IWDAttributeInfo GenderAtt = Mad.getNodeInfo().getAttribute("Gender");
              DdbName.bindValue(NameAtt);
              DdbAge.bindValue(AgeAtt);
              DdbGender.bindValue(GenderAtt);
              root.addChild(DdbName);     
              root.addChild(DdbAge);
              root.addChild(DdbGender);
    <u><i><b>Dynamic Action Creation</b></i></u>
    Create the Action in the Action tab.
    Create a Button.
    Get the reference for the created action (Through the Event Handler).
    Bind the Action to the Button.
    Bind the Button to the Root UI element Container.
    IWDButton ButGo = (IWDButton)view.createElement(IWDButton.class,"ButGo");
    IWDAction ActGo = wdThis.wdCreateAction(IPrivateStartView.WDActionEventHandler.GO,"Click");
    ButGo.setOnAction(ActGo);
    root.addChild(ButGo);
    Now write the required code for the Event Handler that is associated with the Action.
    //@@begin onActionGo(ServerEvent)
        IWDNode Mad = wdContext.getChildNode("Person",0);
         wdComponentAPI.getMessageManager().reportSuccess(Mad.getCurrentElement().getAttributeAsText("Name"));
         wdComponentAPI.getMessageManager().reportSuccess(Mad.getCurrentElement().getAttributeAsText("Age"));
         wdComponentAPI.getMessageManager().reportSuccess(Mad.getCurrentElement().getAttributeAsText("Gender"));
    //@@end
    Regards
    SURYA

  • How to create a dynamic RTF report which creates dynamic columns based on dynamic column selection from a table?

    Hi All,
    Suppose I have table, whose structure changes frequently on daily basis.
    For eg. desc my_table gives you following column name on Day 1
    SQL > desc my_table;
    Output
    Name
    Age
    Phone
    On Day 2, two more columns are added, viz, Address and Salary.
    SQL > desc my_table;
    Output
    Name
    Age
    Phone
    Address
    Salary
    Now I want to create an Dynnamic RTF report which would fetch data from ALL columns from my_table on daily basis. For that I have defined a concurrent program with XML as output type and have attached a data template/data definition to it which takes in XML as input and gives final output of conc program in EXCEL layout. I am able to do this for constant number of columns, but dont know how to do it when the number of columns to be displayed changes dynamically.
    For Day 1 my XML file should be like this.
    <?xml version="1.0" encoding="UTF-8"?>
    <dataTemplate name="XYZ" description="iExpenses Report" Version="1.0">
    <dataQuery>
    <sqlStatement name="Q2">
    <![CDATA[
    SELECT Name
    ,Age
    ,Phone
    FROM my_table
    ]]>
    </sqlStatement>
    </dataQuery>
    <dataStructure>
    <group name="G_my_table" source="Q2">
      <element name="Name" value="Name" />
      <element name="Age" value="Age" />
      <element name="Phone" value="Phone" />
    </group>
    </dataStructure>
    </dataTemplate>
    And my Day 1, EXCEL output from RTF template should be like this.
    Name     Age     Phone
    Swapnill     23     12345
    For Day 2 my XML file should be like this. With 2 new columns selected in SELECT clause.
    <?xml version="1.0" encoding="UTF-8"?>
    <dataTemplate name="XYZ" description="iExpenses Report" Version="1.0">
    <dataQuery>
    <sqlStatement name="Q2">
    <![CDATA[
    SELECT Name
    ,Age
    ,Phone
    ,Address
    ,Salary
    FROM my_table
    ]]>
    </sqlStatement>
    </dataQuery>
    <dataStructure>
    <group name="G_my_table" source="Q2">
      <element name="Name" value="Name" />
      <element name="Age" value="Age" />
      <element name="Phone" value="Phone" />
      <element name="Address" value="Address" />
      <element name="Salary" value="Salary" />
    </group>
    </dataStructure>
    </dataTemplate>
    And my Day 2, EXCEL output from RTF template should be like this.
    Name     Age     Phone     Address     Salary
    Swapnill     23     12345         Madrid     100000
    Now, I dont know below things.
    Make the XML dynamic as in on Day 1 there must be 3 columns in the SELECT statement and on Day 2, 5 columns. I want to create one dynamic XML which should not be required to be changed if new columns are added in my_table. I dont know how to create this query and also create their corresponding elements below.
    Make the RTF template dyanamic as in Day1 there must 3 columns in EXCEL output and on Day 2, 5 columns. I want to create a Dynamic RTF template which would show all the columns selected in Dynamic XML.I dont know how the RTF will create new XML tags and how it will know where to place it in the report. Means, I can create RTF template on Day 1, by loading XML data for 3 columns and placing 3 XML tags in template. But how will it create and place tags for new columns on Day 2?
    Hope, you got my requirement, its a challenging one. Please let me know how I can implement the required solution using RTF dynamically without any manual intervention.
    Regards,
    Swapnil K.
    Message was edited by: SwapnilK

    Hi All,
    I am able to fulfil above requirement. Now I am stuck at below point. Need your help!
    Is there any way to UPDATE the XML file attached to a Data Definition (XML Publisher > Data Definition) using a standard package or procedure call or may be an API from backend? I am creating an XML dynamically and I want to attach it to its Data Definition programmatically using SQL.
    Please let me know if there is any oracle functionality to do this.
    If not, please let me know the standard directories on application/database server where the XML files attached to Data Definitions are stored.
    For eg, /$APPL_TOP/ar/1.0/sql or something.
    Regards,
    Swapnil K.

  • Error while creating dynamic Table

    Hi All,
    I have a node 'SEG' with 3 attributes, ATTR1.2.3, I am tring to crate dynamic table using this context node. Initialy i am displaying view with button, when click on this button i want to create table dynamically.. if click again one more table i have to create.. its giving dump... here is the code... How to do this???
    data: wd_node_info type ref to if_wd_context_node_info,
            wd_node type ref to if_wd_context_node,
            lr_container type ref to cl_wd_uielement_container,
            lv_tablename type string,
            lt_db_data type ref to data,
            lr_table type ref to cl_wd_table.
      field-symbols: <lt_data> type any table.
      wd_node_info = wd_context->get_node_info( ).
      wd_node = wd_context->get_child_node( name = 'SEG' ).
    lr_container ?= view->get_root_element( ).
      cl_wd_matrix_layout=>new_matrix_layout( container = lr_container ).
    " Creating internal table with the same structure as our dynamic
      context node
      CALL METHOD CL_WD_DYNAMIC_TOOL=>CREATE_TABLE_FROM_NODE
        EXPORTING
          UI_PARENT = lr_container
          TABLE_ID  = 'MY_TABLE'
          NODE      = wd_node
        RECEIVING
          TABLE     = lr_table.
      cl_wd_matrix_data=>new_matrix_data( element = lr_table ).
      lr_table->bind_data_source( path = 'SEG' ).
    Thanks'
    Madhan.

    Hi Sarbjeet,
    The code is working fine, when i use in wddomodify view method without button click on first time.( I checked this by creating another component). But I am creating dynamic table when click on button(view contains one button initially), for this i created two attributes FLAG OF TYPE wdy_boolean and count of type int1. and in button action i write this code :
      DATA lo_el_context TYPE REF TO if_wd_context_element.
        DATA ls_context TYPE wd_this->element_context.
        DATA lv_flag LIKE ls_context-flag.
      get element via lead selection
        lo_el_context = wd_context->get_element( ).
      get single attribute
        lo_el_context->set_attribute(
            name =  `FLAG`
            value = abap_true ).
      DATA lv_count LIKE ls_context-count.
    get element via lead selection
      lo_el_context = wd_context->get_element(  ).
    get single attribute
      lo_el_context->get_attribute(
        EXPORTING
          name =  `COUNT`
        IMPORTING
          value = lv_count ).
    lv_count = lv_count + 1.
    lo_el_context->set_attribute(
        EXPORTING
          name =  `COUNT`
          value = lv_count ).
    and in wddomodify view method following code..
    Method WDDOMODIFYVIEW
    DATA lo_el_context TYPE REF TO if_wd_context_element.
      DATA ls_context TYPE wd_this->element_context.
      DATA lv_flag LIKE ls_context-flag.
      get element via lead selection
        lo_el_context = wd_context->get_element(  ).
      get single attribute
        lo_el_context->get_attribute(
          EXPORTING
            name =  `FLAG`
          IMPORTING
            value = lv_flag ).
      DATA lv_count LIKE ls_context-count.
    get element via lead selection
      lo_el_context = wd_context->get_element(  ).
    get single attribute
      lo_el_context->get_attribute(
        EXPORTING
          name =  `COUNT`
        IMPORTING
          value = lv_count ).
    if lv_flag = abap_true. ......
    Remaining code same post previously************8
    get element via lead selection
      lo_el_context = wd_context->get_element(  ).
    get single attribute
      lo_el_context->set_attribute(
        EXPORTING
          name =  `FLAG`
          value = abap_false ).
    endif.
    endmethod...
    I created like this i am not getting other UI elements(input, ddbykey,button).
    And if i click view button again it going to dump..
    Thanks,
    Madhan.

  • Dynamic layout elements determination logic for output of Pro-Forma Invoice

    This is my requirement below. Please give the suggestion    
    Business requires output to be generated in name of the client, with client logo and scenario specific data elements. To do this in Standard SAP will require to define hundreds and hundreds of layouts. By making most of the client/scenario elements on the layout we can greatly reduce the number of required layouts and reduce implementatuion effort and lead-time.
         The goal is to define a generic table that will hold most of the dynamic layout elements for different document types and countries, including logo, sender address etc.
          For this we will create Z-versions of the output types BA00 ( Order Confirmation, ZPRI (Pro-Forma Invoice) and RD00 (ZD00 Invoice).The layout text blocks will be permanently fixed.The print Program user-exit should call the Z-table that holds the dynamic layout elements and retrieve these elements and merge them with the matching layout text block.
    Message was edited by: janardhan b

    Hi Janardhan,
       Even I have faced the similar situation.but what we have done is instead of calling the dynamic text elements..Why don't we call the text elements based on the required condition ,Then u dont have to maintain all the text elements required in the table.In the table we can only have the doumnent type,client name,logo name and address.
    In the print program if u r using script layout then call the required text elements (write_text) based on the client name and document type that is fetched from the Z-table,Otherwise if u r going for smartforms then with in the layout give the condition under the conditions node of the window or the text.

  • How to create a context element

    Hai,
    How can i create a context element for a view dynamically.
    regards,

    Hi,
    Context element or context attribute?
    For context element use appropriate method in your IWDNode implementation and after creation call add method of node.
    For context attribute - see appropriate tutorial :  https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webdynpro/tutorial on dynamic programming of web dynpro applications - 17.htm
    Best regards, Maksim Rashchynski.

Maybe you are looking for