<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7324814375554779368</id><updated>2012-02-16T00:29:52.312-08:00</updated><title type='text'>Oracle APEX ideas</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ddanoracleapexblog.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7324814375554779368/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ddanoracleapexblog.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>DDan</name><uri>http://www.blogger.com/profile/15647243816992673028</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7324814375554779368.post-6351111513722750350</id><published>2008-10-16T07:25:00.000-07:00</published><updated>2008-10-17T01:39:45.280-07:00</updated><title type='text'>Why "#OWNER#" in APEX interactive report ??</title><content type='html'>The default APEX generated interactive report has "#OWNER#" instead of the schema name...&lt;br /&gt;&lt;br /&gt;Now, I'm not sure how that helps and this might be a bug as I cannot seem to be able to calculate any other columns (by using the COMPUTE feature of the interactive report). I kept getting this message:&lt;br /&gt;"Invalid computation expression. ORA-00942: table or view does not exist".&lt;br /&gt;&lt;br /&gt;When I removed the "#OWNER#.", miraculously the COMPUTE feature started working.&lt;br /&gt;&lt;br /&gt;hmmm... this sure is one of the mysteries of APEX....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7324814375554779368-6351111513722750350?l=ddanoracleapexblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ddanoracleapexblog.blogspot.com/feeds/6351111513722750350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7324814375554779368&amp;postID=6351111513722750350' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7324814375554779368/posts/default/6351111513722750350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7324814375554779368/posts/default/6351111513722750350'/><link rel='alternate' type='text/html' href='http://ddanoracleapexblog.blogspot.com/2008/10/why-owner-in-apex-interactive-report.html' title='Why &quot;#OWNER#&quot; in APEX interactive report ??'/><author><name>DDan</name><uri>http://www.blogger.com/profile/15647243816992673028</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7324814375554779368.post-6650064792970986723</id><published>2008-10-16T02:07:00.000-07:00</published><updated>2008-10-16T03:55:39.676-07:00</updated><title type='text'>Linking in between tree #DRILL_DOWN#</title><content type='html'>&lt;div align="justify"&gt;This post is an addon to my previous post: &lt;a href="http://ddanoracleapexblog.blogspot.com/2008/10/customizing-oracle-apex-tree.html"&gt;Customizing APEX trees&lt;/a&gt;. &lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;The previous post was pretty much complete EXCEPT (offcourse there's an exception) for the cases when the user was expanding or collapsing the tree !&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;To interfere with the process of expanding or collapsing the tree (we will generically define this as drilling from now on in this page) we need to take a look in the tree definition page at the Dynamic templates section.&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;We can find there, this tiny piece of info that looks like:&lt;/div&gt;&lt;div align="center"&gt;a href="#DRILL_DOWN#"&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;This is where the linking is made, and the #DRILL_DOWN# string contains everything we need: the method (expand or contract) and the node id that has to be applied that method.&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;So, as we did before, we can put a call to a Javascript instead of the direct link, append all our form field values to the link and only afterwards we can redirect the page...&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;Instead of the above, we can therefore have something like:&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="center"&gt;a href="javascript:treeDrilling('#DRILL_DOWN#');"&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;And in the treeDrilling we can easily redo everything we have done in the previous tutorial with the persistFormData function ...&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;Maybe the only thing that one may note there is the format of the #DRILL_DOWN# string, which is obviously a link like:&lt;/div&gt;&lt;div align="center"&gt;f?p=&amp;amp;APP_ID.:7:&amp;amp;APP_SESSION.:EXPAND,NODE_ID&lt;/div&gt;&lt;div align="center"&gt;OR&lt;/div&gt;&lt;div align="center"&gt;f?p=&amp;amp;APP_ID.:7:&amp;amp;APP_SESSION.:CONTRACT,NODE_ID&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;The expand and contract commands are given inside the APEX link, just after the session id, AND we can still append to the above the values of our form data !!&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;Once again - I hope this helps !&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7324814375554779368-6650064792970986723?l=ddanoracleapexblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ddanoracleapexblog.blogspot.com/feeds/6650064792970986723/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7324814375554779368&amp;postID=6650064792970986723' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7324814375554779368/posts/default/6650064792970986723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7324814375554779368/posts/default/6650064792970986723'/><link rel='alternate' type='text/html' href='http://ddanoracleapexblog.blogspot.com/2008/10/linking-in-between-tree-drilldown.html' title='Linking in between tree #DRILL_DOWN#'/><author><name>DDan</name><uri>http://www.blogger.com/profile/15647243816992673028</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7324814375554779368.post-9117976109578040274</id><published>2008-10-16T00:26:00.000-07:00</published><updated>2008-10-16T01:32:42.115-07:00</updated><title type='text'>Customizing an Oracle APEX tree</title><content type='html'>The following have been tested and used in Oracle 10g rev2 with APEX 3.1 installed.&lt;br /&gt;&lt;br /&gt;One may find it difficult to work with the standard Oracle APEX tree, but with a few small tweaks you can surely do what you want.&lt;br /&gt;&lt;br /&gt;Prerequisites:&lt;br /&gt;Please check how a standard Oracle APEX tree is done here:&lt;br /&gt;&lt;a href="http://www.oracle.com/technology/products/database/application_express/howtos/howto_tree.html"&gt;http://www.oracle.com/technology/products/database/application_express/howtos/howto_tree.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So, here's the hypothesis of the problem:&lt;br /&gt;- We want to have a tree next to or inside an APEX form.&lt;br /&gt;- There is one tree node that is currently highlighted and the user can select/highligth other nodes as he/she wants WITHOUT interfering and/or loosing the form data typed.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Lets proceed to the demonstration:&lt;br /&gt;&lt;br /&gt;The second idea included in the hypothesis is pretty much easy to solve, provided that one may find this other link:&lt;br /&gt;&lt;a href="http://www.inside-oracle-apex.com/2007/06/highlight-current-tree-node.html"&gt;http://www.inside-oracle-apex.com/2007/06/highlight-current-tree-node.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now that we solved half the problem, we may want to solve this "nasty" bug: keeping/persisting the form data as the tree is browsed.&lt;br /&gt;&lt;br /&gt;To do that, we first need to be perfectly knowledgeable of the format that APEX uses for its links:&lt;br /&gt;&lt;a href="http://gitb.it.lt/i/doc/concept_url_link.htm"&gt;http://gitb.it.lt/i/doc/concept_url_link.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;But how does that help ?&lt;br /&gt;&lt;br /&gt;Well, from the above page about APEX links, we can find out that we could pass on variables through the link (basicly using HTTP GET vars), but how to do that from the tree ?&lt;br /&gt;&lt;br /&gt;We can use Javascript and do the following:&lt;br /&gt;&lt;br /&gt;instead of linking the tree directly to a submit link, we could use an intermediary call to a Javascript that reformats the link and then submits the page with the form variables data included in the link ! This will give us the data persistance that we need.&lt;br /&gt;&lt;br /&gt;A small example:&lt;br /&gt;&lt;br /&gt;select CURRENT_TREE_NODE_ID id,&lt;br /&gt;       NODE_PARENT_ID pid,&lt;br /&gt;       CASE when CURRENT_TREE_NODE_ID = :CURRENT_FORM_ITEM THEN&lt;br /&gt;    '&lt;span style="color:white;background-color:blue;"&gt;'LEAF_INFO'&lt;/span&gt;'&lt;br /&gt;       ELSE LEAF_INFO END name,&lt;br /&gt;     'javascript:persistFormData('CURRENT_TREE_NODE_ID');' LINK,&lt;br /&gt;       null a1,&lt;br /&gt;       null a2&lt;br /&gt;from TREE_DATA&lt;br /&gt;&lt;br /&gt;and we can now put the persistFormData function inside the header or even a separate region:&lt;br /&gt;&lt;br /&gt;function persistFormData(passVal1)&lt;br /&gt;  {&lt;br /&gt;   var link1,link2;&lt;br /&gt;&lt;br /&gt;   link1 ='f?p=&amp;amp;APP_ID.:1:&amp;amp;APP_SESSION.::NO::CURRENT_TREE_NODE_ID;&lt;br /&gt;   link2 = ':'+passVal1;&lt;br /&gt;  &lt;br /&gt;   link1=link1+',FIRST_FORM_ITEM';&lt;br /&gt;   link2=link2+',%5C'+encodeURIComponent(document.getElementById('FIRST_FORM_ITEM').value)+'%5C';&lt;br /&gt;  &lt;br /&gt;   link1=link1+',SECOND_FORM_ITEM';   link2=link2+',%5C'+encodeURIComponent(document.getElementById('SECOND_FORM_ITEM').value)+'%5C';&lt;br /&gt; &lt;br /&gt; /*and so on for the entire form*/&lt;br /&gt;&lt;br /&gt;   window.location = link1+link2;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt; The tricky part in the function above ?&lt;br /&gt;- The link format that is completely described in the refferenced tutorial (note that I used page number 1 for this example).&lt;br /&gt;- The usage of enclosing '%5C' (or /) for the variable values to be able to pass on commas or any special characters !&lt;br /&gt;- The link gets appended all the name and values for the entire form !&lt;br /&gt;- In the end, the javascript code forces a refresh of the page using window.location (tested ONLY with IE7)...&lt;br /&gt;&lt;br /&gt;Thats about all,&lt;br /&gt;&lt;br /&gt;I hope this will really help ppl as other blog tutorials really helped me.&lt;br /&gt;&lt;br /&gt;Gl.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7324814375554779368-9117976109578040274?l=ddanoracleapexblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ddanoracleapexblog.blogspot.com/feeds/9117976109578040274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7324814375554779368&amp;postID=9117976109578040274' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7324814375554779368/posts/default/9117976109578040274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7324814375554779368/posts/default/9117976109578040274'/><link rel='alternate' type='text/html' href='http://ddanoracleapexblog.blogspot.com/2008/10/customizing-oracle-apex-tree.html' title='Customizing an Oracle APEX tree'/><author><name>DDan</name><uri>http://www.blogger.com/profile/15647243816992673028</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
