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.
zamanhi 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,
nithyaHi
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
ShiviRefer 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,
ShamilaHi 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,
LukeHI 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 -
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,
vilaHi 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 SalverDear 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 PHi 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 -
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: SwapnilKHi 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 bHi 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
-
Hi my MacBook won't start up using guest user and can't get back to my log in
Hi guest user is just buffering and will not cancel
-
SL install seemed to fail - now my MBP can't boot from HD or SL DVD
H E L P. Just bought SL family edition - upgraded my iMac 24 - worked fine so then I tried to upgrade my MBP (2+years old). At first the MBP just ejected the SL DVD - found lots of similar issues on this board. I finally got it working by holding my
-
PASSING DATA FROM FORM INTO REPORT (how to on the same page)
Hello everybody yes, i know it is built in a two pages design where the first holds the form and the second the report, but I want it both on the same page so that one can see what he has on the report while adds his own row to the table. Well I coul
-
Can we put Gradient In UIResource (example: component background) when customizing L&F of Swing components or we're just limited on ColorUIResource for (r,g,b) colors?
-
Will Apple continue to make the 3GS after iPhone 5 release?? or for how long?
I plan on buying another 3GS at the end of November. I hope the phone will still be made and sold - a great phone!