Binding Dropdownbykey to child node's attribute dynamically
Hi..
i am creating a child node "CHILD" and attribute attached to it "ATTR" dynamically. Also i create a dynamic dropdownbykey element and trying to attach the ATTR. then i get the following error. zdyn_date is data element with some fixed values. Please let me know as quick as possible.
<b>"Adapter error in DROPDOWN_BY_KEY "KEY1" of view "ZDYN_DDKEY.MAIN": Context binding for property SELECTED_KEY cannot be resolved: The MAIN.1.CHILD node does not contain any elements"</b>
METHOD WDDOMODIFYVIEW .
DATA: LR_ROOT_INFO TYPE REF TO IF_WD_CONTEXT_NODE_INFO,
LR_CHILD_INFO TYPE REF TO IF_WD_CONTEXT_NODE_INFO,
cl_des type REF TO CL_ABAP_ELEMDESCR,
ATTR_INFO TYPE WDR_CONTEXT_ATTRIBUTE_INFO.
LR_ROOT_INFO = WD_CONTEXT->GET_NODE_INFO( ).
CALL METHOD lr_root_info->ADD_NEW_CHILD_NODE
EXPORTING
NAME = 'CHILD'
RECEIVING
CHILD_NODE_INFO = lr_child_info.
ATTR_INFO-NAME = 'ATTR'.
ATTR_INFO-TYPE_NAME = 'ZDYN_DATE'.
CALL METHOD lr_child_info->ADD_ATTRIBUTE
EXPORTING
ATTRIBUTE_INFO = ATTR_INFO.
DATA: LR_ROOT_CONTAINER TYPE REF TO CL_WD_TRANSPARENT_CONTAINER,
LE_DD_KEY1 TYPE REF TO CL_WD_DROPDOWN_BY_KEY.
LR_ROOT_CONTAINER ?= VIEW->GET_ELEMENT( 'ROOTUIELEMENTCONTAINER' ).
CALL METHOD CL_WD_DROPDOWN_BY_KEY=>NEW_DROPDOWN_BY_KEY
EXPORTING
BIND_SELECTED_KEY = 'CHILD.ATTR'
ID = 'KEY1'
RECEIVING
CONTROL = LE_DD_KEY1. .
CALL METHOD CL_WD_MATRIX_LAYOUT=>NEW_MATRIX_LAYOUT
EXPORTING
CONTAINER = LR_ROOT_CONTAINER.
CALL METHOD CL_WD_MATRIX_HEAD_DATA=>NEW_MATRIX_HEAD_DATA
EXPORTING
ELEMENT = LE_DD_KEY1.
CALL METHOD LR_ROOT_CONTAINER->ADD_CHILD
EXPORTING
INDEX =
THE_CHILD = LE_DD_KEY1.
ENDMETHOD.
Hi ,
can u try to create the node and its attribute in some other method..like in some action or in WDDOINIT instead of wddomodifyview .bcoz its recommended not to modify the data of node in wddomodifyview ..
hope it will solve ur problem .
Regards
Yash
Similar Messages
-
How to access parent, child nodes and attributes in XML?
EXAMPLE CODING:
[Embed("assets/Try.xml", mimeType="application/octet-stream")]
private static consTTest:Class;
public static function getTestXML() : XML
var baTest:ByteArrayAsset = ByteArrayAsset( new test() );
var xmlTest:XML = new XML( baTest.readUTFBytes( baTest.length ) );
return xmlTest;
public function SetTest():void
var xml:XML = XMLResource.getTestXML();
var XMLDoc:XMLDocument = parseXML(xml);
var decoder:SimpleXMLDecoder = new SimpleXMLDecoder(true);
var resultObj:Object = decoder.decodeXML(XMLDoc);
trace(resultObj.Roots.Child[0].ChildTitle); //Output: ChildTesting -> CAN GET IT, NO PROBLEM.
QUESTIONS:
(1) How to get the output for
trace(resultObj.Roots.Child[0].Child1.Inside[0].InsideTitle); //GOT ERROR, THE OUTPUT I NEED IS InsideTesting1.
(2) How to get the output for
trace(resultObj.Roots.Child[0].Child1.Inside[0].Tasks.Task[0].TaskTitle); //GOT ERROR, THE OUTPUT I NEED IS TaskTesting1.
Anyone can help me to solve this problem? Thanks.
Regards,
JessieHi.
You have error in Try.xml in row 2:
<Child ... "/>
Delete '/', its end of this child.
This is problem... -
XML E4X Select nodes based on child node attribute.
Hey,
I am trying to make a selection on following XML.
I want to retrieve a list of the variable node when its child nodes metadata attribute "name" is not equal to "transient". I have read through the documentation but have not been able to solve this and it should be rather simple. So far I have tried with something like.
var variables:XMLList = classInfo.variable.(metadata.(@name != "transient"));
var variables:XMLList = classInfo.variable.(metadata.@name != "transient");
But it returns all variable nodes.
<type name="com.sca.dataModel::PresentationDataEntity" base="com.sca.dataModel::BaseEntity" isDynamic="false" isFinal="false" isStatic="false">
<extendsClass type="com.sca.dataModel::BaseEntity"/>
<extendsClass type="Object"/>
<variable name="subtitle" type="String">
<metadata name="__go_to_definition_help">
<arg key="file" value="/Users/jonas/projects/SCA-CMS/src/com/sca/dataModel/PresentationDataEntity.as"/>
<arg key="pos" value="128"/>
</metadata>
</variable>
<variable name="id" type="Number">
<metadata name="__go_to_definition_help">
<arg key="file" value="/Users/jonas/projects/SCA-CMS/src/com/sca/dataModel/BaseEntity.as"/>
<arg key="pos" value="153"/>
</metadata>
</variable>
<variable name="tableName" type="String">
<metadata name="transient"/>
<metadata name="__go_to_definition_help">
<arg key="file" value="/Users/jonas/projects/SCA-CMS/src/com/sca/dataModel/BaseEntity.as"/>
<arg key="pos" value="118"/>
</metadata>
</variable>
<variable name="db_SortAsc" type="Boolean">
<metadata name="transient"/>
<metadata name="__go_to_definition_help">
<arg key="file" value="/Users/jonas/projects/SCA-CMS/src/com/sca/dataModel/BaseEntity.as"/>
<arg key="pos" value="281"/>
</metadata>
</variable>
<variable name="title" type="String">
<metadata name="__go_to_definition_help">
<arg key="file" value="/Users/jonas/projects/SCA-CMS/src/com/sca/dataModel/PresentationDataEntity.as"/>
<arg key="pos" value="100"/>
</metadata>
</variable>
<method name="setData" declaredBy="com.sca.dataModel::BaseEntity" returnType="*">
<parameter index="1" type="Object" optional="false"/>
<metadata name="__go_to_definition_help">
<arg key="file" value="/Users/jonas/projects/SCA-CMS/src/com/sca/dataModel/BaseEntity.as"/>
<arg key="pos" value="330"/>
</metadata>
</method>
<metadata name="__go_to_ctor_definition_help">
<arg key="file" value="/Users/jonas/projects/SCA-CMS/src/com/sca/dataModel/PresentationDataEntity.as"/>
<arg key="pos" value="167"/>
</metadata>
<metadata name="__go_to_definition_help">
<arg key="file" value="/Users/jonas/projects/SCA-CMS/src/com/sca/dataModel/PresentationDataEntity.as"/>
<arg key="pos" value="42"/>
</metadata>
</type>Perfect, that worked!
Thanks.
Jonas -
Dynamic creation of ItemListBox and binding a child node
Hello @all,
I have the following context structure
root
--category
-- --report
-- -- --id
-- -- --name
-- --id
-- --name
the parent node is "category" with attributes "id" and "name" and the child node is "report" with "id" and "name".
Now I want on an onAction-Event of a Button, that for every category an itemListBox will be created with the according report names. the creation of the itemList is not the problem, but the binding of the datasource and/or the descriptivetext.
my code:
public void initItemListBox( )
//@@begin initItemListBox()
IWDView view = wdContext.currentContextElement().getSelectView();
IWDGroup group = (IWDGroup) view.getElement("ItemListGroup");
if (group.hasChildren())
group.removeAllChildren();
for (int i = 0; i < wdContext.nodeCategory().size(); i++)
ICategoryElement catEl = wdContext.nodeCategory().getCategoryElementAt(i);
wdContext.nodeCategory().setLeadSelection(i);
generateItemLists(wdContext.currentContextElement().getSelectView(), wdContext, catEl);
//@@end
public void generateItemLists( com.sap.tc.webdynpro.progmodel.api.IWDView view, de.mgi.portaldev.bc.mdw.msi.wdp.IPrivateCRSReportView.IContextNode wdContext, de.mgi.portaldev.bc.mdw.msi.wdp.IPrivateCRSReportView.ICategoryElement category )
//@@begin generateItemLists()
// ItemListBox
IWDGroup group;
IWDGroup catGroup;
IWDLabel label;
String groupId = "group_" + category.getName();
catGroup = (IWDGroup) view.createElement(IWDGroup.class, groupId);
IWDMatrixLayout matrLayout = (IWDMatrixLayout) catGroup.createLayout(IWDMatrixLayout.class);
String labelId = "label_" + category.getName();
label = (IWDLabel) view.createElement(IWDLabel.class, labelId);
label.setText(category.getName());
IWDMatrixData layout = (IWDMatrixData) label.createLayoutData(IWDMatrixData.class);
layout.setVAlign(WDCellVAlign.TOP);
String itemListId = "itemList_" + category.getName();
IWDItemListBox itemListBox = (IWDItemListBox) view.createElement(IWDItemListBox.class, itemListId);
label.setLabelFor(itemListId);
IWDMatrixData itemlayout = (IWDMatrixData) itemListBox.createLayoutData(IWDMatrixData.class);
itemListBox.bindDescriptiveText("crsReporting.category.report.name");
IWDNodeInfo reportNodeInfo = category.nodeReport().getNodeInfo();
// itemListBox.bindText(reportNodeInfo.getAttribute("name"));
itemListBox.setVisibleItems(5);
IWDMatrixHeadData matrixHead = (IWDMatrixHeadData) itemListBox.createLayoutData(IWDMatrixHeadData.class);
IWDAction itemListAct = (IWDAction) wdThis.wdGetItemSelectAction();
itemListBox.setOnLeadSelect(itemListAct);
// itemListBox.bindDataSource(reportNodeInfo);
itemListBox.bindDataSource("crsReporting.category.report");
catGroup.addChild(label);
catGroup.addChild(itemListBox);
group = (IWDGroup) view.getElement("ItemListGroup");
group.addChild(catGroup);
// END ITEMLIST
//@@end
What am I doing wrong? in every ItemListbox there are only the report names of the last category.
thanks.RowRepeater is available in WD Java since NW CE (7.1). With RowRepeater, the solution is trivial and can be done completely by declaration in view designer.
In earlier releases, you can solve it as follows (non-trivial)
- For each category, create a separate context node "Category_i" with an attribute "name"
- Inside each category node, create a non-singleton node "Reports" with an attribute "name"
- Foreach report, add a node element to the reports subnode of its category node <b>element</b>
All this has to be done using the generic context API.
On each change of the data, reset the context and re-create these nodes.
In wdDoModifyView(), check if data have changes and create UI elements programmatically.
- For each category, create a group, bind header text to category name.
- Inside each group, create a ItemListBox, bind "dataSource" to reports sub-node of category (non-singleton!) and bind "text" to text attribute of report node.
Sample code:
To build context structure:
private void createCategories()
for (int i = 0; i < 3; ++i)
IWDNodeInfo categoryNodeInfo = wdContext.getNodeInfo().addChild("Category" + i, null, true, CMICardinality.ONE, CMICardinality.ONE, true, null);
IWDAttributeInfo att = categoryNodeInfo.addAttribute("name", "ddic:com.sap.dictionary.string");
IWDNode categoryNode = wdContext.getChildNode(categoryNodeInfo.getName(), 0);
categoryNode.getElementAt(0).setAttributeValue(att.getName(), "Category #" + i);
IWDNodeInfo reportNodeInfo = categoryNodeInfo.addChild("Reports", null, false, CMICardinality.MANY, CMICardinality.ZERO_TO_ONE, true, null);
IWDAttributeInfo attReportName = reportNodeInfo.addAttribute("name", "ddic:com.sap.dictionary.string");
IWDNode reportNode = categoryNode.getChildNode("Reports", 0);
for (int j = 0; j < 5; ++j)
IWDNodeElement report = reportNode.createAndAddElement();
report.setAttributeValue("name", "Report #" + j);
To recreate UI:
if (<data_have_changed>)
IWDTransparentContainer root = (IWDTransparentContainer) view.getRootElement();
for (int i = 0; i < 3; ++i)
IWDNode categoryNode = wdContext.getChildNode("Category" + i, 0);
IWDAttributeInfo attName = categoryNode.getNodeInfo().getAttribute("name");
IWDGroup group = view.createElement(IWDGroup.class);
root.addChild(group);
IWDCaption header = view.createElement(IWDCaption.class);
group.setHeader(header);
header.bindText(attName);
IWDNode reportsNode = categoryNode.getChildNode("Reports", 0);
IWDAttributeInfo attReportName = reportsNode.getNodeInfo().getAttribute("name");
IWDItemListBox list = view.createElement(IWDItemListBox.class);
group.addChild(list);
list.bindDataSource(reportsNode.getNodeInfo());
list.bindText(attReportName);
Armin
Fixed code tags -
Need to chart attribute value of just one child node of XML document
I have a XML document with (for example) 7 parent nodes, each
parent node has 5 child nodes. The parent nodes have an attribute
@EarlierDTS (DateTime type) that is the x-axis category of a chart.
Each child node has an attribute @eventid which specifies the id of
the event, and another atttribute @NumOccurs which specifies how
many times that event occured in that period.
How do I tell Flex I want a simple line chart of the eventID
= 215? What if I want two lines, for both eventID=215 and
eventid=307?
I have studied the posts and blogs for over a week now, and
have seen this question or similar come up quite a few places, with
no answer.
1) Should I focus on learning how to create a filterfunction
for the XMLList that underlies my XMLListCollection so that the
filtered data view is just one child node per parent node ( or two
child nodes for the second case)? And set the filtered data view as
the dataprovider of my chart's vertical series?
2) Should I focus on learning how to create a XML Filter
query that selects just one or two child nodes for each parent
node, and set the charts' series' dataprovider to this filter
expression? (I don't think this is allowed - but I'm checking with
the forum members...)
3) Should I focus on learning how to convert the
XMLListCollection into a HierarchicalData object, and then learning
how to filter this object so there is only one (or two) childs per
parent? This seems like a lot of coding - I almost have to create a
pair of classes - one for the parent and one for the child - so I
can create nested ArrayObjects.
4) Should I create a brand new XMLList by walking the
original XML list, and inserting Parent nodes and just the child
nodes that match the eventID(s) I want to chart, into the new
XMLList?
I believe that the easiest way would be to create a
Filterfunction for the XMLList, and bind the chart series to the
(filtered) XML List. But the problem with this approach is that I
have seen more than 2 posts asking how to accomplish filtering that
removes specific children from the view, with no solutions posted.
Help! What is the best way to get just one child for each
parent, from an XMLList?"whertzing" <[email protected]> wrote in
message
news:[email protected]...
>I have a XML document with (for example) 7 parent nodes,
each parent node
>has 5
> child nodes. The parent nodes have an attribute
@EarlierDTS (DateTime
> type)
> that is the x-axis category of a chart. Each child node
has an attribute
> @eventid which specifies the id of the event, and
another atttribute
> @NumOccurs
> which specifies how many times that event occured in
that period.
>
> How do I tell Flex I want a simple line chart of the
eventID = 215? What
> if I
> want two lines, for both eventID=215 and eventid=307?
>
> I have studied the posts and blogs for over a week now,
and have seen this
> question or similar come up quite a few places, with no
answer.
>
> 1) Should I focus on learning how to create a
filterfunction for the
> XMLList
> that underlies my XMLListCollection so that the filtered
data view is just
> one
> child node per parent node ( or two child nodes for the
second case)? And
> set
> the filtered data view as the dataprovider of my chart's
vertical series?
>
> 2) Should I focus on learning how to create a XML Filter
query that
> selects
> just one or two child nodes for each parent node, and
set the charts'
> series'
> dataprovider to this filter expression? (I don't think
this is allowed -
> but
> I'm checking with the forum members...)
>
> 3) Should I focus on learning how to convert the
XMLListCollection into a
> HierarchicalData object, and then learning how to filter
this object so
> there
> is only one (or two) childs per parent? This seems like
a lot of coding -
> I
> almost have to create a pair of classes - one for the
parent and one for
> the
> child - so I can create nested ArrayObjects.
>
> 4) Should I create a brand new XMLList by walking the
original XML list,
> and
> inserting Parent nodes and just the child nodes that
match the eventID(s)
> I
> want to chart, into the new XMLList?
>
> I believe that the easiest way would be to create a
Filterfunction for the
> XMLList, and bind the chart series to the (filtered) XML
List. But the
> problem
> with this approach is that I have seen more than 2 posts
asking how to
> accomplish filtering that removes specific children from
the view, with no
> solutions posted.
>
> Help! What is the best way to get just one child for
each parent, from an
> XMLList?
I'd just look at a dataFunction. There's an example here that
may point you
in the right direction:
http://flexdiary.blogspot.com/2008/08/charting-example.html
HTH;
Amy -
Dynamic Table control with context nodes and attributes?
Hi all
I have node and attributes in context. i want to create table dynamically using this node and attributes, can anyone give code how to do this???
Thanks
Madhan.Hi
Go through this [link|http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/80a3de18-ee00-2d10-bfb3-946d7e00fd91?quicklink=index&overridelayout=true].
Regards
Arun.P -
How To Display attributes of Child Node and Parent Node in same view
Suppose I have two view Carview and CarDetail View...IN Component context I have Parent Node Called Cars and It have its attribute as Price,Warranty,Year and also One Child Node Called as Brand Name Whose attribute are PrimaryBrand and SecondaryBrand..Now If I do Mapping of My First View i.e CarView with Child node of BrandName..and then I Have To Show Whole Detail of Car in CarDetailView.......How Can I Achieve it..
Hi Vinay,
You can map the child node and even the paren tnode to the same view if u want to display in the same window..
If not if ur requirment is to dispaly in the sme view but should not map the child and parent to the Same view then you can take another new view.. and insert 2 view containers and then add the Child view and parent view in that view containers and then Diaplay the newly created view.
Regards,
Raju Bonagiri -
How to access the attribute of child node
Uday,
now i have changed my coding as
lr_node_contacts = wd_context->path_get_node( 'CUSTOMER.CONTACTS' ).
lr_node_contacts->set_attribute( exporting name = 'EMAIL_ID'
value = 'siva.palaniswamy' ).
and trying to bind its value to another table using following code
node->Bind_table( new_items = lr_node_contacts ).
But am getting the syntax error as
LR_NODE_CONTACTS is not compatible with NEW_ITEMS ,,,
thanks,
SivaHi Siva,
When you say bind_table( ) you need to pass the internal table with which you want to bind the context node with. You were above trying to pass the reference of the node instead. Thats the reason for the problem.
So if you want to bind to CONTACTS you should have an internal table like:
data: lt_contacts type ig_componentcontroller=>elements_contacts.
You can then say like:
lr_node_contacts->bind_table( new_items = lt_contacts ).
I guess that you are a beginner trying to learn WebDynpro. Do go through the [document link|https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/60730016-dbba-2a10-8f96-9754a865b814] which I had sent you to get an idea about working with context nodes and attributes.
Regards,
Uday -
Programmatic, using bean add Parent and child nodes in af:tree dynamically
Hi All,
i have to add parent and child nodes dynamically in tree .
Example :
i have created a tree like below.On click of button i will get value A ,from pl/sql function i will A1 and A 2 values.which i have to show in pop as tree.
A
|-----A1
|-----A2
If user clicks on A2.I have to catch A2 value and pass to pl/sql function which gives A2.01 and A2.02 values.
A
|-----A1
|-----A2
|------A2.01
|------A2.02.
A, A1 ,A2,A2.01 ...........values comes from pl/sql funchtion .
thanks in advance ......... any suggestion will greatly helpsno use ......................
-
Xpath: get attributes from first child node
Hi,
I have some problems by getting the attributes from the first child node, if i try to get child elements everything works fine, but whenever i need the elementvalue from a node with attributes i doesn't return anything.
The xpath expression works fine if i want to get the element value from all childs, but not when i just want from one of them.
This one works,
XPathFactory factory1 = XPathFactory.newInstance();
XPath xpath = factory1.newXPath();
xpath.setNamespaceContext(new PersonalNamespaceContext());
XPathExpression expr
= xpath.compile("//default:DeviceExchange[1]/default:Status/text()");
// gets the value of the node picked out
Object result = expr.evaluate(doc, XPathConstants.NODESET);
NodeList nodes = (NodeList) result;
for (int i = 0; i < nodes.getLength(); i++) {
names[i] = nodes.item(i).getNodeValue();
String a = names;
// checks if status is exchanged, if it is sets status to 1
if (a.length() == 9){
names[i] = "1"; }
else{ names[i] = "0";}
System.out.println(names[i]);This doesn'tXPathFactory factory2 = XPathFactory.newInstance();
XPath xpath2 = factory2.newXPath();
xpath2.setNamespaceContext(new PersonalNamespaceContext());
XPathExpression expr2 = xpath2.compile("//default:DeviceExchange[1]/default:Field[@names='MLPKTID']/text()");
Object result2 = expr2.evaluate(doc, XPathConstants.NODESET);
NodeList nodes2 = (NodeList) result2;
for (int i = 0; i < nodes2.getLength(); i++) {
names2[i] = nodes2.item(i).getNodeValue();
System.out.println(names2[i]);}Does anyone have any ideas? I will apreciate all help!
Edited by: fusen on Oct 25, 2007 1:12 AMSorry, solved myself. Just � typo that that i couldn't detect.
-
Child node attributes do not appear in ABAP WD
Hi,
I have the following context hierarchy (in ABAP WD):
-Context
---Child_Node_A
Sub_Child_NodeB
AttributeE_of_Sub_Child_NodeB
AttributeF_of_Sub_Child_NodeB
AttributeG_of_Sub_Child_NodeB
Sub_Child_NodeC
AttributeH_of_Sub_Child_NodeC
AttributeI_of_Sub_Child_NodeC
AttributeJ_of_Sub_Child_NodeC
AttributeA_of_Child_Node_A
AttributeB_of_Child_Node_A
AttributeC_of_Child_Node_A
The attributes A, B, C of Child_Node_A are displayed in an ALV grid and the idea is that when the user selects a row in the ALV grid and clicks on a button, a popup is to be shown with additional details of the selected row in the ALV. In this popup, I have some fields which are mapped to the attributes E, F, G of Sub_Child_NodeB and attributes H, I, J of Sub_Child_NodeC. But when I show the popup the fields are empty.
I use a supply function in the Component Controller to fill Child_Node_A and its children, so typically when the popup appears I should see the attributes of the Sub_Child_Node B and C which are linked to the lead selection of the ALV grid (i.e.: Child_Node_A), right?
By the way, I have linked Child_Node_A from the Component Controller Context to the Context of my Main View and Popup View. Also, I checked in the INIT method of my Main view to see if after the supply function has been called the Sub_Child_Nodes attributes were still there for a given lead selection in the ALV grid and they were. But in my action handler to show the popup window from my Main view, I checked again to see if the Sub_Child_Nodes attributes were still there and they were not.
I hope I was clear enough in my explanation.
Thanks in advance for your help,
ChristianHi Christian,
We discussed this problem offline, but I would like to give some feedback on what we found out.
(a) Since Child_Node_A had a supply function that also supplied Sub_Child_NodeB and since Sub_Child_NodeB was a singleton, it was not resupplied. The initial element originated from having Sub_Child_NodeB as 1..1 cardinality. In this case the runtime recreates an initial node element upon invalidation of the node.
(b) The second problem might be related to the ALV. As the ALV does not support child nodes being present for the data displayed, the assumption is that Sub_Child_NodeB might have been invalidated once the data was copied back from the ALV to Child_Node_A.
The solution is to have a supply function for Sub_Child_NodeB as well, which will counter any invalidation at any point in time and will restore the original data.
I am curious if (b) is really the cause of the problem described.
Best regards,
Thomas -
Sum on child nodes based on attribute value in xslt
Hi all,
Any one can post helpful code to calculate the sum of child nodes based on the attribute value of other child node.
Let's say for example.
I have one child element has attribute value let's say Tax so I have to put condition on child element having value of "Tax" I need to calcualte sum of Invoice amount that element is also child node
After calculating sum I have to apply that sum at the header level of the Invoice. For each Invoice I have calculate sum and apply at the header level.It isn't working :(.Got the following error:
An error was reported compiling the XPath expression: error: XPath expression invalid, not a selection: declare namespace ws = 'http://www.bea.com/wli/sb/transports/ws';
declare namespace tuxedo = 'http://www.bea.com/wli/sb/transports/tuxedo';
declare namespace wsa = 'http://schemas.xmlsoap.org/ws/2004/08/addressing';
declare namespace http = 'http://www.bea.com/wli/sb/transports/http';
declare namespace xsi = 'http://www.w3.org/2001/XMLSchema-instance';
declare namespace wsp = 'http://schemas.xmlsoap.org/ws/2004/09/policy';
declare namespace file = 'http://www.bea.com/wli/sb/transports/file';
declare namespace xsd = 'http://www.w3.org/2001/XMLSchema';
declare namespace soap12-env = 'http://www.w3.org/2003/05/soap-envelope';
declare namespace flow = 'http://www.bea.com/alsb/flow/transport';
declare namespace sftp = 'http://www.bea.com/wli/sb/transports/sftp';
declare namespace sb = 'http://www.bea.com/wli/sb/transports/sb';
declare namespace soap-enc = 'http://schemas.xmlsoap.org/soap/encoding/';
declare namespace ejb = 'http://www.bea.com/wli/sb/transports/ejb';
declare namespace soap-env = 'http://schemas.xmlsoap.org/soap/envelope/';
declare namespace jpd = 'http://www.bea.com/wli/sb/transports/jpd';
declare namespace email = 'http://www.bea.com/wli/sb/transports/email';
declare namespace tp = 'http://www.bea.com/wli/sb/transports';
declare namespace dsp = 'http://www.bea.com/dsp/transport/sb';
declare namespace ctx = 'http://www.bea.com/wli/sb/context';
declare namespace soap12-enc = 'http://www.w3.org/2003/05/soap-encoding';
declare namespace wsu = 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd';
declare namespace jms = 'http://www.bea.com/wli/sb/transports/jms';
declare namespace ftp = 'http://www.bea.com/wli/sb/transports/ftp';
fn:string(./xml-fragment/@IntObjectName). -
Check the value of attribute of a child node in datatype xmltype.
Hello,
I have a xml stored in column having datatype as "XMLTYPE"
<?xml version="1.0" encoding="ISO-8859-1"?>
<Settings>
<Setting Name="A1" Value="N"/>
<Setting Name="A2" Value="N"/>
<Setting Name="A3" Value="SOMEVALUE"/>
<Setting Name="A4" Value="N"/>
<Setting Name="A5" Value="Y"/>
<Setting Name="A6" Value="N"/>
</Settings>I do not want to loop into each child node. But want to find out if the value of setting A5 is Y or N? Is there a way I can find that without doing the extract of "Setting" child node and then looping each node to find the value?
Regards,You didn't specify your version of Oracle so here are two options. If 10.2 or greater, use XMLTable, else use the ExtractValue option.
-- The WITH simply simulates your existing table that I do not have.
WITH fake_tab AS
(SELECT XMLTYPE('<?xml version="1.0" encoding="ISO-8859-1"?>
<Settings>
<Setting Name="A1" Value="N"/>
<Setting Name="A2" Value="N"/>
<Setting Name="A3" Value="SOMEVALUE"/>
<Setting Name="A4" Value="N"/>
<Setting Name="A5" Value="Y"/>
<Setting Name="A6" Value="N"/>
</Settings>
') tab_col
FROM dual)
-- For 10.2 and higher use this SELECT
SELECT a5
FROM fake_tab,
XMLTABLE('/Settings'
PASSING fake_tab.tab_col
COLUMNS
a5 VARCHAR2(10) PATH 'Setting[@Name="A5"]/@Value');
-- For 10.1 and before
SELECT ExtractValue(tab_col, '/Settings/Setting[@Name="A5"]/@Value')
FROM fake_tab; -
ContextException: DataNodeInfo(AdminView): unknown child node IO
Hi all,
I am getting this exception while creating a Web Dynpro application which provides a drop-down menu (containing a list of tables from SQL server) for the user. The user can select a table from the drop-down, and when he clicks Submit, the contents of the table selected has to be displayed.
For this, I am creating a node in the context of the view dynamically and also adding attributes to the node corresponding to the columns of the table selected. I am doing this dynamic creation in the wdModifyView(). I am creating the view layout which displays the table-contents dynamically too.
But when I run the application, I am getting this exception. Following is the complete stack trace,
com.sap.tc.webdynpro.progmodel.context.ContextException: DataNodeInfo(AdminView): unknown child node IO
at com.sap.tc.webdynpro.progmodel.context.Paths.followMetaPath(Paths.java:794)
at com.sap.tc.webdynpro.progmodel.context.Paths.getAttributeInfoFor(Paths.java:234)
at com.sap.tc.webdynpro.clientserver.uielib.standard.uradapter.TableAdapter._getAlignment(TableAdapter.java:11239)
at com.sap.tc.webdynpro.clientserver.uielib.standard.uradapter.TableAdapter._calculateColumnHAlign(TableAdapter.java:12455)
at com.sap.tc.webdynpro.clientserver.uielib.standard.uradapter.TableAdapter.setViewAndNodeElement(TableAdapter.java:398)
at com.sap.tc.webdynpro.clientserver.uielements.adaptmgr.URAdapterManager.getAdapterFor(URAdapterManager.java:285)
at com.sap.tc.webdynpro.clientserver.uielements.adaptmgr.URAdapterManager.getAdapterFor(URAdapterManager.java:93)
at com.sap.tc.webdynpro.clientserver.uielements.adaptbase.AbstractAdapter.getAdapterFor(AbstractAdapter.java:495)
at com.sap.tc.webdynpro.clientserver.uielib.standard.uradapter.FlowLayoutAdapter$Items.getControl(FlowLayoutAdapter.java:368)
at com.sap.tc.ur.renderer.ie6.FlowLayoutRenderer.renderFlowLayoutItemFragment(FlowLayoutRenderer.java:288)
at com.sap.tc.ur.renderer.ie6.FlowLayoutRenderer.renderFlowLayoutFragment(FlowLayoutRenderer.java:244)
at com.sap.tc.ur.renderer.ie6.FlowLayoutRenderer.render(FlowLayoutRenderer.java:49)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:434)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:133)
at com.sap.tc.ur.renderer.ie6.ScrollContainerRenderer.renderScrollContainerFragment(ScrollContainerRenderer.java:619)
at com.sap.tc.ur.renderer.ie6.ScrollContainerRenderer.render(ScrollContainerRenderer.java:74)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:434)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:133)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.UiWindowRenderer.render(UiWindowRenderer.java:52)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:434)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:133)
at com.sap.tc.webdynpro.clientimpl.html.client.HtmlClient.sendHtml(HtmlClient.java:1057)
at com.sap.tc.webdynpro.clientimpl.html.client.HtmlClient.fillDynamicTemplateContext(HtmlClient.java:457)
at com.sap.tc.webdynpro.clientimpl.html.client.HtmlClient.sendResponse(HtmlClient.java:1245)
at com.sap.tc.webdynpro.clientimpl.html.client.HtmlClient.retrieveData(HtmlClient.java:253)
at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doRetrieveData(WindowPhaseModel.java:595)
at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:156)
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:150)
at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:62)
at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:53)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
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:387)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:365)
at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:944)
at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:266)
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(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
Please help...Here it is,
public static void wdDoModifyView(IPrivateAdminView wdThis, IPrivateAdminView.IContextNode wdContext, com.sap.tc.webdynpro.progmodel.api.IWDView view, boolean firstTime)
//@@begin wdDoModifyView
if (firstTime) {
} else {
String[] retString = null;
java.util.ArrayList arList = new java.util.ArrayList();
Context ctx = null;
DataSource ds = null;
String dataSource = "jdbc/WebCASDS";
try {
ctx = new InitialContext();
if (ctx == null) {
wdContext
.wdGetAPI()
.getController()
.getComponent()
.getMessageManager()
.reportSuccess("Error - No Context");
ds = (DataSource) ctx.lookup(dataSource);
if (ds == null) {
wdContext
.wdGetAPI()
.getController()
.getComponent()
.getMessageManager()
.reportSuccess("Error - No dataSource: " + ds);
} catch (ContextException ce) {
wdContext
.wdGetAPI()
.getController()
.getComponent()
.getMessageManager()
.reportSuccess("Inside catch1: Context Exception" + ce);
} catch (Exception e) {
wdContext
.wdGetAPI()
.getController()
.getComponent()
.getMessageManager()
.reportSuccess("DataSource Look up Exception ");
try {
IWDDropDownByKey key =
(IWDDropDownByKey) view.getElement("DropDownByKey");
String TableName1 = key.getSelectedKey();
wdContext
.wdGetAPI()
.getController()
.getComponent()
.getMessageManager()
.reportSuccess("Selected Table : " + TableName1);
Statement stmt = null;
ResultSet rs = null;
ResultSetMetaData rsmtadta = null;
int colCount;
int x = 0;
int i;
String[] colName = null;
String[] colType = null;
String sqlQuery = null;
stmt = conn1.createStatement();
sqlQuery = "select * from " + TableName1 + "";
wdContext
.wdGetAPI()
.getController()
.getComponent()
.getMessageManager()
.reportSuccess("SQL Query:" + sqlQuery);
stmt.execute(sqlQuery);
rs = stmt.executeQuery(sqlQuery);
rsmtadta = rs.getMetaData();
colCount = rsmtadta.getColumnCount();
wdContext
.wdGetAPI()
.getController()
.getComponent()
.getMessageManager()
.reportSuccess("Column Count " + colCount);
colName = new String[colCount + 1];
colType = new String[colCount + 1];
for (i = 1; i <= colCount; i++) {
colName[i - 1] = rsmtadta.getColumnName(i);
colType[i - 1] = rsmtadta.getColumnTypeName(i);
if (colType[i - 1].equalsIgnoreCase("varchar")) {
colType[i - 1] = "ddic:com.sap.dictionary.string";
} else if (colType[i - 1].equalsIgnoreCase("datetime")) {
colType[i - 1] = "ddic:com.sap.tut.wd.languages.myDate";
wdContext
.wdGetAPI()
.getController()
.getComponent()
.getMessageManager()
.reportSuccess("Column Name " + colName[i - 1]);
wdContext
.wdGetAPI()
.getController()
.getComponent()
.getMessageManager()
.reportSuccess("Column Type " + colType[i - 1]);
//Creating a node corresponding to the selected table
IWDNodeInfo rootNodeInfo = wdContext.getNodeInfo();
IWDNodeInfo tableNodeInfo =
rootNodeInfo.addChild(
"TableSelected",
null,
true,
false,
true,
false,
false,
true,
null,
null,
null);
wdContext
.wdGetAPI()
.getController()
.getComponent()
.getMessageManager()
.reportSuccess("After node creation");
//Creating the attributes for the node created.. corresponding to the columns present in the selected table
for (i = 1; i <= colCount; i++) {
tableNodeInfo.addAttribute(colName[i - 1], colType[i - 1]);
wdContext
.wdGetAPI()
.getController()
.getComponent()
.getMessageManager()
.reportSuccess("After attribute creation");
IWDNode tableNode = wdContext.getChildNode("TableSelected", 0);
int rowCount = 0;
while (rs.next()) {
try {
IWDNodeElement tableElement = tableNode.createElement();
wdContext
.wdGetAPI()
.getController()
.getComponent()
.getMessageManager()
.reportSuccess("Inside while before for, element initialized");
for (i = 1; i <= colCount; i++) {
wdContext
.wdGetAPI()
.getController()
.getComponent()
.getMessageManager()
.reportSuccess(
"values1..."
+ rs.getObject(
colName[i - 1].toString()));
for (i = 1; i <= colCount; i++) {
tableElement.setAttributeValue(
colName[i - 1],
rs.getObject(colName[i - 1].toString()));
wdContext
.wdGetAPI()
.getController()
.getComponent()
.getMessageManager()
.reportSuccess("Inside for, element row created");
tableNode.addElement(tableElement);
wdContext
.wdGetAPI()
.getController()
.getComponent()
.getMessageManager()
.reportSuccess("Element created :" + tableElement);
rowCount++;
} catch (ContextException ce) {
wdContext
.wdGetAPI()
.getController()
.getComponent()
.getMessageManager()
.reportSuccess(
"Inside catch2: Context Exception" + ce);
} catch (ClassCastException e) {
wdContext
.wdGetAPI()
.getController()
.getComponent()
.getMessageManager()
.reportSuccess("Class cast exception" + e);
IWDTable table =
(IWDTable) view.createElement(IWDTable.class, null);
IWDNodeInfo tableNodeCreatedInfo = tableNode.getNodeInfo();
table.bindDataSource(tableNodeCreatedInfo);
IWDCaption tableCaption =
(IWDCaption) view.createElement(IWDCaption.class, null);
tableCaption.setText("Table Contents");
table.setHeader(tableCaption);
for (i = 1; i <= colCount; i++) {
IWDTableColumn column =
(IWDTableColumn) view.createElement(
IWDTableColumn.class,
"ColCaption" + i);
IWDCaption caption =
(IWDCaption) view.createElement(
IWDCaption.class,
"TableCaption" + i);
String header = colName[i - 1];
caption.setText(header);
column.setHeader((IWDCaption) caption);
table.addColumn(column);
wdContext
.wdGetAPI()
.getController()
.getComponent()
.getMessageManager()
.reportSuccess("Inside for after creating column header");
// IWDUIElementContainer root =
// (IWDUIElementContainer) view.getRootElement();
// root.addChild(table);
int k = 1;
while (k <= rowCount) {
wdContext
.wdGetAPI()
.getController()
.getComponent()
.getMessageManager()
.reportSuccess("Inside while layout creation after headers are in");
for (i = 1; i <= colCount; i++) {
IWDTableColumn innerColumn =
(IWDTableColumn) view.createElement(
IWDTableColumn.class,
null);
IWDNodeElement nodeElement =
tableNode.getElementAt(k - 1);
String attribValue =
nodeElement.getAttributeAsText(colName[i - 1]);
wdContext
.wdGetAPI()
.getController()
.getComponent()
.getMessageManager()
.reportSuccess(
"Inside inner for, attrib value "
+ attribValue);
IWDTextView nameTextview1 =
(IWDTextView) view.createElement(
IWDTextView.class,
"nameTextview" + k + i);
wdContext
.wdGetAPI()
.getController()
.getComponent()
.getMessageManager()
.reportSuccess("After text-view creation");
nameTextview1.bindText(attribValue);
innerColumn.setTableCellEditor(
(IWDTableCellEditor) nameTextview1);
table.addColumn(innerColumn);
k++;
IWDUIElementContainer root =
(IWDUIElementContainer) view.getRootElement();
root.addChild(table);
} catch (ContextException ce) {
wdContext
.wdGetAPI()
.getController()
.getComponent()
.getMessageManager()
.reportSuccess("Inside catch3: Context Exception" + ce);
} catch (RuntimeException e) {
wdContext
.wdGetAPI()
.getController()
.getComponent()
.getMessageManager()
.reportSuccess("Inside catch : runtime exception" + e);
} catch (SQLException e) {
wdContext
.wdGetAPI()
.getController()
.getComponent()
.getMessageManager()
.reportSuccess("Inside catch : SQL exception" + e);
} catch (Exception e) {
wdContext
.wdGetAPI()
.getController()
.getComponent()
.getMessageManager()
.reportSuccess("..normal exc.." + e);
//@@end -
Creating a Dynamic Node for a Dynamic Graphic - Tutorial
Hi everyone,
I'm sharing my first tutorial, hope it'll be helpful for you.
In the Layout tab, it's possible to create an UI element "Business Graphic". It's a very simple tool that only requires a context node with a category attribute (that means, the values that will appear in the 'x' axis) and one or more series (each one with a color, generally a numerical value). It's possible to add a label for each series for better understanding of the Graphic.
Although it's a very powerful tool, there are some problems when we must create a graphic with N series and different labels. If the graphic use an ALV or internal table to fetch data, during runtime we can have more or less series. The definition of a static node and generic series is not enough in this case. That's why I'd like to present you this little tutorial to create a dynamic node that fetchs a dynamic graph:
In the WDDOINIT or Event Handler method that starts the application (once the data is available) we should create the dynamic node in the following way:
DATA: lr_node_info TYPE REF TO if_wd_context_node_info,
lt_attributes TYPE cl_abap_structdescr=>component_table,
attribute LIKE LINE OF lt_attributes,
struct_type TYPE REF TO cl_abap_structdescr,
lo_dyn_node TYPE REF TO if_wd_context_node.
* Let's suppouse we can LOOP at the data table, so we can fetch the
* category data type (for example company name, month, year, ...)
* and each series with a numeric type
attribute-name = 'CATEGORY'.
attribute-type ?= cl_abap_datadescr=>describe_by_name( 'STRING' ).
INSERT attribute INTO TABLE lt_attributes.
attribute-name = 'SERIE1'.
attribute-type ?= cl_abap_datadescr=>describe_by_name( 'I' ).
INSERT attribute INTO TABLE lt_attributes.
attribute-name = 'SERIE2'.
attribute-type ?= cl_abap_datadescr=>describe_by_name( 'I' ).
INSERT attribute INTO TABLE lt_attributes.
* Once we have all the attributs for the node, we create a formal structure
struct_type = cl_abap_structdescr=>create( lt_attributes ).
* Now we can get the context information to add a new node
lr_node_info = wd_context->get_node_info( ).
* Create the node
lr_node_info = lr_node_info->add_new_child_node(
name = 'GRPH_DYN'
IS_MANDATORY = ABAP_false
IS_MULTIPLE = ABAP_true
STATIC_ELEMENT_RTTI = struct_type
IS_STATIC = ABAP_false ).
* Now we should populates the node, I'll create a hardcoded table,
* simulating the internal table that you should already have
TYPES: BEGIN OF tw_alv,
category TYPE string,
SERIE1 TYPE i,
SERIE2 TYPE i,
END OF tw_alv.
TYPES: tt_alv TYPE STANDARD TABLE OF tw_alv.
DATA: lw_alv TYPE tw_alv,
lt_alv TYPE tt_alv.
lw_alv-category = 'Alfa'.
lw_alv-serie1 = 3.
lw_alv-serie2 = 8.
APPEND lw_alv TO lt_alv.
lw_alv-category = 'Beta'.
lw_alv-serie1 = 4.
lw_alv-serie2 = 4.
APPEND lw_alv TO lt_alv.
lw_alv-category = 'Gamma'.
lw_alv-serie1 = 1.
lw_alv-serie2 = 3.
APPEND lw_alv TO lt_alv.
* Now let's call the recently created node and bind the lt_alv table.
* Get node from context
lo_dyn_node = wd_context->get_child_node( name = 'GRPH_DYN' ).
* Bind table with ALV Container
CALL METHOD lo_dyn_node->bind_table
EXPORTING
new_items = lt_alv.
* It's always good to check if the table was succesfully binded.
* I refresh the lt_alv table and get the values from the node for controlling
REFRESH lt_alv.
lo_dyn_node->get_static_attributes_table( IMPORTING table = lt_alv ).
There are other ways of adding a node structure in the method add_new_child_node, but it works for me only with STATIC_ELEMENT_RTTI. The node is now created and has the data required for the graphic. Now, we should go to WDDOONMODIFYVIEW, or save the target view as a parameter, to create the graphic, bind the category and series and show it on the screen.
DATA: lr_graph TYPE REF TO cl_wd_business_graphics,
lr_cat TYPE REF TO cl_wd_category,
lr_series1 TYPE REF TO cl_wd_simple_series,
lr_series2 TYPE REF TO cl_wd_simple_series,
lr_container TYPE REF TO cl_wd_uielement_container,
lr_flow TYPE REF TO cl_wd_flow_data.
* Get the root element from the Layout or the specific
* container you have created for the graphic
lr_container ?= view->get_element( 'ROOTUIELEMENTCONTAINER' ).
* Creates a line busniess graph
lr_graph = cl_wd_business_graphics=>new_business_graphics(
BIND_SERIES_SOURCE = 'GRPH_DYN'
CHART_TYPE = cl_wd_business_graphics=>e_chart_type-lines
HEIGHT = 340
WIDTH = 750
ID = 'GRAPH' ).
* Create the flow data for the new UI Element business graphic
lr_flow = cl_wd_flow_data=>new_flow_data( element = lr_graph ).
* Set graph in the root container from the Layout tab
lr_container->add_child( lr_graph ).
* Bind the category from the dynamic node to the dynamic graphic
lr_cat = cl_wd_category=>new_category(
view = view
bind_description = 'GRPH_DYN.CATEGORY'
tooltip = 'Company Name' ).
lr_graph->set_category( lr_cat ).
* Bind the two series from the dynamic node to the dynamic graphic
lr_series1 = cl_wd_simple_series=>new_simple_series(
bind_value = 'GRPH_DYN.SERIE1'
label = 'Sales'
view = view
tooltip = 'Average Sales' ).
lr_graph->add_series( lr_series1 ).
lr_series2 = cl_wd_simple_series=>new_simple_series(
bind_value = 'GRPH_DYN.SERIE2'
label = 'Purchases'
view = view
tooltip = 'Average Purchases' ).
lr_graph->add_series( lr_series2 ).
Finally we have created our business graphic. Test the application and you'll see something like the attached image.
Hope you'll find it useful.
Daniel Monteros.Hi,
http://htmldb.oracle.com/pls/otn/f?p=26372
then ApEx>Trees and pick a level.
Use Help for more information.
I you think that tree could help I will put more explanation into help page.
Konstantin
Maybe you are looking for
-
E-mail submit, form sending to wrong address
My e-mail submit button is part of a fragment. It has been working fine on all other forms. The forms are distribute by my default main e-mail account and the "form submit" button is set to a gmail account so that another location and I can share acc
-
I have a new HP 8610 all in one, I am unable to select the "copy" or "Fax" options from the touchscreen. I can see the options on the touchscreen and they appear to be the same as the "scan" options but they just are not activated for me to choose t
-
How can I combine by document on my mac and macbook
Hi, I have recently bought a macbook and I already have a desktop mac. How can I combine my document on both so that I can share stuff THanks Donna
-
I am using Pages from iWork 06. I want to save/turn the file I created in Pages into/as a jpg file. Is this at all possible? Or is there another process first to change it from pdf to jpg. Thank you veedeekay
-
Database Leasing V/s Non data base consensus leasing
We are planning to use Whole Server Migration for a HA weblogic cluster. Our environment has a Highly available database. Do we need to use Database leasing or In-Memory consensus leasing. We are ok to have node manager control server instances and h