<?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-1561253375800464394</id><updated>2012-01-16T09:16:57.346+01:00</updated><category term='o'/><title type='text'>Denes Kubicek ApEx BLOG</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default?start-index=101&amp;max-results=100'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>102</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-5146600226555961403</id><published>2011-12-19T21:51:00.006+01:00</published><updated>2012-01-12T18:29:35.209+01:00</updated><title type='text'>APEX 4.0 / 4.1 New Features</title><content type='html'>Our next training is scheduled for March 2012. You can find the deatils on &lt;a href="www.opal-consulting.de" target="new"&gt;www.opal-consulting.de&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;-------------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Wir (Denes Kubicek und Dietmar Aust) freuen uns, das nächste APEX Training bekannt geben zu können.&lt;br /&gt;&lt;br /&gt;Es findet am 26.03.2012 bis zum 27.03.2012 erneut in Bensheim bei Frankfurt statt, im Aleehotel.&lt;br /&gt;&lt;br /&gt;Nutzen Sie das Wissen und die Erfahrung von&lt;br /&gt;&lt;br /&gt;    * &lt;a href"http://daust.blogspot.com/" target="new"&gt;Dietmar Aust&lt;/a&gt;, erfahrener Oracle Consultant mit Spezialisierung auf Oracle Apex, aktiv in den OTN Foren zu Apex und Oracle XE, mit Präsentationen auf den letzten DOAG Veranstaltungen und&lt;br /&gt;    * &lt;a href="http://www.deneskubicek.blogspot.com/" target="new"&gt;Denes Kubicek&lt;/a&gt;, langjährige Projekterfahrung in den Bereichen Oracle und APEX mit multisite Applikationen, Preisträger des "Oracle APEX Developer of the Year 2008" Awards des Oracle Magazines, ein Oracle ACE Director und sehr bekannt im Oracle APEX OTN Forum für seine &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:1" target="new"&gt;Beispielapplikation&lt;/a&gt;,&lt;br /&gt;&lt;br /&gt;um die Nuntzung von APEX 4.0 und 4.1 New Features aus vielen erfolgreichen APEX Projekten zu lernen.&lt;br /&gt;&lt;br /&gt;Neben einer Fülle an Informationen, die wir in vielen erfolgreichen APEX Projekten erarbeitet haben, sind insbesondere die abendlichen Sessions (von 19:00-21:00) als Highlight zu nennen.&lt;br /&gt;&lt;br /&gt;Dort stehen wir Ihnen für zusätzliche Hands-On Sessions zur Verfügung, um die Beispiele des Tages durchzuarbeiten oder auch, um konkrete Fragestellungen in Ihren aktuellen Projekten zu diskutieren.&lt;br /&gt;&lt;br /&gt;Weitere Details zum Kurs sowie die Anmeldung finden Sie auf &lt;a href="www.opal-consulting.de" target="new"&gt;www.opal-consulting.de&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Wir freuen uns, dieses Mal &lt;a href="http://www.click-click.at/category/blog"&gt;Peter Raganitsch&lt;/a&gt; als Gastredner bei uns im Kurs zu haben. Er ist in der APEX Community ebenfalls sehr bekannt und hält regelmäßig Vorträge zur Oracle APEX. Er wird das Thema "Mobile APEX: Anwendungen für Smartphones und Tablets entwickeln" behandeln.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-8wmuGg1IaPk/Tu-kHG-s-7I/AAAAAAAAAZQ/ZbdnJgUiAKc/s1600/banner_apex_4_new_features_2012-03-26_small.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 82px;" src="http://2.bp.blogspot.com/-8wmuGg1IaPk/Tu-kHG-s-7I/AAAAAAAAAZQ/ZbdnJgUiAKc/s320/banner_apex_4_new_features_2012-03-26_small.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5687945296431872946" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-5146600226555961403?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/5146600226555961403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=5146600226555961403&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/5146600226555961403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/5146600226555961403'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2011/12/apex-40-41-new-features.html' title='APEX 4.0 / 4.1 New Features'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-8wmuGg1IaPk/Tu-kHG-s-7I/AAAAAAAAAZQ/ZbdnJgUiAKc/s72-c/banner_apex_4_new_features_2012-03-26_small.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-5640789559240312231</id><published>2011-09-19T09:13:00.002+02:00</published><updated>2011-09-19T09:19:05.972+02:00</updated><title type='text'>Working with Tabs</title><content type='html'>Creating two level tabs page layout in APEX is still a problem. I just had an application where I created a parent tab set and then a standard tab. Opeining the application would show the parent tab set and after choosing it the whole parent tab set would dissappear from the screen, showing only the newly created standard tab set. If this happens to you, you will need to do one more thing to get it working:&lt;br /&gt;&lt;br /&gt;1. edit your standard tab,&lt;br /&gt;2. go to "Parent Tab Set" section and&lt;br /&gt;3. choose the parent tab set (probably you will have only one there)&lt;br /&gt;4. save the changes&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-wTSMR-kza9I/Tnbs2iSULBI/AAAAAAAAAY8/EnBmDibXvFs/s1600/picture00131.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 47px;" src="http://3.bp.blogspot.com/-wTSMR-kza9I/Tnbs2iSULBI/AAAAAAAAAY8/EnBmDibXvFs/s320/picture00131.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5653966803870952466" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-5640789559240312231?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/5640789559240312231/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=5640789559240312231&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/5640789559240312231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/5640789559240312231'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2011/09/working-with-tabs.html' title='Working with Tabs'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-wTSMR-kza9I/Tnbs2iSULBI/AAAAAAAAAY8/EnBmDibXvFs/s72-c/picture00131.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-6892000061855001058</id><published>2011-08-16T15:05:00.002+02:00</published><updated>2011-08-16T15:09:05.334+02:00</updated><title type='text'>Invalid PL/SQL function in the branch conditional processing</title><content type='html'>If you use PL/SQL functions in your branch conditional processing you should be sure your code works. I just had a case where I added something to my code and I didn't test it. It took me a while to discover that the code doesn't compile. The branch still worked ignoring the condition.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-6892000061855001058?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/6892000061855001058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=6892000061855001058&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/6892000061855001058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/6892000061855001058'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2011/08/invalid-plsql-function-in-branch.html' title='Invalid PL/SQL function in the branch conditional processing'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-7964789786260906348</id><published>2011-07-08T09:35:00.005+02:00</published><updated>2011-07-08T10:39:33.886+02:00</updated><title type='text'>Expert Oracle APEX - New Book</title><content type='html'>I almost forgot to blog about this. You may have seen this already - there is a new book out there written by several people verry well known in the APEX comunity. I was also asked if I would like to participate and decided to write on Tabular Forms. I think this is a great book and if you are interested in APEX then you should get one. All the funds will be donated to the families of two of our passed away colleagues:&lt;br /&gt;&lt;br /&gt;- Carl Backstrom&lt;br /&gt;- Scott Spadafore&lt;br /&gt;&lt;br /&gt;The links to the book you can find at &lt;a href="http://www.amazon.com/Expert-Oracle-Application-Express-Dietmar/dp/1430235128/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1310110086&amp;sr=8-1" target="new"&gt;Amazon&lt;/a&gt; or at &lt;a href="http://www.apress.com/9781430235125" target="new"&gt;Apress&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apress.com/9781430235125"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 300px;" src="http://4.bp.blogspot.com/-YoXJg1bYHVc/ThbAjaKKfJI/AAAAAAAAAYk/H8wj0KxonYI/s320/51qdVKM05dL._SL500_AA300_.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5626896498995920018" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enjoy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-7964789786260906348?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/7964789786260906348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=7964789786260906348&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/7964789786260906348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/7964789786260906348'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2011/07/exeprt-oracle-apex-new-book.html' title='Expert Oracle APEX - New Book'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-YoXJg1bYHVc/ThbAjaKKfJI/AAAAAAAAAYk/H8wj0KxonYI/s72-c/51qdVKM05dL._SL500_AA300_.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-682591493107730937</id><published>2011-05-25T10:55:00.004+02:00</published><updated>2011-05-25T11:21:53.826+02:00</updated><title type='text'>SSO with IBM TAM</title><content type='html'>In my second project involving IBM Tivoli Access Manger SSO I experienced a problem with Interactive Report sorting and utilization of different jQuery techniques. There is a nice description on how to set up APEX to work with IBM TAM SSO available here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.estherhoppe.de/tom/tipps/ibm-tam/how-to-INTEGRATE-APEX-WITH-IBM-TAM.html" target="new"&gt;http://www.estherhoppe.de/tom/tipps/ibm-tam/how-to-INTEGRATE-APEX-WITH-IBM-TAM.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;One more thing needs to be added to this document. Probably, your IBM Admin will set it up using junctions. As I said, this will cause problems with Ajax since IBM TAM will add a small javascript to the end of the HTTP response. Something like:&lt;br /&gt;&lt;br /&gt;&amp;lt;script&gt;&lt;br /&gt;    document.cookie = "IV_JCT=%2Fjunction_name";&lt;br /&gt;&amp;lt;/script&gt;&lt;br /&gt;&lt;br /&gt;and APEX will have problems with interpreting that response. Json, used for IR sorting will not work at all.&lt;br /&gt;&lt;br /&gt;To work around this problem, you will need to talk to the administrators and let them set it up using mapping tables as described in this document:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/tivihelp/v2r1/index.jsp?topic=/com.ibm.itame2.doc_5.1/am51_webseal_guide91.htm" target="new"&gt;http://publib.boulder.ibm.com/infocenter/tivihelp/v2r1/index.jsp?topic=/com.ibm.itame2.doc_5.1/am51_webseal_guide91.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-682591493107730937?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/682591493107730937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=682591493107730937&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/682591493107730937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/682591493107730937'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2011/05/sso-with-ibm-tam.html' title='SSO with IBM TAM'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-156525091774660494</id><published>2011-02-06T12:51:00.004+01:00</published><updated>2011-02-06T13:03:11.891+01:00</updated><title type='text'>Oracle APEX: Knowhow aus der Praxis - jetzt auf APEX 4.0!</title><content type='html'>Because of the great response to our training offerings, we decided to schedule another one this year. You can find the deatils on &lt;a href="www.opal-consulting.de" target="new"&gt;www.opal-consulting.de&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;-------------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Wir (Denes Kubicek und Dietmar Aust) freuen uns, das nächste APEX Training bekannt geben zu können.&lt;br /&gt;&lt;br /&gt;Es findet am 30.05.2011 bis zum 01.06.2011 erneut in Bensheim bei Frankfurt statt, im Aleehotel.&lt;br /&gt;&lt;br /&gt;Nutzen Sie das Wissen und die Erfahrung von&lt;br /&gt;&lt;br /&gt;    * &lt;a href"http://daust.blogspot.com/" target="new"&gt;Dietmar Aust&lt;/a&gt;, erfahrener Oracle Consultant mit Spezialisierung auf Oracle Apex, aktiv in den OTN Foren zu Apex und Oracle XE, mit Präsentationen auf den letzten DOAG Veranstaltungen und&lt;br /&gt;    * &lt;a href="http://www.deneskubicek.blogspot.com/" target="new"&gt;Denes Kubicek&lt;/a&gt;, langjährige Projekterfahrung in den Bereichen Oracle und APEX mit multisite Applikationen, diesjähriger Preisträger des "Oracle APEX Developer of the Year 2008" Awards des Oracle Magazines und sehr bekannt im Oracle APEX OTN Forum für seine &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:1" target="new"&gt;Beispielapplikation&lt;/a&gt;,&lt;br /&gt;&lt;br /&gt;um Best Practice Vorgehensweisen aus vielen erfolgreichen APEX Projekten zu lernen.&lt;br /&gt;&lt;br /&gt;Neben einer Fülle an Informationen, die wir in vielen erfolgreichen APEX Projekten erarbeitet haben, sind insbesondere die abendlichen Sessions (von 19:00-21:00) als Highlight zu nennen.&lt;br /&gt;&lt;br /&gt;Dort stehen wir Ihnen für zusätzliche Hands-On Sessions zur Verfügung, um die Beispiele des Tages durchzuarbeiten oder auch, um konkrete Fragestellungen in Ihren aktuellen Projekten zu diskutieren.&lt;br /&gt;&lt;br /&gt;Weitere Details zum Kurs sowie die Anmeldung finden Sie auf &lt;a href="www.opal-consulting.de" target="new"&gt;www.opal-consulting.de&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_y49oG7ohpQE/TU6NScOGNCI/AAAAAAAAAXw/QhBk1j1aW8Q/s1600/traning_40_mai_2011.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 102px;" src="http://4.bp.blogspot.com/_y49oG7ohpQE/TU6NScOGNCI/AAAAAAAAAXw/QhBk1j1aW8Q/s320/traning_40_mai_2011.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5570545137056363554" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-156525091774660494?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/156525091774660494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=156525091774660494&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/156525091774660494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/156525091774660494'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2011/02/oracle-apex-knowhow-aus-der-praxis.html' title='Oracle APEX: Knowhow aus der Praxis - jetzt auf APEX 4.0!'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_y49oG7ohpQE/TU6NScOGNCI/AAAAAAAAAXw/QhBk1j1aW8Q/s72-c/traning_40_mai_2011.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-7342414877542267344</id><published>2010-11-10T20:31:00.004+01:00</published><updated>2010-11-10T20:39:58.450+01:00</updated><title type='text'>APEX 4.0 New Features - Wiederholung</title><content type='html'>Das Interesse an unserem letzten Kurs "APEX 4.0 New Features" war so gross, dass wir es vorzeitig schliessen mussten. Wir werden deswegen diesen Kurs am &lt;b&gt;24. und am 25. Januar 2011&lt;/b&gt; wiederholen. &lt;b&gt;Eine Neuigkeit dazu gibt es auch: wir werden im Rahmen des Kurses auch eine zusätzliche Hands-On Session haben, in der wir zeigen werden, wie man eigene Plug-Ins entwickelt.&lt;/b&gt; Sie können sich zum Kurs ab sofort auf &lt;a href="http://www.opal-consulting.de" target="new"&gt;unserer Hompage&lt;/a&gt; anmelden.&lt;br /&gt;&lt;br /&gt;Bis bald.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.opal-consulting.de"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 208px;" src="http://3.bp.blogspot.com/_y49oG7ohpQE/TNr0p_2TVrI/AAAAAAAAAXY/uHtb4_1AWzI/s320/traning_40_jan_2011.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5538007694156453554" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-7342414877542267344?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/7342414877542267344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=7342414877542267344&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/7342414877542267344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/7342414877542267344'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2010/11/apex-40-new-features-wiederholung.html' title='APEX 4.0 New Features - Wiederholung'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_y49oG7ohpQE/TNr0p_2TVrI/AAAAAAAAAXY/uHtb4_1AWzI/s72-c/traning_40_jan_2011.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-14107467782024493</id><published>2010-10-18T11:55:00.003+02:00</published><updated>2010-10-18T11:59:56.434+02:00</updated><title type='text'>Tabular Form - Highlighting and Focus in Validations</title><content type='html'>I like the new feature of 4.0 tabular form validations a lot. If you create a validation on a column, you will get the highlighting and focus out of the box. Based on that, I created a small example for those cases where you can't use the standard validations and still need to do it by hand. It works the similar way except that the highlighting will only work after clicking the link in the message. You can find that example in my &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:190" target="new"&gt;Demo Application&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-14107467782024493?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/14107467782024493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=14107467782024493&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/14107467782024493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/14107467782024493'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2010/10/tabular-form-highlighting-and-focus-in.html' title='Tabular Form - Highlighting and Focus in Validations'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-797602774049536346</id><published>2010-09-28T19:08:00.002+02:00</published><updated>2010-09-28T19:36:41.099+02:00</updated><title type='text'>SQL Query (return colon separated value)</title><content type='html'>Did you know there is a new computation type in APEX - SQL Query (return colon separated value)? Probably not, because there are many other "sexier" features. However this "small" feature is realy cool. Before, you needed to do several steps if you wanted to compute your multiselect list, shuttle item, checkbox or a radio button:&lt;br /&gt;&lt;br /&gt;1. DECLARE an array,&lt;br /&gt;2. SELECT * BULK COLLECT INTO array&lt;br /&gt;3. use APEX_UTIL package to convert that array into a string&lt;br /&gt;4. RETURN that string&lt;br /&gt;&lt;br /&gt;With APEX 4 you don't need to do that any more. You just do a normal select and whatever it returns will be concatenated into a colon delimited string. That's it.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_y49oG7ohpQE/TKInZ3O6vqI/AAAAAAAAAWo/o5Au8gBq8k4/s1600/multiselect.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 99px;" src="http://2.bp.blogspot.com/_y49oG7ohpQE/TKInZ3O6vqI/AAAAAAAAAWo/o5Au8gBq8k4/s320/multiselect.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5522019418386382498" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_y49oG7ohpQE/TKIngFecUMI/AAAAAAAAAWw/QYMLA37gxtk/s1600/cool_sql.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 162px;" src="http://1.bp.blogspot.com/_y49oG7ohpQE/TKIngFecUMI/AAAAAAAAAWw/QYMLA37gxtk/s320/cool_sql.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5522019525288808642" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_y49oG7ohpQE/TKInlEOpHnI/AAAAAAAAAW4/GhGnvWVJzG4/s1600/screenshot.1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 160px;" src="http://2.bp.blogspot.com/_y49oG7ohpQE/TKInlEOpHnI/AAAAAAAAAW4/GhGnvWVJzG4/s320/screenshot.1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5522019610853449330" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-797602774049536346?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/797602774049536346/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=797602774049536346&amp;isPopup=true' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/797602774049536346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/797602774049536346'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2010/09/sql-query-return-colon-separated-value.html' title='SQL Query (return colon separated value)'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_y49oG7ohpQE/TKInZ3O6vqI/AAAAAAAAAWo/o5Au8gBq8k4/s72-c/multiselect.gif' height='72' width='72'/><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-7646749652035625711</id><published>2010-09-03T13:49:00.006+02:00</published><updated>2010-09-04T11:07:03.085+02:00</updated><title type='text'>New Apex Blog</title><content type='html'>My colleague and friend Linh Dinh from Munich recently started to post about his experience with APEX. You can find his blog here &lt;a href="http://www.dinh.de"&gt;http://www.dinh.de&lt;/a&gt;. Linh is a knowledgable and smart person with a lot of Java background. His first contact with APEX was in March this year when we started with a project for one of my customers. He immediately liked it and has made a huge progress since then. Linh is blogging in German and therefore his postings are especially interesting for the German APEX community.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_y49oG7ohpQE/TIDo0q9ZvKI/AAAAAAAAAWY/mXzXgRlQ2E8/s1600/linh_dinh.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 141px;" src="http://2.bp.blogspot.com/_y49oG7ohpQE/TIDo0q9ZvKI/AAAAAAAAAWY/mXzXgRlQ2E8/s320/linh_dinh.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5512661935484157090" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-7646749652035625711?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/7646749652035625711/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=7646749652035625711&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/7646749652035625711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/7646749652035625711'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2010/09/new-apex-blog.html' title='New Apex Blog'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_y49oG7ohpQE/TIDo0q9ZvKI/AAAAAAAAAWY/mXzXgRlQ2E8/s72-c/linh_dinh.gif' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-1841171973940682545</id><published>2010-07-29T17:51:00.004+02:00</published><updated>2010-07-29T18:13:36.611+02:00</updated><title type='text'>Oracle Apex 4.0 Training: New Features</title><content type='html'>Because of overlapping with the OOW agenda, we decided to reschedule our training to 4th and 5th of October 2010. &lt;br /&gt;&lt;br /&gt;Wir (&lt;a href="http://www.daust.blogspot.com/" target="new"&gt;Dietmar&lt;/a&gt; und ich) haben den Termin für unsere &lt;a href="http://www.opal-consulting.de" target="new"&gt;Schulung&lt;/a&gt; um zwei Wochen verschoben. Die Schulung findet nun am 04.10 bzw. 05.10.2010. Der Grund war die Überschneidung mit dem OOW Termin. In diesem Training möchten wir folgende Punkte ansprechen:&lt;br /&gt;&lt;br /&gt;- Überblick der neuen Features, was ist alles neu&lt;br /&gt;- Der Umgang mit Websheets, wie kann man die neuen Wiki-ähnliche Funktionalitäten sinnvoll nutzen&lt;br /&gt;- Dynamic Actions, wie man AJAX Funktionalität deklarativ (ohne zu programmieren) in seinen Applikationen einsetzt&lt;br /&gt;- Erweiterbarkeit von APEX über Plug-Ins, benutzerdefinierten Elementtypen und Regionen&lt;br /&gt;- Verbesserungen der Tabular Forms, insbesondere die Validierungen und die Unterstützung zusätzlicher Elementtypen&lt;br /&gt;- Die Verwendung der neuen Elementtypen&lt;br /&gt;- Verbesserungen der mächtigen interaktiven Berichte mit komplexeren Filtern, Gruppierungen und das Abonnement von Benachrichtigungen&lt;br /&gt;- Team Development, das Projekt direkt mit APEX managen&lt;br /&gt;- Verbesserungen im Application Builder&lt;br /&gt;- Neue Möglichkeiten der Chart-Engine sowie neue Diagrammtypen (GANTT und Kartendarstellungen)&lt;br /&gt;- Web Services, deklarative Unterstützung von REST-Webservices&lt;br /&gt;- Administration, Vereinfachungen in der Administration sowie im Deployment von Applikationen&lt;br /&gt;- Umgang mit dem neuen APEX Listener&lt;br /&gt;&lt;br /&gt;Alle Details findet ihr hier:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.opal-consulting.de" target="new"&gt;http://www.opal-consulting.de&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-1841171973940682545?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/1841171973940682545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=1841171973940682545&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/1841171973940682545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/1841171973940682545'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2010/07/oracle-apex-40-training-new-features.html' title='Oracle Apex 4.0 Training: New Features'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-3764670061665930646</id><published>2010-07-23T10:08:00.006+02:00</published><updated>2010-07-23T10:15:44.003+02:00</updated><title type='text'>Highlight Selected Row</title><content type='html'>This may be an a bit old topic. However I am getting emails from time to time asking how to do that. &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:151" target="new"&gt;This example&lt;/a&gt; shows how to easily highlight a selected row in a report and make it persistant while reloading / submitting the page.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_y49oG7ohpQE/TElOam6hWxI/AAAAAAAAAWI/liDzViOCQuo/s1600/screenshot.1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 199px;" src="http://3.bp.blogspot.com/_y49oG7ohpQE/TElOam6hWxI/AAAAAAAAAWI/liDzViOCQuo/s320/screenshot.1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5497011039211969298" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-3764670061665930646?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/3764670061665930646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=3764670061665930646&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/3764670061665930646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/3764670061665930646'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2010/07/highlight-row.html' title='Highlight Selected Row'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_y49oG7ohpQE/TElOam6hWxI/AAAAAAAAAWI/liDzViOCQuo/s72-c/screenshot.1.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-2159858909024146157</id><published>2010-07-11T15:44:00.008+02:00</published><updated>2010-07-11T16:07:05.961+02:00</updated><title type='text'>APEX 4.0 - Standard Tabular Forms and Select Lists</title><content type='html'>I just noticed that the bug I first time saw in the first beta version of 4.0 is still present - &lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=1097954&amp;tstart=0" target="new"&gt;see this forum posting&lt;/a&gt; and especially &lt;a href="http://forums.oracle.com/forums/thread.jspa?messageID=4393393" target"new"&gt;this one&lt;/a&gt;. If you have a wizard generated tabular form with a select list and you hit the F5 button to reload the page, your select list values will change. This happens only if you use FF. With IE instead it works fine. See this example:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:11"&gt;http://apex.oracle.com/pls/otn/f?p=31517:11&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you are already using 4.0 in production, you should do something to avoid unexpected results. I am sure that the Apex-Team will correct this bug with the first patch for 4.0.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_y49oG7ohpQE/TDnMl4YoSEI/AAAAAAAAAV4/TpO89Mldw0Q/s1600/screenshot.1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 192px;" src="http://3.bp.blogspot.com/_y49oG7ohpQE/TDnMl4YoSEI/AAAAAAAAAV4/TpO89Mldw0Q/s320/screenshot.1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5492646171717945410" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_y49oG7ohpQE/TDnMsIVkLXI/AAAAAAAAAWA/T7mkNLgNC4I/s1600/screenshot.3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 176px;" src="http://4.bp.blogspot.com/_y49oG7ohpQE/TDnMsIVkLXI/AAAAAAAAAWA/T7mkNLgNC4I/s320/screenshot.3.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5492646279079275890" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The actual workarround, as posted in the second thread dealing with this isssue is to switch the "Autocomplete" to "off" in the page attributes.&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-2159858909024146157?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/2159858909024146157/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=2159858909024146157&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/2159858909024146157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/2159858909024146157'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2010/07/apex-40-standard-tabular-forms-and.html' title='APEX 4.0 - Standard Tabular Forms and Select Lists'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_y49oG7ohpQE/TDnMl4YoSEI/AAAAAAAAAV4/TpO89Mldw0Q/s72-c/screenshot.1.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-2462256193995443931</id><published>2010-05-24T15:48:00.005+02:00</published><updated>2010-06-19T08:51:24.548+02:00</updated><title type='text'>Save Changes before Exiting</title><content type='html'>One of my customers wants to replace some Forms applications using APEX. One of the critical issues was the possibility to warn the user before exiting the existing form (switching tabs, closing browser window or tab or simply using the back button). In &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:258" tarteg="new"&gt;this example&lt;/a&gt; in my &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:1" tarteg="new"&gt;Demo Application&lt;/a&gt; I created a proof of concept using some older threads and demos. The solution is quite neat since there is almost no hardcoding and it works in every case while trying to move from the form. One of the important things was how to get that button for saving changes work, so it doesn't trigger the alert but does save the changes. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_y49oG7ohpQE/S_qRrBWjzdI/AAAAAAAAAVo/JW5_EcrY7YE/s1600/warn_exit.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 180px;" src="http://4.bp.blogspot.com/_y49oG7ohpQE/S_qRrBWjzdI/AAAAAAAAAVo/JW5_EcrY7YE/s320/warn_exit.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5474848465305718226" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-2462256193995443931?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/2462256193995443931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=2462256193995443931&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/2462256193995443931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/2462256193995443931'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2010/05/save-changes-before-exiting.html' title='Save Changes before Exiting'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_y49oG7ohpQE/S_qRrBWjzdI/AAAAAAAAAVo/JW5_EcrY7YE/s72-c/warn_exit.gif' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-4588092071573370782</id><published>2010-03-11T15:40:00.007+01:00</published><updated>2010-03-11T16:58:02.077+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='o'/><title type='text'>Tabular Form - Preserve Changes</title><content type='html'>In our last training (08.03-10.03.2010) there was an interesting question on how to preserve the changes made in a tabular form while paginating through it. The requirement was also to save all the changes made independant of the visible set of rows. This problem can be solved using apex collections. &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:246" target="new"&gt;This&lt;/a&gt; page in my &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:246" target="new"&gt;Demo Application&lt;/a&gt; holds a working example including the full description of the code.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_y49oG7ohpQE/S5kDNNosyhI/AAAAAAAAAUw/MGLbr3KBLFE/s1600-h/shuttle.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 143px; height: 107px;" src="http://4.bp.blogspot.com/_y49oG7ohpQE/S5kDNNosyhI/AAAAAAAAAUw/MGLbr3KBLFE/s320/shuttle.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5447388749814876690" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-4588092071573370782?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/4588092071573370782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=4588092071573370782&amp;isPopup=true' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/4588092071573370782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/4588092071573370782'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2010/03/tabular-form-preserve-changes.html' title='Tabular Form - Preserve Changes'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_y49oG7ohpQE/S5kDNNosyhI/AAAAAAAAAUw/MGLbr3KBLFE/s72-c/shuttle.jpg' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-6920204781951087361</id><published>2010-02-13T21:35:00.002+01:00</published><updated>2010-02-13T21:38:32.090+01:00</updated><title type='text'>Preselect Select List Values while Adding Rows</title><content type='html'>&lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:249" target="new"&gt;This example&lt;/a&gt; is showing how to preselect values in a tabular form select list while adding rows.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_y49oG7ohpQE/S3cNuAyaahI/AAAAAAAAAUY/m2I1ArcypHk/s1600-h/preselect.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 123px;" src="http://4.bp.blogspot.com/_y49oG7ohpQE/S3cNuAyaahI/AAAAAAAAAUY/m2I1ArcypHk/s320/preselect.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5437830159209753106" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-6920204781951087361?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/6920204781951087361/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=6920204781951087361&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/6920204781951087361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/6920204781951087361'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2010/02/preselect-select-list-values-while.html' title='Preselect Select List Values while Adding Rows'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_y49oG7ohpQE/S3cNuAyaahI/AAAAAAAAAUY/m2I1ArcypHk/s72-c/preselect.gif' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-4974446927287422031</id><published>2010-02-13T20:05:00.004+01:00</published><updated>2010-02-13T20:11:32.556+01:00</updated><title type='text'>Preventing Duplicate Entries in a Tabular Form</title><content type='html'>This may sound trivial but the question is one of the frequently asked question in the forum. I just created an example showing how to check a tabular form on duplicate entries prior to saving the new added rows. You will find the example &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:170" target="new"&gt;here&lt;/a&gt;. Try adding some rows and enter an already existing name for the ename.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_y49oG7ohpQE/S3b5QJYHJCI/AAAAAAAAAUI/NnnAGuMALzU/s1600-h/duplicate_entries.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 125px;" src="http://4.bp.blogspot.com/_y49oG7ohpQE/S3b5QJYHJCI/AAAAAAAAAUI/NnnAGuMALzU/s320/duplicate_entries.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5437807655886726178" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_y49oG7ohpQE/S3b5VCLDZDI/AAAAAAAAAUQ/gndkHirNve0/s1600-h/error_message.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 78px;" src="http://4.bp.blogspot.com/_y49oG7ohpQE/S3b5VCLDZDI/AAAAAAAAAUQ/gndkHirNve0/s320/error_message.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5437807739852252210" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-4974446927287422031?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/4974446927287422031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=4974446927287422031&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/4974446927287422031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/4974446927287422031'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2010/02/preventing-duplicate-entries-in-tabular.html' title='Preventing Duplicate Entries in a Tabular Form'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_y49oG7ohpQE/S3b5QJYHJCI/AAAAAAAAAUI/NnnAGuMALzU/s72-c/duplicate_entries.gif' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-3523517541186558117</id><published>2010-02-02T09:46:00.007+01:00</published><updated>2010-03-06T22:19:25.158+01:00</updated><title type='text'>APEX Training in Bensheim - die Uhr tickt</title><content type='html'>Liebe APEX-ler, auch dieses Jahr organisieren Dietmar und ich ein weiteres Training zum Thema APEX aus der Praxis. Der Termin ist 08.03 - 10.03 im Aleehotel Europa in Bensheim an der Bergstrasse. Wenn ihr auf der Suche nach einem APEX-Training seid, in dem nicht nach einem empno, deptno Muster unterrichtet wird und wo der Dozent APEX &lt;b&gt;nicht nur&lt;/b&gt; aus den Unterlagen kennt, sondern in komplexen Projekten selbst eingesetzt hat, dann seid ihr bei uns richtig. Eine Anmeldung zum Training findet ihr &lt;a href="http://www.opal-consulting.de/apex/f?p=107:7" target="new"&gt;hier&lt;/a&gt;, auf Opal-Consulting.de.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_y49oG7ohpQE/S5LGyy4BQSI/AAAAAAAAAUo/bEUrtV9Dah8/s1600-h/soft-watches.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 269px; height: 320px;" src="http://1.bp.blogspot.com/_y49oG7ohpQE/S5LGyy4BQSI/AAAAAAAAAUo/bEUrtV9Dah8/s320/soft-watches.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5445633475396845858" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-3523517541186558117?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/3523517541186558117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=3523517541186558117&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/3523517541186558117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/3523517541186558117'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2010/02/apex-training-in-bensheim-die-uhr-tickt.html' title='APEX Training in Bensheim - die Uhr tickt'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_y49oG7ohpQE/S5LGyy4BQSI/AAAAAAAAAUo/bEUrtV9Dah8/s72-c/soft-watches.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-13818069718600932</id><published>2010-02-02T09:32:00.003+01:00</published><updated>2010-02-02T09:43:15.051+01:00</updated><title type='text'>Same procedure as every year - APEX Stammtisch</title><content type='html'>Dietmar aust und ich werden am 22.02.2010 um 19 Uhr unseren jährlichen APEX Stammtisch in Siegburg organisieren. Falls ihr Lust habt mit uns und anderen Teilnehmern über APEX zu reden so könnt ihr euch &lt;a href="http://www.opal-consulting.de/apex/f?p=107:11:0:::11:P11_EVT_ID:31" target="new"&gt;hier&lt;/a&gt; anmelden.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_y49oG7ohpQE/S2flOIuET-I/AAAAAAAAAT4/Ya_ZDWCAToI/s1600-h/the_same_procedure.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 127px; height: 88px;" src="http://2.bp.blogspot.com/_y49oG7ohpQE/S2flOIuET-I/AAAAAAAAAT4/Ya_ZDWCAToI/s320/the_same_procedure.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5433563506467426274" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-13818069718600932?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/13818069718600932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=13818069718600932&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/13818069718600932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/13818069718600932'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2010/02/same-procedure-as-every-year-apex.html' title='Same procedure as every year - APEX Stammtisch'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_y49oG7ohpQE/S2flOIuET-I/AAAAAAAAAT4/Ya_ZDWCAToI/s72-c/the_same_procedure.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-5882332164124093478</id><published>2009-12-23T13:31:00.003+01:00</published><updated>2009-12-24T10:56:33.259+01:00</updated><title type='text'>My (our) first book</title><content type='html'>As &lt;a href="http://daust.blogspot.com/"&gt;Dietmar Aust&lt;/a&gt; already wrote in his blog, our first book was published yesterday. We are currently the No. 1 under Oracle books on &lt;a href="http://www.amazon.de/gp/bestsellers/books/165938031/ref=pd_ts_b_nav"&gt;amazon.de&lt;/a&gt;. Although, this is changing every hour. The book is currently available only in German. Our goal was to write a book about the best practices we have developed through the years.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.it-fachportal.de/5549"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 227px; height: 320px;" src="http://2.bp.blogspot.com/_y49oG7ohpQE/SzIPL32mydI/AAAAAAAAATY/ywmLe_VjY1A/s320/apex_xe_praxis_cover.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5418409998326090194" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Merry Christmas to all of you.&lt;br /&gt;&lt;br /&gt;Denes Kubicek&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-5882332164124093478?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/5882332164124093478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=5882332164124093478&amp;isPopup=true' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/5882332164124093478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/5882332164124093478'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2009/12/my-our-first-book.html' title='My (our) first book'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_y49oG7ohpQE/SzIPL32mydI/AAAAAAAAATY/ywmLe_VjY1A/s72-c/apex_xe_praxis_cover.jpg' height='72' width='72'/><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-4114542483322052665</id><published>2009-11-08T17:30:00.004+01:00</published><updated>2009-11-10T21:11:20.365+01:00</updated><title type='text'>APEX Kurs März 2010</title><content type='html'>Dietmar und ich werden einen weiteren Kurs im März 2010 organisieren. In Kürze werden wir die Informationen darüber auf &lt;a href="http://www.opal-consulting.de" target="new"&gt;unserer Seite&lt;/a&gt; veröffentlichen.&lt;br /&gt;&lt;br /&gt;&lt;div style="border-width: 1px;color:#ACB1A0;&lt;br /&gt;border-style: solid;"&gt;&lt;a href="http://www.opal-consulting.de/apex/f?p=107:1" target="new"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 206px;" src="http://1.bp.blogspot.com/_y49oG7ohpQE/SvbyrcSzXtI/AAAAAAAAATQ/wSdIdfU9EDI/s320/schulung_032010.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5401771631220842194" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-4114542483322052665?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/4114542483322052665/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=4114542483322052665&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/4114542483322052665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/4114542483322052665'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2009/11/apex-kurs-marz-2010.html' title='APEX Kurs März 2010'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_y49oG7ohpQE/SvbyrcSzXtI/AAAAAAAAATQ/wSdIdfU9EDI/s72-c/schulung_032010.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-6545555651290618</id><published>2009-10-01T12:17:00.003+02:00</published><updated>2009-10-01T12:38:41.303+02:00</updated><title type='text'>Update Multiple Values in a Tabular Form using PopUp</title><content type='html'>In &lt;a href="http://deneskubicek.blogspot.com/2009/06/tabular-forms-autofill.html"&gt;this posting&lt;/a&gt; and the &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:239"&gt;corresponding example&lt;/a&gt; I showed how to compute columns in a tabular form row using a select list. Sometimes you can have a requirement to use more than one parameter (configurator) to do a preselection. In that case you would need to use a popup window. I was asked how that could be done and I created &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:241"&gt;a slightly modified example&lt;/a&gt; in my &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:1"&gt;demo application&lt;/a&gt;. The only difference is that:&lt;br /&gt;&lt;br /&gt;- you need to tell the popup page the row number you would like to compute&lt;br /&gt;- you need to call the ajax function out of the popup window using window.opener function&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://apex.oracle.com/pls/otn/f?p=31517:241"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 198px;" src="http://1.bp.blogspot.com/_y49oG7ohpQE/SsSGYfONtiI/AAAAAAAAATI/TjRsGhOdwms/s320/surprise.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5387578809498056226" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-6545555651290618?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/6545555651290618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=6545555651290618&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/6545555651290618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/6545555651290618'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2009/10/update-multiple-values-in-tabular-form.html' title='Update Multiple Values in a Tabular Form using PopUp'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_y49oG7ohpQE/SsSGYfONtiI/AAAAAAAAATI/TjRsGhOdwms/s72-c/surprise.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-7322402186955771730</id><published>2009-09-02T12:24:00.007+02:00</published><updated>2009-09-02T14:39:37.302+02:00</updated><title type='text'>The Power of the Apex Repository</title><content type='html'>We all know about the apex views but hardly use them. Today, I answered two questions in the oracle Forum where the solution was related to the apex views. The first question was on how to create a report with all the csv links for all the reports in an application:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=952151" target"new"&gt;http://forums.oracle.com/forums/thread.jspa?threadID=952151&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The second question was on how to provide a generic solution for a page help functionality:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=952469" target"new"&gt;http://forums.oracle.com/forums/thread.jspa?threadID=952469&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Basically, the usage of apex views provides a simple two-step solution which doesn't require any maintanance.&lt;br /&gt;&lt;br /&gt;In my &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:1" target="new"&gt;demo application&lt;/a&gt;, you will find the corresponding examples:&lt;br /&gt;&lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:244" target="new"&gt;&lt;br /&gt;Report on all csv links&lt;/a&gt;&lt;br /&gt;&lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:1001" target="new"&gt;&lt;br /&gt;Help page&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Try it out.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_y49oG7ohpQE/Sp5LFCZXJ4I/AAAAAAAAASc/KiltyiMJvFM/s1600-h/power.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 113px; height: 135px;" src="http://4.bp.blogspot.com/_y49oG7ohpQE/Sp5LFCZXJ4I/AAAAAAAAASc/KiltyiMJvFM/s320/power.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5376817555041625986" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-7322402186955771730?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/7322402186955771730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=7322402186955771730&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/7322402186955771730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/7322402186955771730'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2009/09/power-of-apex-repository.html' title='The Power of the Apex Repository'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_y49oG7ohpQE/Sp5LFCZXJ4I/AAAAAAAAASc/KiltyiMJvFM/s72-c/power.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-4619500884104335551</id><published>2009-08-27T11:35:00.007+02:00</published><updated>2009-08-27T12:23:55.984+02:00</updated><title type='text'>Renaming Page Items</title><content type='html'>I am using Firefox for development of Apex applications. I have my builder open in one tab and the application in the next one. As soon as I make a change I would switch to the application tab and see the results after reloading or submiting the page. That is quite practical and saves a lot of clicks. Couple of days ago I was developing an application and had to rename a page item. This item was involved in some page computations and after renaming it the page didn't work the way I expected. I spent probably an hour trying to understand why. I changed my code couple of times withouth success. Then it came to my mind that I had seen this before. I logged out, logged in again and my code suddenly worked. So, this is just a small tip to first logout after renaming page items. It could save you a lot of time (and nerves) if you remember it.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_y49oG7ohpQE/SpZdnTHpkuI/AAAAAAAAASU/tznoVbXj8co/s1600-h/anger.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 227px; height: 320px;" src="http://3.bp.blogspot.com/_y49oG7ohpQE/SpZdnTHpkuI/AAAAAAAAASU/tznoVbXj8co/s320/anger.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5374586135041905378" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-4619500884104335551?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/4619500884104335551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=4619500884104335551&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/4619500884104335551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/4619500884104335551'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2009/08/renaming-page-items.html' title='Renaming Page Items'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_y49oG7ohpQE/SpZdnTHpkuI/AAAAAAAAASU/tznoVbXj8co/s72-c/anger.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-7203464350502805319</id><published>2009-08-21T12:54:00.001+02:00</published><updated>2009-08-21T12:54:14.360+02:00</updated><title type='text'>Validations using Ajax</title><content type='html'>I posted about this in October 2008 but in different context. &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:217" target="new"&gt;This&lt;/a&gt; example in my &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:1" target="new"&gt;Demo Application&lt;/a&gt; shows how to use Ajax for item validation. I use this method in some cases where I can't allow the page to be submited but have to inform the user before he hits the submit button. Also, if user enters something invalid, it will overwrite that with a previous valid value.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_y49oG7ohpQE/So58TudYFLI/AAAAAAAAASM/F97PhCLpjr8/s1600-h/screenshot.6.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 216px;" src="http://3.bp.blogspot.com/_y49oG7ohpQE/So58TudYFLI/AAAAAAAAASM/F97PhCLpjr8/s320/screenshot.6.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5372368083830183090" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-7203464350502805319?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/7203464350502805319/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=7203464350502805319&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/7203464350502805319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/7203464350502805319'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2009/08/validations-using-ajax.html' title='Validations using Ajax'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_y49oG7ohpQE/So58TudYFLI/AAAAAAAAASM/F97PhCLpjr8/s72-c/screenshot.6.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-7347272840255301935</id><published>2009-08-20T13:39:00.006+02:00</published><updated>2009-08-20T14:15:54.554+02:00</updated><title type='text'>Become a better Apex Developer</title><content type='html'>We are just under 1 month away from the &lt;a href="http://www.opal-consulting.de/apex/f?p=107:7" target="new"&gt;next training&lt;/a&gt;, kicking off 21st of September in Aleehotel Europa in Bensheim. It is time for the "late" birds to sign up for the training.&lt;br /&gt;&lt;br /&gt;Unser &lt;a href="http://www.opal-consulting.de/apex/f?p=107:7" target="new"&gt;Training&lt;/a&gt; beginnt am 21.09.2009 in Bensheim - Allehotel Europa. Es ist Zeit sich anzumelden. Es sind diesmal einige Plätze frei im Vergleich zu den letzten Trainings. Möglicherweise sind das die Auswirkungen dieser Krise, von der ständig erzählt wird. Und wenn es tatsächlich eine geben sollte, dann ist das die Zeit, die man nutzen sollte nach vorne zu schauen und sich für die guten Zeiten vorzubereiten. Also, meldet euch...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.opal-consulting.de/apex/f?p=107:7" target="new"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 191px; height: 215px;" src="http://3.bp.blogspot.com/_y49oG7ohpQE/So04pJMLojI/AAAAAAAAASE/5IMp5KYdG04/s320/we-want-you.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5372012210015674930" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-7347272840255301935?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/7347272840255301935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=7347272840255301935&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/7347272840255301935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/7347272840255301935'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2009/08/become-better-apex-developer.html' title='Become a better Apex Developer'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_y49oG7ohpQE/So04pJMLojI/AAAAAAAAASE/5IMp5KYdG04/s72-c/we-want-you.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-6863452741842874489</id><published>2009-08-18T18:51:00.003+02:00</published><updated>2009-08-18T19:03:12.256+02:00</updated><title type='text'>Search and Edit Form with Report</title><content type='html'>It is easy to create a form with a report in order to drill-down and modify or create records. It would be great if Apex would have a wizard for creating a form which would give us a possibility not only to edit and create records but also to search on those. In this &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:242" target="new"&gt;small example&lt;/a&gt; in my &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:1" target="new"&gt;Demo Application&lt;/a&gt; you can see how to do that manually. This example shows several things:&lt;br /&gt;&lt;br /&gt;- how to create a manual form&lt;br /&gt;- how to create a manual fetch process&lt;br /&gt;- how to ensure data integrity using checksum&lt;br /&gt;- how to create a form for editing and searching data&lt;br /&gt;- how to drill down on a record set returned by a search without loosing it&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_y49oG7ohpQE/SoreHesnkBI/AAAAAAAAAR8/RiVaGs4wpHk/s1600-h/screenshot.23.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 214px;" src="http://1.bp.blogspot.com/_y49oG7ohpQE/SoreHesnkBI/AAAAAAAAAR8/RiVaGs4wpHk/s320/screenshot.23.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5371349725673394194" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enjoy.&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-6863452741842874489?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/6863452741842874489/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=6863452741842874489&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/6863452741842874489'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/6863452741842874489'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2009/08/search-and-edit-form-with-report.html' title='Search and Edit Form with Report'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_y49oG7ohpQE/SoreHesnkBI/AAAAAAAAAR8/RiVaGs4wpHk/s72-c/screenshot.23.bmp' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-1959057595739450393</id><published>2009-06-14T23:29:00.005+02:00</published><updated>2009-06-14T23:37:53.943+02:00</updated><title type='text'>Use Lightbox 2 in Apex</title><content type='html'>Following &lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=913879" target="new"&gt;this thread&lt;/a&gt; I was wondering how easy it is to incorporate the &lt;a href="http://www.huddletogether.com/projects/lightbox2/" target"new"&gt;Lightbox 2&lt;/a&gt; plugin into Apex on &lt;a href="http://apex.oracle.com" target="new"&gt;apex.oracle.com&lt;/a&gt;. You can see the results &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:238" target="new"&gt;here&lt;/a&gt; in my &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:1" target="new"&gt;Demo Application&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_y49oG7ohpQE/SjVtpK7ctYI/AAAAAAAAARk/uWrH86ZsrOc/s1600-h/croatian.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 276px; height: 257px;" src="http://4.bp.blogspot.com/_y49oG7ohpQE/SjVtpK7ctYI/AAAAAAAAARk/uWrH86ZsrOc/s320/croatian.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5347300686648096130" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_y49oG7ohpQE/SjVs8g0JudI/AAAAAAAAARc/ifxWgSy0OGI/s1600-h/speedy.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 280px;" src="http://3.bp.blogspot.com/_y49oG7ohpQE/SjVs8g0JudI/AAAAAAAAARc/ifxWgSy0OGI/s320/speedy.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5347299919428958674" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-1959057595739450393?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/1959057595739450393/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=1959057595739450393&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/1959057595739450393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/1959057595739450393'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2009/06/use-lightbox-2-in-apex.html' title='Use Lightbox 2 in Apex'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_y49oG7ohpQE/SjVtpK7ctYI/AAAAAAAAARk/uWrH86ZsrOc/s72-c/croatian.gif' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-4163197041928586729</id><published>2009-06-14T19:14:00.010+02:00</published><updated>2009-06-14T23:41:10.621+02:00</updated><title type='text'>Tabular Forms - Autofill</title><content type='html'>Tabular Forms are used to manage master-detail dependencies. Usually for creating applications like:&lt;br /&gt;&lt;br /&gt;- Order Management or&lt;br /&gt;- Quote Management&lt;br /&gt;&lt;br /&gt;For order or a quote management you would create a simple form to manage your header data. Tabular form would be used for order lines having hidden fileds for primary key and foreign key (order primary key). Order lines are usually items comming from an item master table. Sometimes, these line items are available through a select list and the most of the information you need in a tabular form is already available and could be filled automatically:&lt;br /&gt;&lt;br /&gt;- item description&lt;br /&gt;- price&lt;br /&gt;- quantity (default 1)&lt;br /&gt;- other item properties&lt;br /&gt;&lt;br /&gt;In &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:239" target="new"&gt;this&lt;/a&gt; example in my &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:1" target="new"&gt;Demo Application&lt;/a&gt; you can see how that can be done.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_y49oG7ohpQE/SjVuTa_nrYI/AAAAAAAAARs/ztJ5Y8frrSc/s1600-h/easy_oracle.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 129px;" src="http://4.bp.blogspot.com/_y49oG7ohpQE/SjVuTa_nrYI/AAAAAAAAARs/ztJ5Y8frrSc/s320/easy_oracle.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5347301412515065218" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Selecting a product from the list would use Ajax to get the related information from the item master table for the selected product_id.&lt;br /&gt;&lt;br /&gt;An on demand process would generate an xml stream and send it back to the page.&lt;br /&gt;&lt;br /&gt;&amp;lt;body&gt;&lt;br /&gt;&amp;lt;desc&gt;this xml genericly sets multiple items&amp;lt;/desc&gt;&lt;br /&gt;&amp;lt;item id="f32_2"&gt;JavaScript: The Definitive Guide&amp;lt;/item&gt;&lt;br /&gt;&amp;lt;item id="f33_2"&gt;31.49&amp;lt;/item&gt;&lt;br /&gt;&amp;lt;item id="f34_2"&gt;David Flanagan&amp;lt;/item&gt;&lt;br /&gt;&amp;lt;item id="f35_2"&gt;1&amp;lt;/item&gt;&lt;br /&gt;&amp;lt;/body&gt;&lt;br /&gt;&lt;br /&gt;A piece of javascript code would loop through that xml string and assign the values returned to the specified items in the tabular form.&lt;br /&gt; &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_y49oG7ohpQE/SjVuZc7E5rI/AAAAAAAAAR0/-D0m6Q098sw/s1600-h/easy_oracle_done.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 127px;" src="http://1.bp.blogspot.com/_y49oG7ohpQE/SjVuZc7E5rI/AAAAAAAAAR0/-D0m6Q098sw/s320/easy_oracle_done.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5347301516112094898" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-4163197041928586729?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/4163197041928586729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=4163197041928586729&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/4163197041928586729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/4163197041928586729'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2009/06/tabular-forms-autofill.html' title='Tabular Forms - Autofill'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_y49oG7ohpQE/SjVuTa_nrYI/AAAAAAAAARs/ztJ5Y8frrSc/s72-c/easy_oracle.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-3986279482153936744</id><published>2009-06-04T20:58:00.009+02:00</published><updated>2009-06-04T21:44:49.763+02:00</updated><title type='text'>How to Debug Ajax and On Demand Processes</title><content type='html'>I am getting several emails every week regarding one the same issue - Ajax and On Demand Process. In the most of the cases there is a problem with the On Demand Process code. Unfortunatelly Apex is not going to compile your code once you save it. If there is an error in your code the results will not be as expected. On the other side it is quite easy to debug that:&lt;br /&gt;&lt;br /&gt;1. Try running your code in SQL Workshop - if your process is supposed to generate an XML file for a select list, you should see a select list if the code is O.K.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_y49oG7ohpQE/SighTWGbvMI/AAAAAAAAAQs/B51idmhogTo/s1600-h/select_list.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 205px;" src="http://3.bp.blogspot.com/_y49oG7ohpQE/SighTWGbvMI/AAAAAAAAAQs/B51idmhogTo/s320/select_list.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5343557574108888258" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. Use Firefox and download Firebug. Using Firebug you will be able to immediatelly see the results of the On Demand Process you created. Just open the Console and run your process:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_y49oG7ohpQE/SigcLZuXxCI/AAAAAAAAAQU/yTC28F0SrM0/s1600-h/error_code.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 83px;" src="http://3.bp.blogspot.com/_y49oG7ohpQE/SigcLZuXxCI/AAAAAAAAAQU/yTC28F0SrM0/s320/error_code.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5343551940084614178" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;3. Be carefull with naming of your On Demand Process - the name of your process in the javascript has to exactly match the name of the process in application processes. Using Firefox and Firebug will help to find that out:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_y49oG7ohpQE/SigiX4FH18I/AAAAAAAAAQ0/y7dbhPbCBYs/s1600-h/process.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 40px;" src="http://1.bp.blogspot.com/_y49oG7ohpQE/SigiX4FH18I/AAAAAAAAAQ0/y7dbhPbCBYs/s320/process.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5343558751461300162" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;4. Javascript is using htmldb_Get function to call your process the same way you would do that by typing it in the browser address bar - having a blank character there would retreive no results. That means that thhe part of the javascript code &lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;pre&gt;&lt;br /&gt;htmldb_Get(null,html_GetElement('pFlowId').value,&lt;br /&gt;'APPLICATION_PROCESS=CASCADING_SELECT_LIST1',0);&lt;br /&gt;get.add('CASCADING_SELECTLIST_ITEM_1',pThis.value);&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;equals to &lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;pre&gt;&lt;br /&gt;f?p=&amp;APP_ID.:0:&amp;SESSION.:APPLICATION_PROCESS=CASCADING_SELECT_LIST1:&lt;br /&gt;NO::CASCADING_SELECTLIST_ITEM_1:30&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;5. This would also mean that you can test your process using a simple link in your browser:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_y49oG7ohpQE/SigfWARvB_I/AAAAAAAAAQc/UmwJ--wJvXA/s1600-h/xml_file.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 80px;" src="http://2.bp.blogspot.com/_y49oG7ohpQE/SigfWARvB_I/AAAAAAAAAQc/UmwJ--wJvXA/s320/xml_file.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5343555420767062002" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;6. Make sure to name your application and page items correctly in the javascript part of the code. If your misstype a name no explicit error message will be issued. However, using Firefox and Firebug you will see a lot of javascript code in the Console and eventually find an error like displayed in the following screenshot:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_y49oG7ohpQE/Sigg4sbOG3I/AAAAAAAAAQk/W1Hk7huDFV4/s1600-h/error_javascript.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 150px;" src="http://3.bp.blogspot.com/_y49oG7ohpQE/Sigg4sbOG3I/AAAAAAAAAQk/W1Hk7huDFV4/s320/error_javascript.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5343557116245187442" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;7. Finaly, opening the "Post" Tab in Firebug, you will get an overview of your main parameters:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_y49oG7ohpQE/SigjoyEQKgI/AAAAAAAAAQ8/GQKlEGKMCSY/s1600-h/post.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 63px;" src="http://2.bp.blogspot.com/_y49oG7ohpQE/SigjoyEQKgI/AAAAAAAAAQ8/GQKlEGKMCSY/s320/post.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5343560141416442370" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enjoy debugging your ajax code.&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-3986279482153936744?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/3986279482153936744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=3986279482153936744&amp;isPopup=true' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/3986279482153936744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/3986279482153936744'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2009/06/how-to-debug-ajax-and-on-demand.html' title='How to Debug Ajax and On Demand Processes'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_y49oG7ohpQE/SighTWGbvMI/AAAAAAAAAQs/B51idmhogTo/s72-c/select_list.gif' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-2362929839975127557</id><published>2009-06-04T10:32:00.007+02:00</published><updated>2009-06-04T10:56:52.153+02:00</updated><title type='text'>Magic Page 0</title><content type='html'>In &lt;a href="http://deneskubicek.blogspot.com/2009/06/applying-css-conditionally.html" target="new"&gt;this&lt;/a&gt; posting I explained how to overwrite css rules using page header text or a conditional region. Something similar is also possible using the page 0. One of my customers asked me to create a page template in a corporate layout which they could use for their future applications. The only difference between the applications would be the image they display in the page header. The customers also had a mix of different browsers starting with IE6 over IE7 and Firefox. There were two problems I was faced with:&lt;br /&gt;&lt;br /&gt;1. how to easily apply / change the image displayed in the header of the application&lt;br /&gt;&lt;br /&gt;2. different browsers (IE6) would interpret my css code differently than the other browsers&lt;br /&gt;&lt;br /&gt;I solved the problem in the following way:&lt;br /&gt;&lt;br /&gt;1. created a page 0&lt;br /&gt;&lt;br /&gt;2. created a "No Template" Region on the page&lt;br /&gt;&lt;br /&gt;3. added the following code to the region source&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;style type="text/css"&gt;&lt;br /&gt;.top_header{background-image:&lt;br /&gt;url(&amp;#35;IMAGE_PREFIX&amp;#35;themes/theme_basf/Sorp2.gif);&lt;br /&gt;background-repeat: no-repeat;&lt;br /&gt;background-position: 290px -45px;&lt;br /&gt;background-color:&amp;#35;BFD0F4;}&lt;br /&gt;&lt;br /&gt;.basf01overlapping{background-image:&lt;br /&gt;url(&amp;#35;IMAGE_PREFIX&amp;#35;themes/theme_basf/Sorp2.gif);&lt;br /&gt;background-repeat: no-repeat;&lt;br /&gt;background-position: 290px -15px;}&lt;br /&gt;&lt;br /&gt;&amp;lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!--[if gte IE 6]&gt;&lt;br /&gt;&amp;lt;style type="text/css"&gt;&lt;br /&gt;&amp;#35;navigationArea{width:99%;}&lt;br /&gt;&amp;lt;/style&gt;&lt;br /&gt;&amp;lt;![endif]--&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The style part of the code would display the custom image. The javascript part would overwrite the style for the navigationArea if IE6 is used to view the page. Once they create a new application the only thing that needs to be done is to copy the page 0 from one of the existing applications and change the image name.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_y49oG7ohpQE/SieKeeJYzZI/AAAAAAAAAQM/_Aaj5yM_tU4/s1600-h/region.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 186px;" src="http://3.bp.blogspot.com/_y49oG7ohpQE/SieKeeJYzZI/AAAAAAAAAQM/_Aaj5yM_tU4/s320/region.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5343391738991529362" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-2362929839975127557?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/2362929839975127557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=2362929839975127557&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/2362929839975127557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/2362929839975127557'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2009/06/magic-page-0.html' title='Magic Page 0'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_y49oG7ohpQE/SieKeeJYzZI/AAAAAAAAAQM/_Aaj5yM_tU4/s72-c/region.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-4456234744086745590</id><published>2009-06-02T12:33:00.005+02:00</published><updated>2009-06-02T13:16:10.528+02:00</updated><title type='text'>Function Returning Links</title><content type='html'>In Apex you can create links out of your columns in a report. What you currently can't do is to put a condition behind this link and generate it upon that condition - if there is a link then it is there for all the rows. The only workarround for this is to create the link in your SQL. In that case your SQL may look quite clumsy and hard to read. Something like this:&lt;br /&gt;&lt;span&gt;&lt;pre&gt;&lt;br /&gt;SELECT CASE&lt;br /&gt;          WHEN deptno = 10&lt;br /&gt;             THEN    '&amp;lt;a href="javascript:popUp2('''&lt;br /&gt;                  || 'f?p=&amp;APP_ID.:500:&amp;SESSION.::&amp;DEBUG.::'&lt;br /&gt;                  || 'P500_DEPTNO:'&lt;br /&gt;                  || deptno&lt;br /&gt;                  || ''', 700, 700);"&gt;'&lt;br /&gt;                  || '&amp;lt;img src="&amp;#35;IMAGE_PREFIX&amp;#35;gobut.gif"&gt;'&lt;br /&gt;                  || '&amp;lt;/a&gt;'&lt;br /&gt;          WHEN deptno = 20&lt;br /&gt;             THEN    '&amp;lt;a href="javascript:popUp2('''&lt;br /&gt;                  || 'f?p=&amp;APP_ID.:501:&amp;SESSION.::&amp;DEBUG.::'&lt;br /&gt;                  || 'P501_DEPTNO:'&lt;br /&gt;                  || deptno&lt;br /&gt;                  || ''', 700, 700);"&gt;'&lt;br /&gt;                  || '&amp;lt;img src="&amp;#35;IMAGE_PREFIX&amp;#35;go_search.gif"&gt;'&lt;br /&gt;                  || '&amp;lt;/a&gt;'&lt;br /&gt;          ELSE    '&amp;lt;a href="javascript:popUp2('''&lt;br /&gt;               || 'f?p=&amp;APP_ID.:502:&amp;SESSION.::&amp;DEBUG.::'&lt;br /&gt;               || 'P502_DEPTNO:'&lt;br /&gt;               || deptno&lt;br /&gt;               || ''', 700, 700);"&gt;'&lt;br /&gt;               || '&amp;lt;img src='&lt;br /&gt;               || '"&amp;#35;WORKSPACE_IMAGES&amp;#35;go_button.gif"&gt;'&lt;br /&gt;               || '&amp;lt;/a&gt;'&lt;br /&gt;       END LINK,&lt;br /&gt;       ename, job, hiredate&lt;br /&gt;  FROM emp&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;The solution for this problem you can find &lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:24" target="new"&gt;here&lt;/a&gt;. Back in 2006 I created a function for generating links. This function can do the following for you:&lt;br /&gt;&lt;br /&gt;- create a link based on a target page you provide, withouth having to code a full apex link,&lt;br /&gt;- replace the link with an image if desired,&lt;br /&gt;- sort the links based on any columns in your source,&lt;br /&gt;- open the target page in the same window or in a popup window,&lt;br /&gt;- add a request to your link,&lt;br /&gt;- reset pagination if required,&lt;br /&gt;- add a checksum to your link.&lt;br /&gt;&lt;br /&gt;At the end, your query looks much better if you use that function:&lt;br /&gt;&lt;span&gt;&lt;pre&gt;&lt;br /&gt;SELECT CASE&lt;br /&gt;          WHEN deptno = 10&lt;br /&gt;             THEN return_link_fn (p_page         =&gt; 500,&lt;br /&gt;                                  p_item         =&gt; 'P500_DEPTNO',&lt;br /&gt;                                  p_value        =&gt; deptno,&lt;br /&gt;                                  p_image_n      =&gt; 'gobut.gif'&lt;br /&gt;                                 )&lt;br /&gt;          WHEN deptno = 20&lt;br /&gt;             THEN return_link_fn (p_page         =&gt; 501,&lt;br /&gt;                                  p_item         =&gt; 'P501_DEPTNO',&lt;br /&gt;                                  p_value        =&gt; deptno,&lt;br /&gt;                                  p_image_n      =&gt; 'go_search.gif'&lt;br /&gt;                                 )&lt;br /&gt;             ELSE return_link_fn (p_page         =&gt; 502,&lt;br /&gt;                                  p_item         =&gt; 'P502_DEPTNO',&lt;br /&gt;                                  p_value        =&gt; deptno,&lt;br /&gt;                                  p_image_n      =&gt; 'go_button.gif'&lt;br /&gt;                                 )&lt;br /&gt;       END LINK,&lt;br /&gt;       ename, job, hiredate&lt;br /&gt;  FROM emp&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_y49oG7ohpQE/SiUJ1OmnEKI/AAAAAAAAAQE/eD7thPlxAOg/s1600-h/conditional_function.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 247px; height: 320px;" src="http://3.bp.blogspot.com/_y49oG7ohpQE/SiUJ1OmnEKI/AAAAAAAAAQE/eD7thPlxAOg/s320/conditional_function.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5342687343002718370" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-4456234744086745590?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/4456234744086745590/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=4456234744086745590&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/4456234744086745590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/4456234744086745590'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2009/06/function-returning-links.html' title='Function Returning Links'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_y49oG7ohpQE/SiUJ1OmnEKI/AAAAAAAAAQE/eD7thPlxAOg/s72-c/conditional_function.gif' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-7217613485873522920</id><published>2009-06-01T10:10:00.004+02:00</published><updated>2009-06-01T11:02:18.227+02:00</updated><title type='text'>Applying CSS Conditionally</title><content type='html'>It may happen that you have an exception on one or more of your pages where your styling deviates from standard. In addition to that, you may want to apply your style conditionally. You have several choices in order to solve that problem:&lt;br /&gt;&lt;br /&gt;1. make changes to your css file&lt;br /&gt;2. create a css file within your workspace and reference it in your page template&lt;br /&gt;3. create an additional template for your new style&lt;br /&gt;&lt;br /&gt;However, this reqiures severals steps and could be a problem in some cases:&lt;br /&gt;&lt;br /&gt;- you are not managing your HTTP Server and your dba's need months in order to accept such a small change&lt;br /&gt;&lt;br /&gt;- you need to make changes to your page templates&lt;br /&gt;&lt;br /&gt;- you need to create an additional template (region template, report template, ...)&lt;br /&gt;&lt;br /&gt;Sometimes you need to go that way but there are also situations where you could solve that as in &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:233" target="new"&gt;this example&lt;/a&gt; in my &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:1" target="new"&gt;Demo Application&lt;/a&gt;. Using Firefox and Web Developer Toolbar you can easily find out the classes and their properties referenced in your template. You can adjust those properties to whatever you need and put that code into the header text of your page:&lt;br /&gt;&lt;br /&gt;&amp;lt;style&gt;&lt;br /&gt;.t10ReportsRegion .t10RegionBody {background-color:#E2E5EA;}&lt;br /&gt;.t10ReportsRegion .t10ButtonHolder {background-color:#E2E5EA;}&lt;br /&gt;&amp;lt;/style&gt;&lt;br /&gt;&lt;br /&gt;and the style will be applied only on that particular page. This will overwrite the style applied through the class with the same name in your css file.&lt;br /&gt;&lt;br /&gt;If you need to apply your style conditionally, you can do the following:&lt;br /&gt;&lt;br /&gt;1. create a region with the highest sequence and do not apply any template to it,&lt;br /&gt;&lt;br /&gt;2. put your code in the region source of that region&lt;br /&gt;&lt;br /&gt;3. change the region to render conditionally&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_y49oG7ohpQE/SiOUVqncX0I/AAAAAAAAAP8/OVOr9odcsAk/s1600-h/snapshot.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 202px;" src="http://4.bp.blogspot.com/_y49oG7ohpQE/SiOUVqncX0I/AAAAAAAAAP8/OVOr9odcsAk/s320/snapshot.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5342276682929430338" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-7217613485873522920?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/7217613485873522920/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=7217613485873522920&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/7217613485873522920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/7217613485873522920'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2009/06/applying-css-conditionally.html' title='Applying CSS Conditionally'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_y49oG7ohpQE/SiOUVqncX0I/AAAAAAAAAP8/OVOr9odcsAk/s72-c/snapshot.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-2840144264343970442</id><published>2009-05-30T14:22:00.012+02:00</published><updated>2009-05-30T17:55:59.440+02:00</updated><title type='text'>Checking an Authorization Scheme within a PL/SQL Block</title><content type='html'>Recently, I had a quite tricky requirement where within a customer application I needed to check if user has a required role to run a process, edit a field or see an information. Many times these conditions were a combination of different authorization schemes and other rules determined during the runtime of the application. So the problem was not solved by just adding an authorization scheme to the object. More than one authorization scheme needed to be checked together with some other conditions. Using the apex_util package and the function public_check_authorization I was able to successfully acomplish those tasks. This is a modified example of the code I used there:&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;&lt;pre&gt;&lt;br /&gt;BEGIN&lt;br /&gt;   IF     (   apex_util.public_check_authorization ('AUTH_GROUP_1')&lt;br /&gt;           OR apex_util.public_check_authorization ('AUTH_GROUP_2')&lt;br /&gt;          )&lt;br /&gt;      AND :p12_status = '0'&lt;br /&gt;   THEN&lt;br /&gt;      RETURN TRUE;&lt;br /&gt;   ELSIF     (   apex_util.public_check_authorization ('AUTH_GROUP_2')&lt;br /&gt;              OR apex_util.public_check_authorization ('AUTH_GROUP_3')&lt;br /&gt;             )&lt;br /&gt;         AND :p12_status = '1'&lt;br /&gt;   THEN&lt;br /&gt;      RETURN TRUE;&lt;br /&gt;   ELSE&lt;br /&gt;      RETURN FALSE;&lt;br /&gt;   END IF;&lt;br /&gt;END;&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-2840144264343970442?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/2840144264343970442/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=2840144264343970442&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/2840144264343970442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/2840144264343970442'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2009/05/checking-authorization-scheme-within.html' title='Checking an Authorization Scheme within a PL/SQL Block'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-1725323424328419102</id><published>2009-05-30T09:50:00.006+02:00</published><updated>2009-05-30T11:51:31.243+02:00</updated><title type='text'>Execute Javascript through PL/SQL</title><content type='html'>Sometimes, like in &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:170" target="new"&gt;this&lt;/a&gt; case, where I needed to set the focus on load to a specific line in a table when inserting new rows, you need to execute javascript within your PL/SQL block. In &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:232" target="new"&gt;this&lt;/a&gt; example in my Demo Application you will find an explanation of the code you need for that.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_y49oG7ohpQE/SiDmg2ZX54I/AAAAAAAAAPs/rT9GcjCW0MI/s1600-h/code.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="http://1.bp.blogspot.com/_y49oG7ohpQE/SiDmg2ZX54I/AAAAAAAAAPs/rT9GcjCW0MI/s320/code.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5341522610093549442" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_y49oG7ohpQE/SiDmmC_cXcI/AAAAAAAAAP0/4T7yYUP1GRs/s1600-h/alert.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 140px;" src="http://3.bp.blogspot.com/_y49oG7ohpQE/SiDmmC_cXcI/AAAAAAAAAP0/4T7yYUP1GRs/s320/alert.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5341522699373796802" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-1725323424328419102?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/1725323424328419102/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=1725323424328419102&amp;isPopup=true' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/1725323424328419102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/1725323424328419102'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2009/05/execute-javascript-throuhg-plsql.html' title='Execute Javascript through PL/SQL'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_y49oG7ohpQE/SiDmg2ZX54I/AAAAAAAAAPs/rT9GcjCW0MI/s72-c/code.gif' height='72' width='72'/><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-52380165713189455</id><published>2009-05-29T13:05:00.004+02:00</published><updated>2009-05-29T13:43:43.170+02:00</updated><title type='text'>Switch between Apex Versions</title><content type='html'>This is a part of the &lt;a href="http://download.oracle.com/docs/cd/E14373_01/install.32/e13366/trouble.htm#insertedID3" traget="new"&gt;apex documentation&lt;/a&gt; but the fact is the most of us simply don't know about it. I have several customers and those customers have different versions of Apex installed. I am using XE on my Laptop to develop their applications. Therefore I need to be able to use different versions of apex simultaneously. With a help of the two simple scripts wrapped into an executable, I can switch between the versions in seconds:&lt;br /&gt;&lt;br /&gt;ALTER SESSION SET CURRENT_SCHEMA = FLOWS_030000;&lt;br /&gt;exec flows_030000.wwv_flow_upgrade.switch_schemas('APEX_030200','FLOWS_030000');&lt;br /&gt;&lt;br /&gt;to switch to the version 3.0.1 and &lt;br /&gt;&lt;br /&gt;ALTER SESSION SET CURRENT_SCHEMA = APEX_030200;&lt;br /&gt;exec apex_030200.wwv_flow_upgrade.switch_schemas('FLOWS_030000','APEX_030200');&lt;br /&gt;&lt;br /&gt;to go back to the latest release 3.2.&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-52380165713189455?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/52380165713189455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=52380165713189455&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/52380165713189455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/52380165713189455'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2009/05/switch-between-apex-versions.html' title='Switch between Apex Versions'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-5355830163043833225</id><published>2009-05-28T10:24:00.009+02:00</published><updated>2009-06-05T10:17:29.776+02:00</updated><title type='text'>One Million Pageviews per Year</title><content type='html'>There are &lt;span style="font-weight:bold;"&gt;1226&lt;/span&gt; registered users of my workspace on apex.oracle.com. Arround &lt;span style="font-weight:bold;"&gt;300&lt;/span&gt; of those are still active. Many of those inactive accounts are using a download of My &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:1" target="new"&gt;Demo Applicatiion&lt;/a&gt; installed localy.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_y49oG7ohpQE/Sh5LQxtoJ6I/AAAAAAAAAPc/S5YJcxaiA0c/s1600-h/ws_users.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 132px;" src="http://4.bp.blogspot.com/_y49oG7ohpQE/Sh5LQxtoJ6I/AAAAAAAAAPc/S5YJcxaiA0c/s320/ws_users.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5340788959702689698" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If I run Google Analytics for the last 12 months I will get a nice analysis of the visits which says the following:&lt;br /&gt;&lt;br /&gt;1. &lt;span style="font-weight:bold;"&gt;1,001,992&lt;/span&gt; Pageviews &lt;br /&gt;&lt;br /&gt;2. &lt;span style="font-weight:bold;"&gt;104,510&lt;/span&gt; Visits&lt;br /&gt;&lt;br /&gt;3. &lt;span style="font-weight:bold;"&gt;9.6&lt;/span&gt; Pages per Visit&lt;br /&gt;&lt;br /&gt;4. &lt;span style="font-weight:bold;"&gt;8.25&lt;/span&gt; Minutes - Average Time on Site&lt;br /&gt;&lt;br /&gt;These statistics do not include the clicks and visits done within the workspace while investigating the code behind the single pages. At peak times the application reaches &lt;span style="font-weight:bold;"&gt;6000&lt;/span&gt; pageviews a day.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_y49oG7ohpQE/SijUiJVpa1I/AAAAAAAAARE/RrJcd2DwG8E/s1600-h/google_analytics.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 162px;" src="http://4.bp.blogspot.com/_y49oG7ohpQE/SijUiJVpa1I/AAAAAAAAARE/RrJcd2DwG8E/s320/google_analytics.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5343754640962448210" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-5355830163043833225?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/5355830163043833225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=5355830163043833225&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/5355830163043833225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/5355830163043833225'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2009/05/one-million-pageclicks-per-year.html' title='One Million Pageviews per Year'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_y49oG7ohpQE/Sh5LQxtoJ6I/AAAAAAAAAPc/S5YJcxaiA0c/s72-c/ws_users.gif' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-1691378678978555660</id><published>2009-05-16T13:47:00.005+02:00</published><updated>2009-05-16T14:00:47.384+02:00</updated><title type='text'>New Training - September 2009</title><content type='html'>I was too busy to post about our sucessfull training in March this year. It is nice to see how the apex community is growing. It looks like every company using oracle is sooner or later going to consider using apex to build their applications. &lt;br /&gt;&lt;br /&gt;We decided to schedule our next training for September of this year. More details you can find &lt;a href="http://www.opal-consulting.de/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Ich hatte kaum Zeit in den letzten Monaten. Auch nicht, um über unser letztes Training im März zu berichten. Die Anzahl der Teilnehmer übertraf unsere Erwartungen. Die Anzahl derer, die es aus terminlichen Gründen nicht schaffen konnten war ebenfalls sehr gross. Wir haben deswegen entschieden einen weiteren Termin im September zu organisieren. Wenn Sie Interesse haben, können Sie &lt;a href="http://www.opal-consulting.de/"&gt;hier&lt;/a&gt; weitere Details über dieses Training finden.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"  href="http://www.opal-consulting.de/"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 163px;" src="http://4.bp.blogspot.com/_y49oG7ohpQE/Sg6qd3F89rI/AAAAAAAAAPU/6jb-4Kr6fQA/s320/training_herbst_2009_a.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5336390038462461618" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-1691378678978555660?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/1691378678978555660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=1691378678978555660&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/1691378678978555660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/1691378678978555660'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2009/05/new-training-september-2009.html' title='New Training - September 2009'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_y49oG7ohpQE/Sg6qd3F89rI/AAAAAAAAAPU/6jb-4Kr6fQA/s72-c/training_herbst_2009_a.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-3953843086951087505</id><published>2009-03-19T13:33:00.009+01:00</published><updated>2009-03-19T14:13:07.000+01:00</updated><title type='text'>Using Oracle Text with Table Data</title><content type='html'>Using LIKE clause with large tables may be a serious performance problem, involving full table scans for even a very small result set. The time you need to get a result will increase tremendously. Using Oracle Text may help you overcome those issues. In this &lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:72" target="new"&gt;simple example&lt;/a&gt; in my &lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:1" target="new"&gt;Demo Application&lt;/a&gt; I am showing how to start using Oracle Text on a table. There are also many other features included with Oracle Text such as preferred terms, fuzzy searches, highlighting, and much more. All explained in &lt;a href="http://download.oracle.com/docs/cd/B28359_01/text.111/b28304/csql.htm" target="new"&gt;Oracle Text Documentation&lt;/a&gt;. Try it out.&lt;br /&gt;&lt;/br&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_y49oG7ohpQE/ScJETDl5JeI/AAAAAAAAAPE/nE8_L8BcXm4/s1600-h/oracle_text.GIF"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 235px;" src="http://2.bp.blogspot.com/_y49oG7ohpQE/ScJETDl5JeI/AAAAAAAAAPE/nE8_L8BcXm4/s320/oracle_text.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5314885604423050722" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_y49oG7ohpQE/ScJEXv7juWI/AAAAAAAAAPM/QmUpcAZbkX0/s1600-h/oracle_text_2.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 296px; height: 320px;" src="http://2.bp.blogspot.com/_y49oG7ohpQE/ScJEXv7juWI/AAAAAAAAAPM/QmUpcAZbkX0/s320/oracle_text_2.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5314885685044558178" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-3953843086951087505?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/3953843086951087505/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=3953843086951087505&amp;isPopup=true' title='25 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/3953843086951087505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/3953843086951087505'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2009/03/using-oracle-text-with-table-data.html' title='Using Oracle Text with Table Data'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_y49oG7ohpQE/ScJETDl5JeI/AAAAAAAAAPE/nE8_L8BcXm4/s72-c/oracle_text.GIF' height='72' width='72'/><thr:total>25</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-1938491124168107809</id><published>2009-01-29T23:17:00.005+01:00</published><updated>2009-01-29T23:24:30.273+01:00</updated><title type='text'>Apex Stammtisch</title><content type='html'>Dietmar hat es hier gepostet:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://daust.blogspot.com/2009/01/apex-stammtisch-am-1022009-in-siegburg.html" target="new"&gt;APEX Stammtisch am 10.2.2009 in Siegburg&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Wir organisieren am 10 Februar 2009 um 19:00 einen Stammtisch in Siegburg &lt;br /&gt;&lt;br /&gt;Sion im Carre&lt;br /&gt;Neue Poststr. 15&lt;br /&gt;53721 Siegburg&lt;br /&gt;&lt;a href="http://www.s-im-carre.de/" target="new"&gt;http://www.s-im-carre.de/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Sie können sich &lt;a href="http://www.opal-consulting.de/apex/f?p=107:11:0:::11:P11_EVT_ID:10" target="new"&gt;hier anmelden&lt;/a&gt;.&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-1938491124168107809?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/1938491124168107809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=1938491124168107809&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/1938491124168107809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/1938491124168107809'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2009/01/apex-stammtisch.html' title='Apex Stammtisch'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-8333869434220681643</id><published>2009-01-23T16:46:00.003+01:00</published><updated>2009-01-23T17:18:45.448+01:00</updated><title type='text'>Custom Export to CSV (again)</title><content type='html'>If you ever had to deal with exporting data different from the data you display, you probably visited this blog posting:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://spendolini.blogspot.com/2006/04/custom-export-to-csv.html" target="new"&gt;http://spendolini.blogspot.com/2006/04/custom-export-to-csv.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;which shows how that can be done. The purpose of the post is a bit different - it shows how to adjust the format of the exported file. Just recently I had a requirement to display some reports created using analytic functions with some groupings and counts. At the same time, there was a requirement to export the data without the results of the analytics. I could have used Scott's posting but I was too lazy. Instead of that I used the following (simple) &lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:227" target="new" &gt;approach&lt;/a&gt;. Basically, you would create two reports - on in which you display your data and one (never displayed) for exporting. The only thing you need to do then is to modify the link label.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_y49oG7ohpQE/SXnt08s1HeI/AAAAAAAAAO0/yEMaxm6V-0Y/s1600-h/custom_export.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 250px; height: 320px;" src="http://4.bp.blogspot.com/_y49oG7ohpQE/SXnt08s1HeI/AAAAAAAAAO0/yEMaxm6V-0Y/s320/custom_export.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5294524330853866978" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-8333869434220681643?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/8333869434220681643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=8333869434220681643&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/8333869434220681643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/8333869434220681643'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2009/01/custom-export-to-csv-again.html' title='Custom Export to CSV (again)'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_y49oG7ohpQE/SXnt08s1HeI/AAAAAAAAAO0/yEMaxm6V-0Y/s72-c/custom_export.gif' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-4424887908920867654</id><published>2009-01-17T17:29:00.006+01:00</published><updated>2009-01-17T17:43:24.735+01:00</updated><title type='text'>Setting Item Session State using Ajax</title><content type='html'>This question is a frequently asked one. So, how can you set a value of an item without submitting a page? Today, I answered that question in the &lt;a href="http://forums.oracle.com/forums/thread.jspa?messageID=3220791" target="new"&gt;Oracle Forum&lt;/a&gt;. In addition to that, I created an example in my &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:229" target="new"&gt;Demo Application&lt;/a&gt; showing those few steps you need to make in order to achieve that. Basically, you just need a small piece of javascript in your page header and an "onchange" call of that javascript in the HTML Form Element Attributes of your item. The code is generic and you can just copy-paste it without a need to change anything.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_y49oG7ohpQE/SXIJ3BHtASI/AAAAAAAAAOs/c7xIwztrjcM/s1600-h/item_session_state_ajax.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 234px;" src="http://2.bp.blogspot.com/_y49oG7ohpQE/SXIJ3BHtASI/AAAAAAAAAOs/c7xIwztrjcM/s320/item_session_state_ajax.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5292303352911954210" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enjoy.&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-4424887908920867654?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/4424887908920867654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=4424887908920867654&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/4424887908920867654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/4424887908920867654'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2009/01/ajax-setting-item-session-state.html' title='Setting Item Session State using Ajax'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_y49oG7ohpQE/SXIJ3BHtASI/AAAAAAAAAOs/c7xIwztrjcM/s72-c/item_session_state_ajax.gif' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-1317550843033535433</id><published>2009-01-09T15:45:00.005+01:00</published><updated>2009-01-09T16:12:18.197+01:00</updated><title type='text'>Apex Training</title><content type='html'>In diesen "Krisenzeiten" erzählen alle darüber wie alles schlecht ist und was alles noch schlechter wird... Das ist ziemlich lässtig und es macht schlechte Laune. Aber, was ist denn eine Krise? In meinen Augen, das ist auch eine grosse Chance etwas zu ändern. Natürlich, zum Besseren. Und es gibt so viele Möglichkeiten. Zum Beispiel eigene Apex-Kenntnisse zu verbessern. &lt;a href="http://www.inside-oracle-apex.com/" target="new"&gt;Patrick&lt;/a&gt;, &lt;a href="http://www.daust.blogspot.com/" target="new"&gt;Dietmar&lt;/a&gt; und ich organisieren im März ein weiteres Training in Bensheim im &lt;a href="http://www.alleehotel.de/" target="new"&gt;Alee-Hotel Europa&lt;/a&gt;, um Best Practice Vorgehensweisen aus vielen erfolgreichen APEX Projekten zu lernen.&lt;br /&gt;&lt;br /&gt;Neben der Informationen, die wir uns in zahlreichen APEX Projekten angeeignet haben, kommen die abendlichen Sessions (von 19:00-??:00) hinzu.&lt;br /&gt;&lt;br /&gt;Dort stehen wir Ihnen für zusätzliche Hands-On Sessions zur Verfügung, um die Beispiele des Tages durchzuarbeiten oder auch, um konkrete Fragestellungen in Ihren aktuellen Projekten zu diskutieren.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.opal-consulting.de/training/oracle_apex_advanced"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 209px;" src="http://2.bp.blogspot.com/_y49oG7ohpQE/SWdmGk5ig0I/AAAAAAAAAN8/swo5bnRqDks/s320/training.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5289308550540198722" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Profitieren Sie von unserem jahrelangen und praxiserprobtem Oracle APEX Knowhow! Die Agenda und weitere Details findet Ihr auf der &lt;a href="http://www.opal-consulting.de/training/oracle_apex_advanced" target="new" &gt;Web-Site&lt;/a&gt; wo Ihr Euch auch anmelden könnt.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-1317550843033535433?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/1317550843033535433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=1317550843033535433&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/1317550843033535433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/1317550843033535433'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2009/01/apex-training.html' title='Apex Training'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_y49oG7ohpQE/SWdmGk5ig0I/AAAAAAAAAN8/swo5bnRqDks/s72-c/training.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-7236020341233896564</id><published>2008-10-19T10:05:00.005+02:00</published><updated>2008-10-19T10:22:29.714+02:00</updated><title type='text'>Dynamic Charts</title><content type='html'>Whenever you need to create a chart with multiple series, you will go there and hardcode those series, creating an almost identical SQL for each one of them. As long as your values remain the same, that will be ok. But what if they change? Actualy, the solution is pretty simple - you need to create a PL/SQL Block to return all the series in one SQL. &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:222" target="new"&gt;This example&lt;/a&gt; in my &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:1" target="new"&gt;Demo Application&lt;/a&gt; shows how to write such a Function.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_y49oG7ohpQE/SPruN0Kym0I/AAAAAAAAALM/z9H2oiCDfpM/s1600-h/dynamic_chart.GIF"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_y49oG7ohpQE/SPruN0Kym0I/AAAAAAAAALM/z9H2oiCDfpM/s320/dynamic_chart.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5258777436018088770" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you replace the column and table names, you can use the same function for all of your charts with multiple series.&lt;br /&gt;&lt;br /&gt;Enjoy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-7236020341233896564?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/7236020341233896564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=7236020341233896564&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/7236020341233896564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/7236020341233896564'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/10/dynamic-charts.html' title='Dynamic Charts'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_y49oG7ohpQE/SPruN0Kym0I/AAAAAAAAALM/z9H2oiCDfpM/s72-c/dynamic_chart.GIF' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-7173440385632852927</id><published>2008-10-05T22:39:00.005+02:00</published><updated>2008-10-05T22:55:15.918+02:00</updated><title type='text'>Tabular Form - Checkbox for Setting values to 'Y' or 'N'</title><content type='html'>This is also one of frequently asked question in the Apex Forum:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=493243" target="new"&gt;http://forums.oracle.com/forums/thread.jspa?threadID=493243&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=714172" target="new"&gt;http://forums.oracle.com/forums/thread.jspa?threadID=714172&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Using a checkbox for deleting rows is fine, but how do you use it if you want to flag the records and have a value updated depending on the checkbox status (valid/invalid, yes/no)?&lt;br /&gt;&lt;br /&gt;It was &lt;a href="http://www.inside-oracle-apex.com" target="new"&gt;Patrick Wolf&lt;/a&gt; who initially helped me to understand how a checkbox array works. He also created an example (on the fly) to show this can be managed. However, this example was based on a standard tabular form and it couldn't be reporoduced by many interested visitors of my &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:1" target="new"&gt;Demo Application&lt;/a&gt;. Since this question has been repeated several times in the last couple of weeks, I decided to create a new example, which is based on a manual tabular form.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_y49oG7ohpQE/SOkog84uGpI/AAAAAAAAAK0/Tlwgfpxv2fM/s1600-h/tab_with_checkbox.GIF"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_y49oG7ohpQE/SOkog84uGpI/AAAAAAAAAK0/Tlwgfpxv2fM/s320/tab_with_checkbox.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5253774986869349010" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So, if you have a similar requirement, which is there in many cases, you may want to have a look here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:219" target="new"&gt;http://apex.oracle.com/pls/otn/f?p=31517:219&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-7173440385632852927?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/7173440385632852927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=7173440385632852927&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/7173440385632852927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/7173440385632852927'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/10/tabular-form-checkbox-for-setting.html' title='Tabular Form - Checkbox for Setting values to &apos;Y&apos; or &apos;N&apos;'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_y49oG7ohpQE/SOkog84uGpI/AAAAAAAAAK0/Tlwgfpxv2fM/s72-c/tab_with_checkbox.GIF' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-6007994555456051069</id><published>2008-10-01T11:03:00.005+02:00</published><updated>2008-10-01T13:15:33.955+02:00</updated><title type='text'>Validation with Ajax</title><content type='html'>As soon as you need to do some date or number validations using javascript, you will notice how cumbersome that attempt could be. Just recently, I had to programm an application which needed some date and number validations prior to the page submittion. I found that using ajax and letting your database do those kind of cheks is a quite elegant way.&lt;br /&gt;&lt;br /&gt;In my &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:1" target="new"&gt;Demo Application&lt;/a&gt; you will find an &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:217" target="new"&gt;example&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:217" target="new"&gt;http://apex.oracle.com/pls/otn/f?p=31517:217&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;showing how easy it is to set it up.&lt;br /&gt;&lt;br /&gt;Especially the date validation is funny. It will accept all kinds of date formats:&lt;br /&gt;&lt;br /&gt;sep/15.08 03:16:00 AM&lt;br /&gt;&lt;br /&gt;sep.15-08 03:16:00 AM&lt;br /&gt;&lt;br /&gt;sep/15/08 03&lt;br /&gt;&lt;br /&gt;and it will, of course, give you a user friendly message if you go too far and try entering something like this:&lt;br /&gt;&lt;br /&gt;14.15-08 03:16:00 AM&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_y49oG7ohpQE/SONAbPYnO3I/AAAAAAAAAKk/vVvPDqeH99Q/s1600-h/date_error1.GIF"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_y49oG7ohpQE/SONAbPYnO3I/AAAAAAAAAKk/vVvPDqeH99Q/s320/date_error1.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5252112427174542194" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;or for&lt;br /&gt;&lt;br /&gt;10.15-08 13:16:00 AM&lt;br /&gt;&lt;br /&gt;you will receive&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_y49oG7ohpQE/SONApzlevWI/AAAAAAAAAKs/yql5bMQfI0U/s1600-h/date_error2.GIF"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_y49oG7ohpQE/SONApzlevWI/AAAAAAAAAKs/yql5bMQfI0U/s320/date_error2.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5252112677410356578" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Try changing your browser language settings from english to any other language and do the excercise again.&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-6007994555456051069?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/6007994555456051069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=6007994555456051069&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/6007994555456051069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/6007994555456051069'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/10/validation-with-ajax.html' title='Validation with Ajax'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_y49oG7ohpQE/SONAbPYnO3I/AAAAAAAAAKk/vVvPDqeH99Q/s72-c/date_error1.GIF' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-5055795395115625250</id><published>2008-09-19T17:00:00.007+02:00</published><updated>2008-09-19T17:26:09.308+02:00</updated><title type='text'>OOW</title><content type='html'>It is time to get my luggage prepared for a long trip to San Francisco. This will be my first OOW. The trip will be long and exhausting but I am happy because I will get a chance to meet many of my colleagues, the most of which I know only through emails or the oracle forums.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_y49oG7ohpQE/SNPAD0l7wDI/AAAAAAAAAKU/xoAcNoJAILY/s1600-h/OOW.GIF"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_y49oG7ohpQE/SNPAD0l7wDI/AAAAAAAAAKU/xoAcNoJAILY/s320/OOW.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5247749162706649138" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I will arrive on Saturday afternoon and stay there till Thursday evening. These will be five exciting days and the programm is starting already on Sunday. I was invited by &lt;a href="http://www.dgielis.blogspot.com/" target="new"&gt;Dimitri Gielis&lt;/a&gt; to participate in the "Ask the Experts" session together with some well known names from the apex community: John Scott, David Peake, Scott Spendolini and Anton Nielsen.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_y49oG7ohpQE/SNPBNlirwnI/AAAAAAAAAKc/n8ROn94ZRxY/s1600-h/schedule.GIF"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_y49oG7ohpQE/SNPBNlirwnI/AAAAAAAAAKc/n8ROn94ZRxY/s320/schedule.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5247750429976806002" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also, Dimitri announced an &lt;a href="http://www.dgielis.blogspot.com/" target="new"&gt;Apex Meetup&lt;/a&gt; on Tuesday evening.&lt;br /&gt;&lt;br /&gt;The target is to catch as many apex sessions as possible. Unfortunatelly, some of them are starting at the same time. It will be hard to make a decission which one to take.&lt;br /&gt;&lt;br /&gt;I will stay at the King George hotel, which is on a walk distance to the Moscone Center.&lt;br /&gt;&lt;br /&gt;So, if you are also attending this great event and you are interested in apex, there is a good chance we will meet there.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-5055795395115625250?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/5055795395115625250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=5055795395115625250&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/5055795395115625250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/5055795395115625250'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/09/oow.html' title='OOW'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_y49oG7ohpQE/SNPAD0l7wDI/AAAAAAAAAKU/xoAcNoJAILY/s72-c/OOW.GIF' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-3958966602365785808</id><published>2008-09-18T17:04:00.012+02:00</published><updated>2008-09-18T17:37:31.969+02:00</updated><title type='text'>Oracle Forums Splash</title><content type='html'>I got this message at least five times today:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_y49oG7ohpQE/SNJuZkJeN0I/AAAAAAAAAKM/Fw1dYRwbBa8/s1600-h/help.GIF"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_y49oG7ohpQE/SNJuZkJeN0I/AAAAAAAAAKM/Fw1dYRwbBa8/s320/help.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5247377901319239490" /&gt;&lt;/a&gt;&lt;br /&gt;at &lt;a href="http://www.oracle.com/splash/forums/index.html" target="new"&gt;http://www.oracle.com/splash/forums/index.html&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Having to read this for the fifth time, I was just asking myself what sense do these couple of sentences make. &lt;br /&gt;&lt;span style="font-weight:bold;color:#ff4040"&gt;&lt;br /&gt;"Oracle forums is experiencing technical difficulty."&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;So, what kind of a technical difficulty are you experiencing day by day since almost a month? Furthermore: how long is this going to last? Another month? Or two? Any ideas?&lt;br /&gt;&lt;span style="font-weight:bold;color:#ff4040"&gt;&lt;br /&gt;"We are aware of the issue and are working as quick as possible to correct the issue."&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Hm, are you sure you are?&lt;br /&gt;&lt;span style="font-weight:bold;color:#ff4040"&gt;&lt;br /&gt;"Please try again in a few moments."&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Well, I did but it still doesn't work.&lt;br /&gt;&lt;span style="font-weight:bold;color:#ff4040"&gt;&lt;br /&gt;"We apologize for any inconvenience this may have caused."&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Nice to know.&lt;br /&gt;&lt;span style="font-weight:bold;color:#ff4040"&gt;&lt;br /&gt;"To speak with an Oracle sales representative: 1.800.ORACLE1."&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;What should I tell him?&lt;br /&gt;&lt;span style="font-weight:bold;color:#ff4040"&gt;&lt;br /&gt;"To contact Oracle Corporate Headquarters from anywhere in the world: 1.650.506.7000."&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;I don't think they would want to talk to me.&lt;br /&gt;&lt;span style="font-weight:bold;color:#ff4040"&gt;&lt;br /&gt;"To get technical support in the United States: 1.800.633.0738."&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Unfortunatelly, I belong to the rest of the world.&lt;br /&gt;&lt;br /&gt;Guys, if this continues, I will never ever collect enogh points to become a guru.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-3958966602365785808?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/3958966602365785808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=3958966602365785808&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/3958966602365785808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/3958966602365785808'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/09/oracle-forums-splash.html' title='Oracle Forums Splash'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_y49oG7ohpQE/SNJuZkJeN0I/AAAAAAAAAKM/Fw1dYRwbBa8/s72-c/help.GIF' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-3060539048202978576</id><published>2008-08-28T14:12:00.004+02:00</published><updated>2008-08-28T16:44:55.382+02:00</updated><title type='text'>What's wrong with the Oracle Forum?</title><content type='html'>As you probably noticed, the forums are either:&lt;br /&gt;&lt;br /&gt;- not available at all or&lt;br /&gt;&lt;br /&gt;- taking a lot of time to load or&lt;br /&gt;&lt;br /&gt;- if they ever load, they are not working properly and showing errors if you try to create or update a posting.&lt;br /&gt;&lt;br /&gt;If you manage to load those pages, you will notice that there are some new featueres implemented. Some of them are usefull. Like the new text editor (I realy like that one). Some of them are however questionable:&lt;br /&gt;&lt;br /&gt;- the new reward system where you can get some points if you provide a helpfull or even a correct answer. The funniest thing is that the asker is supposed to say the answer someone provided is "correct". &lt;br /&gt;&lt;br /&gt;- the fonts were changed to 11px which is not readable at all,&lt;br /&gt;&lt;br /&gt;- the visited property they implemented are i.m.h.o. unneccessary because of the image showing if the posting was opened before or updated since. It is anoying too. Hard to read because of the grey color on a grey background.&lt;br /&gt;&lt;br /&gt;I already asked the people who set it up if they are realy sure this makes sense. They didn't answer. Well, I am probably not the only one who asked.&lt;br /&gt;&lt;br /&gt;Despite of the changes made, features I like or those I don't like, the most important thing though is the availability of the forum. And the fact is - it is not available since almost a week. Have they done a test before they upgraded? How did they test it? Did they ask the comunity about the changes? Maybe they should roll it back once again and consider a redisign using ApEx.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-3060539048202978576?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/3060539048202978576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=3060539048202978576&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/3060539048202978576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/3060539048202978576'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/08/whats-wrong-with-oracle-forum.html' title='What&apos;s wrong with the Oracle Forum?'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-7318064109184012171</id><published>2008-08-27T12:10:00.011+02:00</published><updated>2008-08-27T17:03:18.925+02:00</updated><title type='text'>Oracle Text in Five Short Steps</title><content type='html'>Almost every application I create contains a BLOB (file) table for storing files available for a download. In the most of the cases it will store some documentation related to the application - user manuals, howto's and similar stuff. The download functionality is a nice thing but how about searching the content of those files? There are some examples arround showing how to do that in ApEx but in my opinion the most of them are far to complex. I created an example in my &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:1" target="new"&gt;Demo Application&lt;/a&gt;, showing how to do that in less than five minutes:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:76" target="new"&gt;http://apex.oracle.com/pls/otn/f?p=31517:76&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_y49oG7ohpQE/SLVsRrRD2yI/AAAAAAAAAKE/-IcHaRbRbqI/s1600-h/text.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_y49oG7ohpQE/SLVsRrRD2yI/AAAAAAAAAKE/-IcHaRbRbqI/s320/text.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5239212792443296546" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This example includes the most frequently used functionalities:&lt;br /&gt;&lt;br /&gt;1. mixed case search&lt;br /&gt;&lt;br /&gt;2. highlighted snippets&lt;br /&gt;&lt;br /&gt;3. index synchronization on commit&lt;br /&gt;&lt;br /&gt;If you need more, you can always look into the &lt;a href="http://download.oracle.com/docs/cd/B28359_01/text.111/b28304/csql.htm" target="new"&gt;Oracle Text Documentation&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Enjoy.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-7318064109184012171?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/7318064109184012171/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=7318064109184012171&amp;isPopup=true' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/7318064109184012171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/7318064109184012171'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/08/oracle-text-in-five-short-steps.html' title='Oracle Text in Five Short Steps'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_y49oG7ohpQE/SLVsRrRD2yI/AAAAAAAAAKE/-IcHaRbRbqI/s72-c/text.png' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-4220561206729665391</id><published>2008-08-26T23:10:00.004+02:00</published><updated>2008-08-26T23:22:27.290+02:00</updated><title type='text'>Form Validation and User Friendly Messages</title><content type='html'>I am getting this kind of questions quite often:&lt;br /&gt;&lt;br /&gt;"I have report with form for modifications. After clicking on the link the form related to this report pops up. Often this is done by at least two users trying to modify one and the same record simultaneously. In such cases the application raises - "ORA-20001: Current version of data in database has changed since initiated update process. Error Unable to process row ....(table name)".&lt;br /&gt;&lt;br /&gt;Could you give some advice or give and example how to handle this in a more user friendly manner?"&lt;br /&gt;&lt;br /&gt;I created an example in my &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:1" target="new"&gt;Demo Application&lt;/a&gt; showing how this can be done:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:210" target="new"&gt;http://apex.oracle.com/pls/otn/f?p=31517:210&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;which also includes a step by step guideline.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_y49oG7ohpQE/SLRzQCX1XbI/AAAAAAAAAJ0/giEdd79TIZU/s1600-h/checksum.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_y49oG7ohpQE/SLRzQCX1XbI/AAAAAAAAAJ0/giEdd79TIZU/s320/checksum.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5238938985890667954" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There, you may test the validation by starting a concurrent update process and trying to update the data on the parent page. &lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-4220561206729665391?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/4220561206729665391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=4220561206729665391&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/4220561206729665391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/4220561206729665391'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/08/form-validation-and-user-friendly.html' title='Form Validation and User Friendly Messages'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_y49oG7ohpQE/SLRzQCX1XbI/AAAAAAAAAJ0/giEdd79TIZU/s72-c/checksum.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-6705011556497752274</id><published>2008-08-24T15:36:00.005+02:00</published><updated>2008-08-24T16:21:19.877+02:00</updated><title type='text'>Add Rows to a Standard Tabular Form using Item Value</title><content type='html'>There are many threads regarding this issue in the forum. Many of them without any answer. So, how do you add rows to your standard tabular form based on an item value?&lt;br /&gt;If you follow this example:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:209" target="new"&gt;http://apex.oracle.com/pls/otn/f?p=31517:209&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;you will see that you need three small adjustments to the standard process:&lt;br /&gt;&lt;br /&gt;1. extend your SQL using UNION_ALL by adding a small SQL selecting NULL's from DUAL followed by CONNECT BY LEVEL &lt;= :P1_ADD_ROWS_ITEM,&lt;br /&gt;&lt;br /&gt;2. add a conditional branch, first in the sequence, passing a request ADD to your page&lt;br /&gt;&lt;br /&gt;3. do a modification to the standard add rows process to add 0 rows&lt;br /&gt;&lt;br /&gt;and there you go. You don't need to write a manual process to get that functionality&lt;br /&gt;applied on your standard tabular form.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_y49oG7ohpQE/SLFuTvHhDpI/AAAAAAAAAJs/jFgcZ2ybjLs/s1600-h/add_rows.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_y49oG7ohpQE/SLFuTvHhDpI/AAAAAAAAAJs/jFgcZ2ybjLs/s320/add_rows.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5238089126953160338" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enjoy.&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-6705011556497752274?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/6705011556497752274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=6705011556497752274&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/6705011556497752274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/6705011556497752274'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/08/add-rows-to-standard-tabular-form-using.html' title='Add Rows to a Standard Tabular Form using Item Value'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_y49oG7ohpQE/SLFuTvHhDpI/AAAAAAAAAJs/jFgcZ2ybjLs/s72-c/add_rows.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-2634620692485890841</id><published>2008-08-07T13:48:00.006+02:00</published><updated>2008-08-07T13:58:52.013+02:00</updated><title type='text'>Dynamic Tabular Form</title><content type='html'>It can happen that you get a requiremen similar to this one:&lt;br /&gt;&lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=691046" target="new"&gt;&lt;br /&gt;http://forums.oracle.com/forums/thread.jspa?threadID=691046&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;1. You have an unknow number of tables&lt;br /&gt;&lt;br /&gt;2. You don't know the structure of the tables in advance&lt;br /&gt;&lt;br /&gt;3. You still need forms for entering and maintaining data&lt;br /&gt;&lt;br /&gt;The only solution that comes to my mind are dynamically created tabular forms. Tabular forms have already a bad reputation. Now, if you add the word "dynamical" to it, it will sound even more horrorful.&lt;br /&gt;&lt;br /&gt;As I promised in the mentioned thread, I tried to create a working example. This is what I came up with:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:195" target="new"&gt;http://apex.oracle.com/pls/otn/f?p=31517:195&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It took me arround three hours to get that code together. Of course, this can be done much better - using a package and providing some additional functionalities like validations and other item types.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_y49oG7ohpQE/SJri0Bdix9I/AAAAAAAAAJc/yfvPPpjBG5o/s1600-h/EMPLOYEES.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_y49oG7ohpQE/SJri0Bdix9I/AAAAAAAAAJc/yfvPPpjBG5o/s320/EMPLOYEES.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5231743300517677010" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_y49oG7ohpQE/SJriwzO5RCI/AAAAAAAAAJU/Z4sGXnbDkH4/s1600-h/DEPARTMENTS.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_y49oG7ohpQE/SJriwzO5RCI/AAAAAAAAAJU/Z4sGXnbDkH4/s320/DEPARTMENTS.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5231743245158532130" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-2634620692485890841?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/2634620692485890841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=2634620692485890841&amp;isPopup=true' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/2634620692485890841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/2634620692485890841'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/08/dynamic-tabular-form.html' title='Dynamic Tabular Form'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_y49oG7ohpQE/SJri0Bdix9I/AAAAAAAAAJc/yfvPPpjBG5o/s72-c/EMPLOYEES.PNG' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-7253950151716201719</id><published>2008-08-06T23:07:00.007+02:00</published><updated>2008-08-06T23:21:41.745+02:00</updated><title type='text'>Multiple Cascading Select Lists (again)</title><content type='html'>This is an issue for many developers. I see a lot of questions and receive a lot of mails on this topic. I thought that demonstrating how to do that with two items would be enough to guess how to do it with more than that, since the approach is the same. However, there is nothing better than a step by step guide to get it working.&lt;br /&gt;&lt;br /&gt;You will find the extended example here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:119" target="new"&gt;http://apex.oracle.com/pls/otn/f?p=31517:119&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_y49oG7ohpQE/SJoTiE884rI/AAAAAAAAAJM/T2Z3dqVix54/s1600-h/cascading_multiple.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_y49oG7ohpQE/SJoTiE884rI/AAAAAAAAAJM/T2Z3dqVix54/s320/cascading_multiple.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5231515393310122674" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;My advice, from what I have seen so far debuging the other people examples, is to: &lt;br /&gt;&lt;br /&gt;1. be carefull with copy-paste and before you do it, think of replacing the given item , table and procedure names with your own,&lt;br /&gt;&lt;br /&gt;2. test your on-demand processes in the SQL workshop first, to see if they run,&lt;br /&gt;&lt;br /&gt;3. avoid multiplying your code through copy-paste. This makes it much easier to debug and&lt;br /&gt;&lt;br /&gt;4. if you have no experience with a similar solution, try to reduce your scope and do it on a simple example first. Try using emp, dept tables like I do it in my &lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:1" target="new"&gt;Demo Application&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Enjoy.&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-7253950151716201719?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/7253950151716201719/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=7253950151716201719&amp;isPopup=true' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/7253950151716201719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/7253950151716201719'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/08/multiple-cascading-select-lists-again.html' title='Multiple Cascading Select Lists (again)'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_y49oG7ohpQE/SJoTiE884rI/AAAAAAAAAJM/T2Z3dqVix54/s72-c/cascading_multiple.PNG' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-8973970995665835604</id><published>2008-08-06T12:48:00.004+02:00</published><updated>2008-08-06T18:04:30.586+02:00</updated><title type='text'>Default Sorting of a Report</title><content type='html'>&lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=691139" target="new"&gt;This&lt;/a&gt; was an interesting question:&lt;br /&gt;&lt;br /&gt;"My requirement is Report should always display the original sequence (in the same way if I run the report in TOAD or SQL*PLUS, ...) and when I click the column heading then only it should do the actual sorting. Now, as soon as I set the sortable attribute to YES for a column and running the report for the first time... it's doing the sorting based on the that column."&lt;br /&gt;&lt;br /&gt;So, how do you do that? Normaly, if you enable sorting on an apex report, it will save the sorting preference per user in an item and will call this preference next time you login. &lt;br /&gt;&lt;br /&gt;I used the rownum to display the "original sequence" on initial load of the page and enabled the sorting on that column as well. Putting this column to be the first in the row on columns with enabled sorting and hiding it would do the trick. The second thing I did was to remove the sorting preference on the initial load and keep the rownum ordering as long as the user decides to sort the report.&lt;br /&gt;&lt;br /&gt;You can view a working example here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:13" target"new"&gt;http://apex.oracle.com/pls/otn/f?p=31517:13&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_y49oG7ohpQE/SJnJQ9Hj7zI/AAAAAAAAAJE/w5CpmULsZqQ/s1600-h/sorting.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_y49oG7ohpQE/SJnJQ9Hj7zI/AAAAAAAAAJE/w5CpmULsZqQ/s320/sorting.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5231433735288909618" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-8973970995665835604?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/8973970995665835604/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=8973970995665835604&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/8973970995665835604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/8973970995665835604'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/08/default-sorting-of-report.html' title='Default Sorting of a Report'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_y49oG7ohpQE/SJnJQ9Hj7zI/AAAAAAAAAJE/w5CpmULsZqQ/s72-c/sorting.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-6840809899426345629</id><published>2008-07-23T16:33:00.004+02:00</published><updated>2008-07-23T16:44:33.342+02:00</updated><title type='text'>How to post your code in the Oracle Forum</title><content type='html'>This may have been already posted somewhere else. However, I still see people not knowing how to post their code properly. If you want to show your code in a posting on &lt;br /&gt;&lt;br /&gt;http://forums.oracle.com&lt;br /&gt;&lt;br /&gt;use the following tags and put your code between them&lt;br /&gt;&lt;br /&gt;[code]&lt;br /&gt;&lt;br /&gt;[/code]&lt;br /&gt;&lt;br /&gt;This will show your code formated and readable like this&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;SELECT CASE&lt;br /&gt;          WHEN cnt &gt; 20&lt;br /&gt;             THEN '&amp;lt;font color="red"&gt;' || cnt || '&amp;lt;/font&gt;'&lt;br /&gt;          WHEN cnt &amp;lt;= 20&lt;br /&gt;             THEN '&amp;lt;font color="green"&gt;' || cnt || '&amp;lt;/font&gt;'&lt;br /&gt;       END AS x&lt;br /&gt;  FROM "MYTABLE"&lt;br /&gt; WHERE TO_CHAR ("MYTABLE"."DATE", 'YYYY-MM-DD') &gt;= '2007-04-01'&lt;br /&gt;   AND "MYTABLE"."SERVCODE" &lt;&gt; 'OBS'&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;instead of something like this&lt;br /&gt;&lt;br /&gt;SELECT CASE WHEN COUNT &gt; 20 THEN '' || cnt || '' WHEN COUNT &lt;= 20 THEN '' || cnt || '' END AS X from "MYTABLE" where TO_CHAR ("MYTABLE"."DATE",'YYYY-MM-DD') &gt;='2007-04-01' and "MYTABLE"."SERVCODE" &lt;&gt;'OBS'&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-6840809899426345629?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/6840809899426345629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=6840809899426345629&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/6840809899426345629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/6840809899426345629'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/07/how-to-post-your-code-in-oracle-forum.html' title='How to post your code in the Oracle Forum'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-6046095965506510667</id><published>2008-07-23T14:09:00.003+02:00</published><updated>2008-07-23T14:25:06.304+02:00</updated><title type='text'>ApEx - Shopping Cart</title><content type='html'>There is a new example in my Demo Application showing how to create a simple shopping cart using Ajax and DHTML tipps from &lt;a href="http://www.carlback.blogspot.com/" target="new"&gt;Carl Backstrom&lt;/a&gt;. This demo doesn't require a single submit and it shows how to utilize DHTML and Ajax to operate on collections. Since there is quite a bit of code and I am fairly busy at the moment, all the code is available only to those who have an admin login to my workspace.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_y49oG7ohpQE/SIciD6sziBI/AAAAAAAAAI0/TuIDUtbwBo8/s1600-h/shopping_cart.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_y49oG7ohpQE/SIciD6sziBI/AAAAAAAAAI0/TuIDUtbwBo8/s320/shopping_cart.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5226183343278884882" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You will find the example here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:159" target="new"&gt;http://apex.oracle.com/pls/otn/f?p=31517:159&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enjoy digging into it.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-6046095965506510667?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/6046095965506510667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=6046095965506510667&amp;isPopup=true' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/6046095965506510667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/6046095965506510667'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/07/apex-shopping-cart.html' title='ApEx - Shopping Cart'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_y49oG7ohpQE/SIciD6sziBI/AAAAAAAAAI0/TuIDUtbwBo8/s72-c/shopping_cart.PNG' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-2254606161140137332</id><published>2008-07-22T11:33:00.007+02:00</published><updated>2008-07-22T14:52:26.398+02:00</updated><title type='text'>Over 500 named users of my Workspace</title><content type='html'>I started with the registration somewhere in January/February of this year. Up to now, more than 500 people applied for a login.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_y49oG7ohpQE/SIWqQNkWBNI/AAAAAAAAAIk/PM_R22xhJI0/s1600-h/users.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_y49oG7ohpQE/SIWqQNkWBNI/AAAAAAAAAIk/PM_R22xhJI0/s320/users.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5225770138130056402" /&gt;&lt;/a&gt;&lt;br /&gt;Within these five to six moths I answered arround 1200 emails regarding account and also many other questions related to ApEx. The number of emails I am getting per day is quite constant and I still haven't noticed a trend of those emails decreasing.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:1" target="new"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_y49oG7ohpQE/SIWrb1BBBTI/AAAAAAAAAIs/yzP-Uz_cnWY/s320/login.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5225771437209486642" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-2254606161140137332?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/2254606161140137332/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=2254606161140137332&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/2254606161140137332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/2254606161140137332'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/07/over-500-named-users.html' title='Over 500 named users of my Workspace'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_y49oG7ohpQE/SIWqQNkWBNI/AAAAAAAAAIk/PM_R22xhJI0/s72-c/users.PNG' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-3639827710619524255</id><published>2008-06-30T17:39:00.002+02:00</published><updated>2008-06-30T17:56:19.133+02:00</updated><title type='text'>Sorting with ROWNUM</title><content type='html'>Creating a query and including the ROWNUM will work only for those reports, with disabled column sorting. Once you enable the column sorting, the ROWNUM will not show the right order. This is because ApEx does the sorting after determining the ROWNUM.&lt;br /&gt;&lt;br /&gt;A simple trick can help you to overcome this issue. Just escape the ApEx internal #ROWNUM# like this:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;SELECT '#ROWNUM#' SEQUENCE, empno, ename, sal&lt;br /&gt;  FROM emp;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;and it will give you the right ROWNUM regardless of your sorting.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_y49oG7ohpQE/SGkCEScGxyI/AAAAAAAAAIc/HPhE0yCPR7Q/s1600-h/sorting_rownum.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_y49oG7ohpQE/SGkCEScGxyI/AAAAAAAAAIc/HPhE0yCPR7Q/s320/sorting_rownum.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5217703915977885474" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can see that working in &lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:180" target="new"&gt;this example&lt;/a&gt; in my &lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:1" target="new"&gt;Demo Application&lt;/a&gt;.&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-3639827710619524255?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/3639827710619524255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=3639827710619524255&amp;isPopup=true' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/3639827710619524255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/3639827710619524255'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/06/sorting-with-rownum.html' title='Sorting with ROWNUM'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_y49oG7ohpQE/SGkCEScGxyI/AAAAAAAAAIc/HPhE0yCPR7Q/s72-c/sorting_rownum.JPG' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-4221523134087144318</id><published>2008-06-29T13:29:00.005+02:00</published><updated>2008-06-29T13:40:34.344+02:00</updated><title type='text'>Pipelined Functions</title><content type='html'>The &lt;a href"http://forums.oracle.com/forums/thread.jspa?threadID=675732" target="new"&gt;question&lt;/a&gt; in the forum was:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;I need to allow my users to type in a list of names and return the names that are not in a table.&lt;br /&gt;&lt;br /&gt;1. User types [ Tom Joe Bob MIKE ] into a Text Area item named :P2_NAME_CHECK&lt;br /&gt;&lt;br /&gt;2. A table named CUST contains two rows with TOM and Bob in the &lt;br /&gt;   CUST_NAME column.&lt;br /&gt;&lt;br /&gt;3. A report returns two rows JOE and MIKE. &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Usually, it is oposite. You want to show the list of users that match the criteria.&lt;br /&gt;&lt;br /&gt;The solution for this problem is quite easy if you know how to use pipelined functions. This is a case where the pipelined functions shine. I created an example in my &lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:172" target="new"&gt;Demo Application&lt;/a&gt; showing how this can be done. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_y49oG7ohpQE/SGd0ocUq9PI/AAAAAAAAAIU/CRN_t4w7RDE/s1600-h/pipelined_not_exists.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_y49oG7ohpQE/SGd0ocUq9PI/AAAAAAAAAIU/CRN_t4w7RDE/s320/pipelined_not_exists.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5217266931478492402" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Basically, the pipelined function will create a row for all substrings returning no rows from the emp table, showing those substrings as rows.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-4221523134087144318?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/4221523134087144318/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=4221523134087144318&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/4221523134087144318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/4221523134087144318'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/06/pipelined-functions.html' title='Pipelined Functions'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_y49oG7ohpQE/SGd0ocUq9PI/AAAAAAAAAIU/CRN_t4w7RDE/s72-c/pipelined_not_exists.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-6111806558246990797</id><published>2008-06-29T13:10:00.005+02:00</published><updated>2008-06-30T17:00:51.069+02:00</updated><title type='text'>Textfield Item - Submitting the Page</title><content type='html'>Normaly, if there are page items of type "Text Field" they will not submit the page unless you change them to "Text Field (always submits page when Enter pressed)". If you have only one item on you page of type "Text Field" this behaviour changes and the page will always submit if you press "Enter". Sometimes, you don't want this to happen. Especially, if you have some javascript attached to your field. To avoid that you can use the following trick:&lt;br /&gt;&lt;br /&gt;1. create another item on you page of type "Text Field", &lt;br /&gt;&lt;br /&gt;2. in the "HTML Form Element Attributes" of that item put &lt;br /&gt;&lt;pre&gt;&lt;br /&gt;style="display:none"&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The result is that the second item will not be displayed and the first item will not submit on pressing "Enter".&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-6111806558246990797?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/6111806558246990797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=6111806558246990797&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/6111806558246990797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/6111806558246990797'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/06/textfield-item-submiting-page.html' title='Textfield Item - Submitting the Page'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-3089087986511637580</id><published>2008-06-29T12:14:00.004+02:00</published><updated>2008-06-29T12:36:57.173+02:00</updated><title type='text'>Two Tabular Forms on one Page</title><content type='html'>Recently there have been several discussions in the forum regarding multiple tabular forms on one page. I thought it is easy if you know how to create one tabular form manually, you will be able to do it for any other number of those forms. However, many participants of the forum do not share my opinion. This is why I decided to create a very basic example showing how that works. You will find it in my &lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:163" target="new"&gt;Demo Application&lt;/a&gt; together with the required code. If you want to see all the details, you may apply for an account following the instructions on the login page of my &lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:101" target="new"&gt;Demo Application&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_y49oG7ohpQE/SGdlvK5DMEI/AAAAAAAAAIE/XT-RXOJIFwk/s1600-h/multiple_tab_forms.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_y49oG7ohpQE/SGdlvK5DMEI/AAAAAAAAAIE/XT-RXOJIFwk/s320/multiple_tab_forms.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5217250554383904834" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Have fun.&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-3089087986511637580?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/3089087986511637580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=3089087986511637580&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/3089087986511637580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/3089087986511637580'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/06/two-tabular-forms-on-one-page.html' title='Two Tabular Forms on one Page'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_y49oG7ohpQE/SGdlvK5DMEI/AAAAAAAAAIE/XT-RXOJIFwk/s72-c/multiple_tab_forms.JPG' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-3056769481400822228</id><published>2008-05-17T11:04:00.004+02:00</published><updated>2008-05-17T11:12:56.865+02:00</updated><title type='text'>Problems loading Oracle Forums in a browser?</title><content type='html'>I had this with my old laptop and thought that is my "overloaded" FireFox with all those extensions. However, that continued with my new notebook as well. Now, I noticed this is not only FireFox but also the same thing happens when I use Internet Explorer (which I use only then when I need to open the same ApEx application twice).&lt;br /&gt;&lt;br /&gt; See the picture below. It looks like while loading the forum the page is not rendered completely. This behaviour is only there when using Oracle Forums and they happen in both cases - while loading the main page or a single thread. Therefor my question to all readers of this blog: have you ever noticed something like that? I have this from time to time regardless of the connection I use. Currently, I use DSL 16000.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_y49oG7ohpQE/SC6hOTn2WBI/AAAAAAAAAHs/_IAKn7QRrl0/s1600-h/not_fully_loaded.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_y49oG7ohpQE/SC6hOTn2WBI/AAAAAAAAAHs/_IAKn7QRrl0/s320/not_fully_loaded.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5201271886817155090" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.opal-consulting.de/apex/f?p=107:7"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_y49oG7ohpQE/R_jqmqk0YhI/AAAAAAAAAHM/6-HB4x2VNMs/s320/banner_apex_advanced_20080602_2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5186152920901771794" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-3056769481400822228?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/3056769481400822228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=3056769481400822228&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/3056769481400822228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/3056769481400822228'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/05/problems-loading-oracle-forums-in.html' title='Problems loading Oracle Forums in a browser?'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_y49oG7ohpQE/SC6hOTn2WBI/AAAAAAAAAHs/_IAKn7QRrl0/s72-c/not_fully_loaded.JPG' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-8876187505870344956</id><published>2008-05-12T12:04:00.017+02:00</published><updated>2008-05-12T18:16:19.372+02:00</updated><title type='text'>Limit or Extend a Datepicker in ApEx</title><content type='html'>I have received a couple of  questions per email, similar to this one &lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=653764&amp;tstart=0" target="new"&gt;on limiting the value of a date picker item&lt;/a&gt;. That shows this is an issue that needs to be solved from the development team. Whereby this is an easy issue. If you look behind the code, you will se there are one procedure and one view involved. The procedure code is generating a small pop-up window showing a calendar based on the number of the years the view is returning. I managed to get that customized by doing the following:&lt;br /&gt;&lt;br /&gt;First of all, create a package like this:&lt;br /&gt;&lt;br /&gt;1.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;CREATE OR REPLACE PACKAGE limit_datepicker&lt;br /&gt;AS&lt;br /&gt;   x   NUMBER;&lt;br /&gt;   y   NUMBER;&lt;br /&gt;&lt;br /&gt;   FUNCTION get_x&lt;br /&gt;      RETURN NUMBER;&lt;br /&gt;&lt;br /&gt;   FUNCTION get_y&lt;br /&gt;      RETURN NUMBER;&lt;br /&gt;&lt;br /&gt;   PROCEDURE show_as_popup_calendar (&lt;br /&gt;      p_request              IN   VARCHAR2 DEFAULT NULL,&lt;br /&gt;      p_title                IN   VARCHAR2 DEFAULT NULL,&lt;br /&gt;      p_yyyy                 IN   VARCHAR2 DEFAULT NULL,&lt;br /&gt;      p_mm                   IN   VARCHAR2 DEFAULT NULL,&lt;br /&gt;      p_dd                   IN   VARCHAR2 DEFAULT NULL,&lt;br /&gt;      p_hh                   IN   VARCHAR2 DEFAULT NULL,&lt;br /&gt;      p_mi                   IN   VARCHAR2 DEFAULT NULL,&lt;br /&gt;      p_pm                   IN   VARCHAR2 DEFAULT NULL,&lt;br /&gt;      p_element_index        IN   VARCHAR2 DEFAULT NULL,&lt;br /&gt;      p_form_index           IN   VARCHAR2 DEFAULT NULL,&lt;br /&gt;      p_date_format          IN   VARCHAR2 DEFAULT 'MM/DD/YYYY',&lt;br /&gt;      p_bgcolor              IN   VARCHAR2 DEFAULT '#336699',&lt;br /&gt;      p_white_foreground     IN   VARCHAR2 DEFAULT 'Y',&lt;br /&gt;      p_application_format   IN   VARCHAR2 DEFAULT 'N',&lt;br /&gt;      p_lang                 IN   VARCHAR2 DEFAULT NULL,&lt;br /&gt;      p_application_id       IN   VARCHAR2 DEFAULT NULL,&lt;br /&gt;      p_security_group_id    IN   VARCHAR2 DEFAULT NULL,&lt;br /&gt;      p_start_year           IN   NUMBER DEFAULT 1919,&lt;br /&gt;      p_end_year             IN   NUMBER DEFAULT 2050&lt;br /&gt;   );&lt;br /&gt;END limit_datepicker;&lt;br /&gt;/&lt;br /&gt;&lt;br /&gt;CREATE OR REPLACE PACKAGE BODY limit_datepicker&lt;br /&gt;AS&lt;br /&gt;   FUNCTION get_x&lt;br /&gt;      RETURN NUMBER&lt;br /&gt;   IS&lt;br /&gt;   BEGIN&lt;br /&gt;      RETURN limit_datepicker.x;&lt;br /&gt;   END get_x;&lt;br /&gt;&lt;br /&gt;   FUNCTION get_y&lt;br /&gt;      RETURN NUMBER&lt;br /&gt;   IS&lt;br /&gt;   BEGIN&lt;br /&gt;      RETURN limit_datepicker.y;&lt;br /&gt;   END get_y;&lt;br /&gt;&lt;br /&gt;   PROCEDURE show_as_popup_calendar (&lt;br /&gt;      p_request              IN   VARCHAR2 DEFAULT NULL,&lt;br /&gt;      p_title                IN   VARCHAR2 DEFAULT NULL,&lt;br /&gt;      p_yyyy                 IN   VARCHAR2 DEFAULT NULL,&lt;br /&gt;      p_mm                   IN   VARCHAR2 DEFAULT NULL,&lt;br /&gt;      p_dd                   IN   VARCHAR2 DEFAULT NULL,&lt;br /&gt;      p_hh                   IN   VARCHAR2 DEFAULT NULL,&lt;br /&gt;      p_mi                   IN   VARCHAR2 DEFAULT NULL,&lt;br /&gt;      p_pm                   IN   VARCHAR2 DEFAULT NULL,&lt;br /&gt;      p_element_index        IN   VARCHAR2 DEFAULT NULL,&lt;br /&gt;      p_form_index           IN   VARCHAR2 DEFAULT NULL,&lt;br /&gt;      p_date_format          IN   VARCHAR2 DEFAULT 'MM/DD/YYYY',&lt;br /&gt;      p_bgcolor              IN   VARCHAR2 DEFAULT '#336699',&lt;br /&gt;      p_white_foreground     IN   VARCHAR2 DEFAULT 'Y',&lt;br /&gt;      p_application_format   IN   VARCHAR2 DEFAULT 'N',&lt;br /&gt;      p_lang                 IN   VARCHAR2 DEFAULT NULL,&lt;br /&gt;      p_application_id       IN   VARCHAR2 DEFAULT NULL,&lt;br /&gt;      p_security_group_id    IN   VARCHAR2 DEFAULT NULL,&lt;br /&gt;      p_start_year           IN   NUMBER DEFAULT 1919,&lt;br /&gt;      p_end_year             IN   NUMBER DEFAULT 2050&lt;br /&gt;   )&lt;br /&gt;   IS&lt;br /&gt;   BEGIN&lt;br /&gt;      limit_datepicker.x := p_start_year;&lt;br /&gt;      limit_datepicker.y := p_end_year;&lt;br /&gt;      wwv_flow_utilities.show_as_popup_calendar (p_request,&lt;br /&gt;                                                 p_title,&lt;br /&gt;                                                 p_yyyy,&lt;br /&gt;                                                 p_mm,&lt;br /&gt;                                                 p_dd,&lt;br /&gt;                                                 p_hh,&lt;br /&gt;                                                 p_mi,&lt;br /&gt;                                                 p_pm,&lt;br /&gt;                                                 p_element_index,&lt;br /&gt;                                                 p_form_index,&lt;br /&gt;                                                 p_date_format,&lt;br /&gt;                                                 p_bgcolor,&lt;br /&gt;                                                 p_white_foreground,&lt;br /&gt;                                                 p_application_format,&lt;br /&gt;                                                 p_lang,&lt;br /&gt;                                                 p_application_id,&lt;br /&gt;                                                 p_security_group_id&lt;br /&gt;                                                );&lt;br /&gt;   END;&lt;br /&gt;END limit_datepicker;&lt;br /&gt;/&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;2. GRANT EXECUTE ON limit_datepicker TO PUBLIC;&lt;br /&gt;&lt;br /&gt;3. CREATE OR REPLACE PUBLIC SYNONYM limit_datepicker FOR &amp;lt;&amp;lt;your_schema&gt;&gt;.limit_datepicker;&lt;br /&gt;&lt;br /&gt;To be able to limit the values the view returns you need to do the following:&lt;br /&gt;&lt;br /&gt;1. log in a SYS&lt;br /&gt;&lt;br /&gt;2. ALTER SESSION SET current_schema=FLOWS_030000 (yor flows schema, FLOWS_030000 in my case)&lt;br /&gt;&lt;br /&gt;3. &lt;br /&gt;&lt;pre&gt;&lt;br /&gt;CREATE OR REPLACE VIEW wwv_flow_years&lt;br /&gt;AS&lt;br /&gt;   SELECT     NVL (b.start_year - 1, 1918) + LEVEL&lt;br /&gt;         FROM DUAL a,&lt;br /&gt;              (SELECT limit_datepicker.get_x start_year&lt;br /&gt;                 FROM DUAL) b,&lt;br /&gt;              (SELECT limit_datepicker.get_y end_year&lt;br /&gt;                 FROM DUAL) c&lt;br /&gt;   CONNECT BY LEVEL &amp;lt; NVL ((c.end_year + 1) - (b.start_year - 1), &lt;br /&gt;                           2051 - 1918)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The view will now return the same result for the standard date picker or the value you request if you use the custom date picker.&lt;br /&gt;&lt;br /&gt;And finaly, create the following on your page, which will contain the date picker item, limiting the years to the values you determine;&lt;br /&gt;&lt;br /&gt;1. Create a hidden item on your page (Page 1 in my case)&lt;br /&gt;&lt;br /&gt;P1_SECURITY_GROUP_ID&lt;br /&gt;&lt;br /&gt;with a source PL/SQL Expression or Function&lt;br /&gt;&lt;br /&gt;htmldb_custom_auth.get_security_group_id&lt;br /&gt;&lt;br /&gt;2. Create the javascript and put it in the header of your page. Please note, you need to take care of the parameters yourself - for example p_yyyy or p_mm:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&gt;&lt;br /&gt;function f_popup_date(p_this) &lt;br /&gt;{     &lt;br /&gt;   var item_name = $x(p_this).name&lt;br /&gt;   var app_id = &amp;APP_ID.&lt;br /&gt;   var sec_gr_id = $x('P1_SECURITY_GROUP_ID').value&lt;br /&gt;&lt;br /&gt;       w = open("limit_datepicker.show_as_popup_calendar" +&lt;br /&gt;                   "?p_element_index=" + escape(item_name) +&lt;br /&gt;                   "&amp;p_form_index=" + escape('0') +&lt;br /&gt;                   "&amp;p_date_format=" + escape('DD-MON-RR') +&lt;br /&gt;                   "&amp;p_bgcolor=" + escape('#666666') +&lt;br /&gt;                   "&amp;p_dd=" + escape('') +&lt;br /&gt;                   "&amp;p_hh=" + escape('') +&lt;br /&gt;                   "&amp;p_mi=" + escape('') +&lt;br /&gt;                   "&amp;p_pm=" +&lt;br /&gt;                   "&amp;p_yyyy=" + escape('2008') +&lt;br /&gt;                   "&amp;p_lang=" + escape('en') +&lt;br /&gt;                   "&amp;p_application_format=" + escape('N') +&lt;br /&gt;                   "&amp;p_application_id=" + escape(app_id) +&lt;br /&gt;                   "&amp;p_security_group_id=" + escape(sec_gr_id) +&lt;br /&gt;                   "&amp;p_start_year=" + escape('2007') +&lt;br /&gt;                   "&amp;p_end_year=" + escape('2008') +&lt;br /&gt;                   "&amp;p_mm=" + escape('01'),&lt;br /&gt;                   "winLov",&lt;br /&gt;                   "Scrollbars=no,resizable=yes,width=258,height=210");&lt;br /&gt;       if (w.opener == null)&lt;br /&gt;         w.opener = self;&lt;br /&gt;       w.focus();&lt;br /&gt;}&lt;br /&gt;&amp;lt;/script&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;You will need to replace the values to what you need (2007 to 2008 in my case).&lt;br /&gt;&lt;br /&gt;3. Date-Picker Item (P1_DATE_FROM in my case) is a normal text item with the following code in the Post Element Text:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;a href="javascript:f_popup_date('P1_DATE_FROM');"&gt;&lt;br /&gt;&amp;lt;img src="/i/asfdcldr.gif" &lt;br /&gt;style="cursor:pointer;valign:bottom" /&gt;&amp;lt;/a&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_y49oG7ohpQE/SCgbMDn2WAI/AAAAAAAAAHk/lOpWIKWiupQ/s1600-h/limit_datepicker.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_y49oG7ohpQE/SCgbMDn2WAI/AAAAAAAAAHk/lOpWIKWiupQ/s320/limit_datepicker.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5199435663744063490" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The downside of this approach is that you need to modify one of the apex views and take care you recreate it after the next update. I still didn't have time to find out why this doesn't work on XE. I will have a look into that issue soon and post the results here.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.opal-consulting.de/apex/f?p=107:7"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_y49oG7ohpQE/R_jqmqk0YhI/AAAAAAAAAHM/6-HB4x2VNMs/s320/banner_apex_advanced_20080602_2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5186152920901771794" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-8876187505870344956?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/8876187505870344956/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=8876187505870344956&amp;isPopup=true' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/8876187505870344956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/8876187505870344956'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/05/limit-datepicker-in-apex.html' title='Limit or Extend a Datepicker in ApEx'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_y49oG7ohpQE/SCgbMDn2WAI/AAAAAAAAAHk/lOpWIKWiupQ/s72-c/limit_datepicker.JPG' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-1921301932724686662</id><published>2008-04-30T19:17:00.008+02:00</published><updated>2008-05-01T10:13:44.904+02:00</updated><title type='text'>Cascading Select List in a Tabular Form</title><content type='html'>This is something the most of the ApEx Developers have a problem with. How do I create a cascading select list in a tabular form? There are several examples (also in my &lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:1" target="new"&gt;Demo Application&lt;/a&gt;) on how to do that in a simple form. However, there is only one example arround showing how this can be done - in &lt;a href="http://htmldb.oracle.com/pls/otn/f?p=24317:9" target="new"&gt;Vikas&lt;/a&gt; application, but I don't like that approach. I have also been asked several times to create such an example. Here we go! In my Demo Application you will find a working example showing also how to create an update and delete process + some javascript for checking and highlighting of all rows in your tabular form:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:176" target="new"&gt;http://htmldb.oracle.com/pls/otn/f?p=31517:176&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_y49oG7ohpQE/SBircMubSRI/AAAAAAAAAHc/KtT4cSfcxDg/s1600-h/tab_cascading_select_list.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_y49oG7ohpQE/SBircMubSRI/AAAAAAAAAHc/KtT4cSfcxDg/s320/tab_cascading_select_list.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5195090671112505618" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This approach is using apex_item + the same javascript (ajax) code as for the "simple" cascading select list.&lt;br /&gt;&lt;br /&gt;Apply for an account if you would like to see all of the code behind this example.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.opal-consulting.de/apex/f?p=107:7"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_y49oG7ohpQE/R_jqmqk0YhI/AAAAAAAAAHM/6-HB4x2VNMs/s320/banner_apex_advanced_20080602_2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5186152920901771794" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-1921301932724686662?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/1921301932724686662/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=1921301932724686662&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/1921301932724686662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/1921301932724686662'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/04/cascading-select-list-in-tabular-form.html' title='Cascading Select List in a Tabular Form'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_y49oG7ohpQE/SBircMubSRI/AAAAAAAAAHc/KtT4cSfcxDg/s72-c/tab_cascading_select_list.JPG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-967687130074075667</id><published>2008-04-28T13:29:00.003+02:00</published><updated>2008-04-28T13:54:22.561+02:00</updated><title type='text'>XE Webfolder with Vista</title><content type='html'>If you work with Vista and would like to create a Web Folder according to this tipp from &lt;a href="http://daust.blogspot.com/2006/03/where-are-images-of-application.html" target="new"&gt;Dietmar Aust&lt;/a&gt;, you will not be successful. In Vista there are some changes made and the path described in the above post will give you a view only.&lt;br /&gt;&lt;br /&gt;In Vista you need to do the following:&lt;br /&gt;&lt;br /&gt;1. Open Windows Explorer and go to Menu Tools / Map Network Drive&lt;br /&gt;&lt;br /&gt;2. There, you click on "Connect to a Web site that you can use to store your documents and pictures"&lt;br /&gt;&lt;br /&gt;3. Click two times on "Next" (don't ask me why!)&lt;br /&gt;&lt;br /&gt;4. Enter http://127.0.0.1:8080/i where it asks you for an Internet or Network address,&lt;br /&gt;&lt;br /&gt;5. Enter system / password &lt;br /&gt;&lt;br /&gt;6. Give your connection a name&lt;br /&gt;&lt;br /&gt;7. Finish.&lt;br /&gt;&lt;br /&gt;Now, the images directory will appear in your Windows Explorer under Webfolder:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_y49oG7ohpQE/SBW6qsubSQI/AAAAAAAAAHU/qFCNZc7cTqc/s1600-h/WebfolderXE_Vista.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_y49oG7ohpQE/SBW6qsubSQI/AAAAAAAAAHU/qFCNZc7cTqc/s320/WebfolderXE_Vista.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5194262987964893442" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.opal-consulting.de/apex/f?p=107:7"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_y49oG7ohpQE/R_jqmqk0YhI/AAAAAAAAAHM/6-HB4x2VNMs/s320/banner_apex_advanced_20080602_2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5186152920901771794" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-967687130074075667?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/967687130074075667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=967687130074075667&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/967687130074075667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/967687130074075667'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/04/xe-webfolder-with-vista.html' title='XE Webfolder with Vista'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_y49oG7ohpQE/SBW6qsubSQI/AAAAAAAAAHU/qFCNZc7cTqc/s72-c/WebfolderXE_Vista.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-4804858609715544985</id><published>2008-04-06T17:13:00.007+02:00</published><updated>2008-04-06T17:35:26.517+02:00</updated><title type='text'>ApEx Training - München 02.06.2008 - 04.06.2008</title><content type='html'>Liebe ApEx-ler,&lt;br /&gt;&lt;br /&gt;Unser nächstes Training - Fortgeschrittene Techniken aus der Praxis - wird in München im &lt;a href="http://www.arabellasheraton.com/westpark/" target="new"&gt;Arabella Sheraton Westpark Hotel&lt;/a&gt; stattfinden. Die Details für die Anmeldung findet Ihr auf &lt;a href="http://www.opal-consulting.de/apex/f?p=107:7" target="new"&gt;Opal Consulting&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Wir versprechen (und halten):&lt;br /&gt;&lt;br /&gt;- Interessante und neue Inhalte&lt;br /&gt;- hohen Praxisbezug&lt;br /&gt;- Kompetenz in Oracle und ApEx Themen&lt;br /&gt;- Antworten auf alle Ihre Fragen&lt;br /&gt;&lt;br /&gt;und freuen uns Euch dort begrüssen zu dürfen.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.opal-consulting.de/apex/f?p=107:7"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_y49oG7ohpQE/R_jqmqk0YhI/AAAAAAAAAHM/6-HB4x2VNMs/s320/banner_apex_advanced_20080602_2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5186152920901771794" /&gt;&lt;/a&gt;&lt;br /&gt;----------------------------------------------------------------------------------------------------------------------&lt;br /&gt;Our next Training will be held in Munich from 02.06.2008 to 04.06.2008 in &lt;a href="http://www.arabellasheraton.com/westpark/" target="new"&gt;Arabella Sheraton Westpark Hotel&lt;/a&gt;. The details you can find on &lt;a href="http://www.opal-consulting.de/apex/f?p=107:7" target="new"&gt;Opal Consulting&lt;/a&gt;.  Please note that places are limited and there has been a great deal of interest in the training following the previous event in March 2008. We advise you to register a.s.a.p.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-4804858609715544985?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/4804858609715544985/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=4804858609715544985&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/4804858609715544985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/4804858609715544985'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/04/apex-training-mnchen-02062008-04062008.html' title='ApEx Training - München 02.06.2008 - 04.06.2008'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_y49oG7ohpQE/R_jqmqk0YhI/AAAAAAAAAHM/6-HB4x2VNMs/s72-c/banner_apex_advanced_20080602_2.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-6352367977027567893</id><published>2008-04-01T22:07:00.005+02:00</published><updated>2008-04-01T23:15:05.539+02:00</updated><title type='text'>ApEx Training - followup</title><content type='html'>This was my first ApEx-only training. I can't remember when I last time spoke in front of that many people (at school perhaps). However, this was an amazing experience. ApEx is really something special - amazing people, exciting topics and a lot of enthusiasm. Also, there were 8 female attendees at our training which I think is great quote. Here some pictures from our training (actually, we were so busy that we managed to take only these two ;)):&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_y49oG7ohpQE/R_KhvKk0YfI/AAAAAAAAAG8/PP5cnNpzvvg/s1600-h/training1.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_y49oG7ohpQE/R_KhvKk0YfI/AAAAAAAAAG8/PP5cnNpzvvg/s320/training1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5184383952721568242" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_y49oG7ohpQE/R_Kh0qk0YgI/AAAAAAAAAHE/GjhBM1FY2Fw/s1600-h/training2.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_y49oG7ohpQE/R_Kh0qk0YgI/AAAAAAAAAHE/GjhBM1FY2Fw/s320/training2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5184384047210848770" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The program schedule was quite well loaded and we didn't manage to elaborate on everything. Our schedule was also quite aggressive - training from 9 - 17.30 and QA Sessions from 19 to 21 (planned time - indeed it was 23 when we quit). Amazing to see 80% of the attendees sitting there at 7 in the evening preparing for the QA. &lt;br /&gt;&lt;br /&gt;Tomorrow, we will post the details of our next training in Munich.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-6352367977027567893?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/6352367977027567893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=6352367977027567893&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/6352367977027567893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/6352367977027567893'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/04/apex-training-followup.html' title='ApEx Training - followup'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_y49oG7ohpQE/R_KhvKk0YfI/AAAAAAAAAG8/PP5cnNpzvvg/s72-c/training1.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-2280166368252791220</id><published>2008-04-01T21:11:00.003+02:00</published><updated>2008-04-01T22:01:55.147+02:00</updated><title type='text'>Manual Tabular Form</title><content type='html'>Today, I answered an &lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=637097" target="new"&gt;interesting question&lt;/a&gt; in the ApEx Forum. Basically, the requirement was to have a tabular form which allows only new records to be edited. Tabular forms are a powerful feature but also something the most of the ApEx developers have a problem with. The &lt;a href="http://www.oracle.com/technology/products/database/application_express/howtos/tabular_form.html" target="new"&gt;manual&lt;/a&gt; from the How-To's is outdated, confusing and it is also incorrect in several issues. Also, there are not many other resources in the community dedicated to the problem of operating with tabular forms. This is why I decided to create an example showing several important techniques for mastering this topic. I also posted the most of the code you need to get it working that way:&lt;br /&gt;&lt;br /&gt;- highlighting selected rows&lt;br /&gt;- validating the checksum&lt;br /&gt;- disabling columns not allowed for editing&lt;br /&gt;- adding rows to tabular form (one or multiple)&lt;br /&gt;- operating with apex_item package&lt;br /&gt;&lt;br /&gt;See the example in my &lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:1" target="new"&gt;Demo Application&lt;/a&gt;. If you want to see more, you may send me an email and join the group of 250 registered users of my &lt;a href="http://htmldb.oracle.com/pls/otn/f?p=4550:1" target="new"&gt;Workspace&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_y49oG7ohpQE/R_KSFqk0YeI/AAAAAAAAAG0/bvByLNr1BlA/s1600-h/tab_manual.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_y49oG7ohpQE/R_KSFqk0YeI/AAAAAAAAAG0/bvByLNr1BlA/s320/tab_manual.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5184366747082580450" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A similar example was one of the topics in our training two weeks ago and was created  by &lt;a href="http://www.inside-oracle-apex.com" target="new"&gt;Patrick Wolf&lt;/a&gt; and myself.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-2280166368252791220?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/2280166368252791220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=2280166368252791220&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/2280166368252791220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/2280166368252791220'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/04/manual-tabular-form.html' title='Manual Tabular Form'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_y49oG7ohpQE/R_KSFqk0YeI/AAAAAAAAAG0/bvByLNr1BlA/s72-c/tab_manual.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-7225330566690479954</id><published>2008-03-06T14:37:00.009+01:00</published><updated>2008-03-06T14:59:15.704+01:00</updated><title type='text'>ApEx Training - Update</title><content type='html'>This posting is targeting the German ApEx comunity and is therefor also posted in German language:&lt;br /&gt;&lt;br /&gt;Hallo liebe ApEx-ler. Unser Kurs im März &lt;a href="http://www.opal-consulting.de/training"&gt;http://www.opal-consulting.de/training&lt;/a&gt; ist leider seit etwa zwei Wochen ausgebucht. Wir planen einen neuen für Anfang Juni in München, da die Anfrage unerwartet gross ausfiel. Gleich nach dem Abschlus vom Training im März, werden wir den neuen Termin auf unserer Seite publizieren. Falls Sie bis dahin nicht warten wollen, können Sie uns auch gerne eine E-Mail an &lt;b&gt;training@opal-consulting.de&lt;/b&gt; zuschicken und einen Platz vorreservieren.&lt;br /&gt;&lt;br /&gt;Hello ApEx community. Our Workshop in March &lt;a href="http://www.opal-consulting.de/training"&gt;http://www.opal-consulting.de/training&lt;/a&gt;  has been fully booked since almost two weeks. We are planing another one beginning of June in Munich. We will post the details right after the workshop in March.&lt;br /&gt;&lt;pre&gt; &lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-7225330566690479954?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/7225330566690479954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=7225330566690479954&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/7225330566690479954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/7225330566690479954'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/03/apex-training-update.html' title='ApEx Training - Update'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-3763301435453291437</id><published>2008-02-22T20:55:00.008+01:00</published><updated>2008-07-25T12:15:16.685+02:00</updated><title type='text'>ApEx Flashchart Headache</title><content type='html'>Something like this can drive you nuts. I lost several hours trying to figure out why something that is supposed to work (and I do see it working), doesn't work for my customer. I created a simple drill-down chart and did my usual testing. After completing the work, I forwarded it to my customer to see if everything is as they expected. However, they complained it didn't show the right values. It took me a while to remember I answered one similar question in the forum &lt;a href="http://forums.oracle.com/forums/thread.jspa?messageID=2280276" target="new"&gt;here&lt;/a&gt; by proposing a workarround. I do my work in FF and my customer uses IE. There we go.&lt;br /&gt;&lt;br /&gt;The problem seem to be simple - IE doesn't refresh a flash chart once the link has been used for the second time within a session. I was curious and checked if this is also the case with &lt;a href="http://forums.oracle.com/forums/thread.jspa?messageID=2280276" target="new"&gt;XML Charts&lt;/a&gt;. XML Charts did behave the same way if I used IE. It was easy to solve the problem with XML Chart package by adding an additional parameter to the link in form of a random number&lt;br /&gt;&lt;br /&gt;v_random := DBMS_RANDOM.random;&lt;br /&gt;&lt;br /&gt;After adding this, the problem was not there any more. I think, the same needs to be done with the Flash Charts in ApEx in one of the next releases. Eventually using the same method.&lt;br /&gt;&lt;br /&gt;If you want to see a practical example of what I'm talking about, go to my Demo Application&lt;br /&gt;&lt;br /&gt;&lt;a href="http://apex.oracle.com/pls/otn/f?p=31517:169" target="new"&gt;http://apex.oracle.com/pls/otn/f?p=31517:169&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;and follow these steps:&lt;br /&gt;&lt;br /&gt;1. Use IE (Internet Explorer),&lt;br /&gt;&lt;br /&gt;2. Make sure your Internet Options / Browsing History / Settings is either set to "automatically" or "never",&lt;br /&gt;&lt;br /&gt;3. Make a round trip and click all three pie slices of the pie chart showing departments,&lt;br /&gt;&lt;br /&gt;4. After you click on any of the slices for the second time, the second flash chart will not show you the right result but will remain the same all the time.&lt;br /&gt;&lt;br /&gt;5. You will need to submit the page in order to get the values change.&lt;br /&gt;&lt;br /&gt;And now, the best thing is that the XML Chart will always show the right values. Even if the IE settings Internet Options / Browsing History / Settings are set to "never".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_y49oG7ohpQE/R795Xb0eudI/AAAAAAAAAGs/jrcy4FQNXwM/s1600-h/flash.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_y49oG7ohpQE/R795Xb0eudI/AAAAAAAAAGs/jrcy4FQNXwM/s320/flash.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5169984340756445650" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.opal-consulting.de/training" target="new"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_y49oG7ohpQE/R6h_9UU31II/AAAAAAAAAGM/6lG5tAFBuDc/s320/schulung.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5163517664185275522" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/br&gt;&lt;/br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-3763301435453291437?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/3763301435453291437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=3763301435453291437&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/3763301435453291437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/3763301435453291437'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/02/apex-flashchart-headache.html' title='ApEx Flashchart Headache'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_y49oG7ohpQE/R795Xb0eudI/AAAAAAAAAGs/jrcy4FQNXwM/s72-c/flash.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-7245482866113247504</id><published>2008-02-13T14:11:00.008+01:00</published><updated>2008-02-13T14:36:02.057+01:00</updated><title type='text'>ApEx Item - Workarround</title><content type='html'>There may be some cases where you need to use apex_item (although, &lt;a href="http://www.inside-oracle-apex.com" target="new"&gt;Patrick Wolf&lt;/a&gt; doesn't think so). The downside of that approach is:&lt;br /&gt;&lt;br /&gt;1. your Query looks awkward,&lt;br /&gt;&lt;br /&gt;2. you can't sort on your columns,&lt;br /&gt;&lt;br /&gt;3. you can't display your column totals&lt;br /&gt;&lt;br /&gt;In case you didn't know, you may use a trick to work around that problem:&lt;br /&gt;&lt;br /&gt;a) crate a normal query like this:&lt;br /&gt;&lt;span style="color:darkred;font-weight:bold"&gt;&lt;pre&gt;&lt;br /&gt;SELECT LPAD (ROWNUM, 4, 0) ROW_NUM, deptno, empno, ename, &lt;br /&gt;       sal, comm&lt;br /&gt;  FROM emp&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;b) In the HTML expression of your columns put the following for each column accordingly:&lt;br /&gt;&lt;span style="color:darkred;font-weight:bold"&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;input id="f03_#ROW_NUM#" type="text" style="text-align: right;" &lt;br /&gt;value="#EMPNO#" maxlength="4" size="4" name="f03"/&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;c) You may use the items in your custom update process and in your javascript the same way you do when you use apex_item or the wizard generated table.&lt;br /&gt;&lt;br /&gt;Now, you may create column totals and sort on such created items. And your SQL query looks much better.&lt;br /&gt;&lt;br /&gt;As always, there is a proof of concept in my &lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:1" target="new"&gt;Demo Application&lt;/a&gt; on this page &lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:168" target="new"&gt;http://htmldb.oracle.com/pls/otn/f?p=31517:168&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;By the way. Around 100 people from all over the globe asked and received a personal account for the &lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:1" target="new"&gt;Demo Application&lt;/a&gt;. If you are also interested to look behind the curtains, please feel free to send me an email with your contact details.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_y49oG7ohpQE/R7LwWr0eubI/AAAAAAAAAGc/BA9G_aFs3Xo/s1600-h/apex_item_workaround.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_y49oG7ohpQE/R7LwWr0eubI/AAAAAAAAAGc/BA9G_aFs3Xo/s320/apex_item_workaround.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5166455995058010546" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.opal-consulting.de/training" target="new"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_y49oG7ohpQE/R6h_9UU31II/AAAAAAAAAGM/6lG5tAFBuDc/s320/schulung.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5163517664185275522" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/br&gt;&lt;/br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-7245482866113247504?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/7245482866113247504/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=7245482866113247504&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/7245482866113247504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/7245482866113247504'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/02/apex-item-workarround.html' title='ApEx Item - Workarround'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_y49oG7ohpQE/R7LwWr0eubI/AAAAAAAAAGc/BA9G_aFs3Xo/s72-c/apex_item_workaround.gif' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-3880949037924797797</id><published>2008-02-08T13:40:00.000+01:00</published><updated>2008-02-08T13:55:41.410+01:00</updated><title type='text'>Sorting on apex_item</title><content type='html'>If you use apex_item syntax in your query, you will not be able to sort on the columns in a way you would expect because ApEx will sort the column on the string you use as input. This means it will sort on something like&lt;br /&gt;&lt;br /&gt;&amp;lt;input id="f04_9" type="text" style="text-align: right;" value="2300" maxlength="12" size="12" name="f04"/&gt;&lt;br /&gt;&lt;br /&gt;To overcome this problem you may want to use the following in front of your apex_item:&lt;br /&gt;&lt;br /&gt;   '&amp;lt;INPUT TYPE="HIDDEN" VALUE="'&lt;br /&gt;       || LPAD (sal, 20, '0')&lt;br /&gt;       || '" /&gt;'&lt;br /&gt;       || apex_item.text (4,&lt;br /&gt;                          TO_CHAR (sal),&lt;br /&gt;                          12,&lt;br /&gt;                          12,&lt;br /&gt;                          'style="text-align:right" ',&lt;br /&gt;                          'f04_' || ROWNUM,&lt;br /&gt;                          NULL&lt;br /&gt;                         ) sal_editable&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_y49oG7ohpQE/R6xQf0U31JI/AAAAAAAAAGU/dL-DMpvlPC8/s1600-h/sorting.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_y49oG7ohpQE/R6xQf0U31JI/AAAAAAAAAGU/dL-DMpvlPC8/s320/sorting.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5164591380239471762" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You could use any other value instead of the original one as well (ROWNUM, ename) and use it for sorting.&lt;br /&gt;&lt;br /&gt;Here, you will find a working example:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:167" target="new"&gt;http://htmldb.oracle.com/pls/otn/f?p=31517:167&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enjoy.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.opal-consulting.de/training" target="new"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_y49oG7ohpQE/R6h_9UU31II/AAAAAAAAAGM/6lG5tAFBuDc/s320/schulung.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5163517664185275522" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/br&gt;&lt;/br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-3880949037924797797?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/3880949037924797797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=3880949037924797797&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/3880949037924797797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/3880949037924797797'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/02/sorting-on-apexitem.html' title='Sorting on apex_item'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_y49oG7ohpQE/R6xQf0U31JI/AAAAAAAAAGU/dL-DMpvlPC8/s72-c/sorting.gif' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-493236951784640474</id><published>2008-02-05T15:58:00.000+01:00</published><updated>2008-02-05T16:28:35.982+01:00</updated><title type='text'>Filtering a Shuttle Item</title><content type='html'>Very often a shuttle item is much convenient than a multiselect list. But what if your LOV has many hundreds or even thousands of items? Check this example:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:166" target="new"&gt;http://htmldb.oracle.com/pls/otn/f?p=31517:166&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_y49oG7ohpQE/R6h_ykU31HI/AAAAAAAAAGE/bIuV0EOGWUw/s1600-h/shuttle.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_y49oG7ohpQE/R6h_ykU31HI/AAAAAAAAAGE/bIuV0EOGWUw/s320/shuttle.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5163517479501681778" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The most of the code can be reused except of the application process. However, this &lt;br /&gt;could be written as a dynamic PL/SQL block as well.&lt;br /&gt;&lt;br /&gt;The example I used is based on a table containing around 5000 records. Having in mind this runs on apex.oracle.com, the performance of filtering is quite satisfying.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.opal-consulting.de/training" target="new"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_y49oG7ohpQE/R6h_9UU31II/AAAAAAAAAGM/6lG5tAFBuDc/s320/schulung.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5163517664185275522" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/br&gt;&lt;/br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-493236951784640474?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/493236951784640474/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=493236951784640474&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/493236951784640474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/493236951784640474'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/02/filtering-shuttle-item.html' title='Filtering a Shuttle Item'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_y49oG7ohpQE/R6h_ykU31HI/AAAAAAAAAGE/bIuV0EOGWUw/s72-c/shuttle.gif' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-2589597435878978060</id><published>2008-01-31T11:39:00.000+01:00</published><updated>2008-02-05T16:33:29.933+01:00</updated><title type='text'>Report with Filtering</title><content type='html'>As far as I know, something similar should be a part of the ApEx version 3.1. Nevertheless, I wanted to know if I can do something like that myself. The requirement is:&lt;br /&gt;&lt;br /&gt;1. a report containing a search field for each column (textfield, select list or other)&lt;br /&gt;&lt;br /&gt;2. after typing in the select criteria, the report should filter the results,&lt;br /&gt;&lt;br /&gt;3. no page submit required.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:164" target="new"&gt;Here is the result&lt;/a&gt; of what I came up with. It is quite easy (and dirty). There, you will also find the full code I used, except of the DHTML Region Pull. That one, you can find in the &lt;a href="http://htmldb.oracle.com/pls/otn/f?p=11933:48" target="new"&gt;Carl's Demo Application&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_y49oG7ohpQE/R6Gnw0U31FI/AAAAAAAAAF0/Axpa6u4sQrU/s1600-h/filter_rep.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_y49oG7ohpQE/R6Gnw0U31FI/AAAAAAAAAF0/Axpa6u4sQrU/s320/filter_rep.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5161591105065047122" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The downsides of this example:&lt;br /&gt;&lt;br /&gt;a) the code is not generic - you got to do that yourself ;)&lt;br /&gt;&lt;br /&gt;b) the sorting on the column headers doesn't work in that particular example - I avoided that since it would mean a much more work.&lt;br /&gt;&lt;br /&gt;Maybe, you will find it usefull and apply it on one or the other case.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.opal-consulting.de/training" target="new"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_y49oG7ohpQE/R6h_9UU31II/AAAAAAAAAGM/6lG5tAFBuDc/s320/schulung.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5163517664185275522" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/br&gt;&lt;/br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-2589597435878978060?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/2589597435878978060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=2589597435878978060&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/2589597435878978060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/2589597435878978060'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/01/report-with-filtering.html' title='Report with Filtering'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_y49oG7ohpQE/R6Gnw0U31FI/AAAAAAAAAF0/Axpa6u4sQrU/s72-c/filter_rep.gif' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-3081452157731019898</id><published>2008-01-22T19:26:00.000+01:00</published><updated>2008-02-05T16:34:17.201+01:00</updated><title type='text'>ApEx Training</title><content type='html'>This posting is targeting the German ApEx comunity and is therefor posted in German language:&lt;br /&gt;&lt;br /&gt;Wie Sie möglicherweise schon gehört haben, organisieren &lt;a href="http://www.inside-oracle-apex.com" target="new"&gt;Patrick&lt;/a&gt;, &lt;a href="http://daust.blogspot.com" target="new"&gt;Dietmar&lt;/a&gt; und ich einen ApEx Training im März dieses Jahres. Dieses Training heisst "Fortgeschrittene Techniken aus der Praxis". Das bedeutet natürlich nicht, dass diejenigen, die sich anmelden wollen, fortgeschrittene Kentnisse mitbringen müssen. Vielmehr ist unser Ziel, eine Schulung zu organisieren, die stärker praxisorientiert ist als wir das ansonsten kennen. Wir werden viele wichtige Themen ansprechen - vom Anwendungskonzept, über Layout bis zu den ganz modernen Themen wie z.B. Ajax. Interesse? Ueber dieses Link geht es zu den Infos und zur Anmeldung&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.opal-consulting.de" target="new"&gt;http://www.opal-consulting.de&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.opal-consulting.de/training" target="new"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_y49oG7ohpQE/R6h_9UU31II/AAAAAAAAAGM/6lG5tAFBuDc/s320/schulung.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5163517664185275522" /&gt;&lt;/a&gt;&lt;br /&gt;Wir freuen uns Sie begruessen zu duerfen!&lt;br /&gt;&lt;/br&gt;&lt;/br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-3081452157731019898?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/3081452157731019898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=3081452157731019898&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/3081452157731019898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/3081452157731019898'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/01/apex-training.html' title='ApEx Training'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_y49oG7ohpQE/R6h_9UU31II/AAAAAAAAAGM/6lG5tAFBuDc/s72-c/schulung.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-392811026630557176</id><published>2008-01-22T12:37:00.001+01:00</published><updated>2008-02-05T16:31:27.245+01:00</updated><title type='text'>Tabular form - updating a value in another column Vol. 2</title><content type='html'>If you need to deal with a tabular form created by the wizard, you will need to use a slightly different approach. I discussed that topic yesterday evening with &lt;a href="http://www.inside-oracle-apex.com" target="new"&gt;Patrick Wolf&lt;/a&gt;. The difference to the &lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:160" target="new"&gt;first approach&lt;/a&gt; you can find here:&lt;br /&gt;&lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:162" target="new"&gt;&lt;br /&gt;ApEx Demo Appication - Javascript Set Display Item II&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;The full explanation and the code are there as well. Basically, what you need to change is the way you get the rownum. Using $x(this).id will give you the current item id. Substr(4) will give you the last four digits of it (thanks &lt;a href="http://www.inside-oracle-apex.com" target="new"&gt;Patrick&lt;/a&gt;) and putting that four digits in the Number() function gives you the row number (ROWNUM). You could use that value to loop through the table and update other values, not corresponding to that particular row.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_y49oG7ohpQE/R5XYlhq9fXI/AAAAAAAAAFk/nQWQP533iRk/s1600-h/update_row_wizard.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_y49oG7ohpQE/R5XYlhq9fXI/AAAAAAAAAFk/nQWQP533iRk/s320/update_row_wizard.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5158267087428091250" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.opal-consulting.de/training" target="new"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_y49oG7ohpQE/R6h_9UU31II/AAAAAAAAAGM/6lG5tAFBuDc/s320/schulung.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5163517664185275522" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/br&gt;&lt;/br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-392811026630557176?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/392811026630557176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=392811026630557176&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/392811026630557176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/392811026630557176'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/01/tabular-form-updating-value-in-another_22.html' title='Tabular form - updating a value in another column Vol. 2'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_y49oG7ohpQE/R5XYlhq9fXI/AAAAAAAAAFk/nQWQP533iRk/s72-c/update_row_wizard.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-9042999343557667872</id><published>2008-01-22T12:13:00.000+01:00</published><updated>2008-02-05T16:31:43.141+01:00</updated><title type='text'>Access to my Workspace</title><content type='html'>My &lt;a href="http://htmldb.oracle.com/pls/otn/f?p=4550:1" target="new"&gt;workspace&lt;/a&gt; dkubicek and my &lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:1" target="new"&gt;ApEx Demo Application&lt;/a&gt; on apex.oracle.com still show around 3000 page clicks per day in average. Google Analytics says there are up to 300 visitors with an average time on site of 11 minutes. 30% of the visitors are visiting the site for the first time.&lt;br /&gt;&lt;br /&gt;Yesterday, I changed the login for the guest user in my workspace. In the past I was allowing access to my workspace with the same login as well. However, this showed to be a bad practice. Once, the application was deleted by someone and I needed my backup to restore it. Now, I require your email and your full name to give you your own access. But, I still need to ask you not to do any changes and especially not to install other applications in my workspace.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_y49oG7ohpQE/R5XRXBq9fWI/AAAAAAAAAFc/B46eQqARtuQ/s1600-h/login.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_y49oG7ohpQE/R5XRXBq9fWI/AAAAAAAAAFc/B46eQqARtuQ/s320/login.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5158259141738593634" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you want an access to the workspace where the &lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:1" target="new"&gt;ApEx Demo Application&lt;/a&gt; is stored, please send me your email with your contact details and I will respond to you with a username and a password.&lt;br /&gt;&lt;/br&gt;&lt;/br&gt;&lt;br /&gt;&amp;nbsp;&lt;/br&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.opal-consulting.de/training" target="new"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_y49oG7ohpQE/R6h_9UU31II/AAAAAAAAAGM/6lG5tAFBuDc/s320/schulung.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5163517664185275522" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/br&gt;&lt;/br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-9042999343557667872?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/9042999343557667872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=9042999343557667872&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/9042999343557667872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/9042999343557667872'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/01/access-to-my-workspace.html' title='Access to my Workspace'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_y49oG7ohpQE/R5XRXBq9fWI/AAAAAAAAAFc/B46eQqARtuQ/s72-c/login.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-7226543826399803038</id><published>2008-01-21T13:35:00.000+01:00</published><updated>2008-02-05T16:31:56.880+01:00</updated><title type='text'>Tabular form - updating a value in another column Vol. 1</title><content type='html'>Just recently, I had a requirement from one of my customers to create a kind of a form similar to excel, where user could update particular columns and this update will be applied (calculated) to the other columns, before the form is submitted. &lt;br /&gt;&lt;br /&gt;First, I tried the solution posted in the forum, where you need to loop through a table using html_CascadeUpTill and and then find the row position. In some constelations this didn't work (vertical report template). I decided to look for alternate solutions and found out that this can be done in a more transparent way by simply using apex_item package and the ROWNUM. Also, the javascript code you need to do the update is much more transparent and much easier to debug. I also created a validation process to make sure only numbers are entered and an update statement for saving the changes to the corresponding table.&lt;br /&gt;&lt;br /&gt;If you want to see a &lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:160" target="new"&gt;working example&lt;/a&gt;, go to my &lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:1" target="new"&gt;ApEx Demo Appication&lt;/a&gt;. There, you will find the full code.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_y49oG7ohpQE/R5Sw7Rq9fSI/AAAAAAAAAEk/iMNWV-429Fw/s1600-h/update_row.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_y49oG7ohpQE/R5Sw7Rq9fSI/AAAAAAAAAEk/iMNWV-429Fw/s320/update_row.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5157942005648424226" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.opal-consulting.de/training" target="new"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_y49oG7ohpQE/R6h_9UU31II/AAAAAAAAAGM/6lG5tAFBuDc/s320/schulung.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5163517664185275522" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/br&gt;&lt;/br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-7226543826399803038?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/7226543826399803038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=7226543826399803038&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/7226543826399803038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/7226543826399803038'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/01/tabular-form-updating-value-in-another.html' title='Tabular form - updating a value in another column Vol. 1'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_y49oG7ohpQE/R5Sw7Rq9fSI/AAAAAAAAAEk/iMNWV-429Fw/s72-c/update_row.gif' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-7211982971587985599</id><published>2008-01-10T13:21:00.000+01:00</published><updated>2008-01-10T13:52:11.841+01:00</updated><title type='text'>ApEx Stammtisch - ApEx Meeting in Siegburg</title><content type='html'>Dietmar and myself would like to establish regular meetings for the ApEx community in Germany. Therefor, we will start with our first meeting ("Stammtisch" in German) in Siegburg, on January 15, 2008. The target is to exchange the experience with other colleagues from the ApEx community. Further details you can find here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.opal-consulting.de" target="_new"&gt;http://www.opal-consulting.de&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You are welcome to join us,&lt;br /&gt;&lt;br /&gt;Denes&lt;br /&gt;&lt;br /&gt;-----------------------------------------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Es war Dietmars Idee, einen sog. ApEx Stammtisch zu etablieren! Er hat sie am Ende auch umgesetzt (Danke Dietmar!). Wir starten am 15.01.2008 in Siegburg. Der Plan ist diese Runde in regelmässigen Abständen zu organisieren, um die Erfahrungen aus der ApEx-Welt auszutauschen. Die Anmeldung zum Stammtisch findet ihr hier:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.opal-consulting.de" target="_new"&gt;http://www.opal-consulting.de&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Wir freuen uns auf ein Kennenlernen und bis zum nächsten Dienstag.&lt;br /&gt;&lt;br /&gt;Denes&lt;br /&gt;&lt;/br&gt;&lt;/br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-7211982971587985599?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/7211982971587985599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=7211982971587985599&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/7211982971587985599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/7211982971587985599'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/01/apex-stammtisch-apex-meeting-in.html' title='ApEx Stammtisch - ApEx Meeting in Siegburg'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-6040710657089581274</id><published>2008-01-07T18:24:00.000+01:00</published><updated>2008-01-07T21:56:16.578+01:00</updated><title type='text'>Create Virtual Tables Vol.2</title><content type='html'>Every once in a while a question similar to &lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=603113" target="_new"&gt;this one&lt;/a&gt; will appear in the forum. The problem is always the same: &lt;b&gt;"how to create a lot of data based on very few records?"&lt;/b&gt;. Today, one new variation of a puzzle followed. It took me arround half an hour in order to create a demo page, giving an idea on how to solve the problem. Of course, you need much more for a working version of an application. &lt;br /&gt;&lt;/br&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_y49oG7ohpQE/R4JiOxq9fRI/AAAAAAAAAEc/GZBn2X-8Xv8/s1600-h/Grab561.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_y49oG7ohpQE/R4JiOxq9fRI/AAAAAAAAAEc/GZBn2X-8Xv8/s320/Grab561.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5152788929656487186" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/br&gt;&lt;br /&gt;The example in my demo application&lt;br /&gt;&lt;/br&gt;&lt;br /&gt;&lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:158" target="_new"&gt;http://htmldb.oracle.com/pls/otn/f?p=31517:158&lt;/a&gt;&lt;br /&gt;&lt;/br&gt;&lt;br /&gt;is related to one of the examples from the past&lt;br /&gt;&lt;/br&gt;&lt;br /&gt;&lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:83" target="_new"&gt;http://htmldb.oracle.com/pls/otn/f?p=31517:83&lt;/a&gt;&lt;br /&gt;&lt;/br&gt;&lt;br /&gt;which I already blogged about here&lt;br /&gt;&lt;/br&gt;&lt;br /&gt;&lt;a href="http://deneskubicek.blogspot.com/2007/05/create-pseudo-tables.html" target="_new"&gt;http://deneskubicek.blogspot.com/2007/05/create-pseudo-tables.html&lt;/a&gt;&lt;br /&gt;&lt;/br&gt;&lt;br /&gt;Still, this requirement is somewhat new and different. It is worth of looking into it.&lt;/br&gt;&lt;br /&gt;&lt;/br&gt;&lt;br /&gt;&lt;/br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-6040710657089581274?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/6040710657089581274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=6040710657089581274&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/6040710657089581274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/6040710657089581274'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/01/create-virtual-tables-vol2.html' title='Create Virtual Tables Vol.2'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_y49oG7ohpQE/R4JiOxq9fRI/AAAAAAAAAEc/GZBn2X-8Xv8/s72-c/Grab561.gif' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-6237082698127628626</id><published>2008-01-07T13:54:00.000+01:00</published><updated>2008-01-07T14:15:26.442+01:00</updated><title type='text'>Export to Excel - 1500 downloads</title><content type='html'>The package I created for downloading ApEx reports into Excel (instead of .csv) has now been available for about ten months. Some time after releasing the package I started to count the downloads. There have been more than 1500 downloads so far. There are two versions of the package - one for ApEx and one for XE. The &lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:108" target="_new"&gt;ApEx Package&lt;/a&gt; has been downloaded around 1200 times and the &lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:109" target="_new"&gt;XE version&lt;/a&gt; arround 300 times. I have to admit I hardly touched the package since the first release. However, it could be improved a lot to cover some functionalities .csv offers. I already talked to &lt;a href="http://www.inside-apex.blogspot.com/" target="_new"&gt;Patrick Wolf&lt;/a&gt; to put some common efforts into the improvement of the package in the near future. I would also like to thank to &lt;b&gt;Bernhard Kahles&lt;/b&gt; and &lt;b&gt;Martin Wibbing&lt;/b&gt; for their contributions to the improvments in the past, which helped to overcome some version related limitations.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_y49oG7ohpQE/Rjmdv1OJZGI/AAAAAAAAABs/3atASmBndYw/s1600-h/excel_colors.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_y49oG7ohpQE/Rjmdv1OJZGI/AAAAAAAAABs/3atASmBndYw/s320/excel_colors.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5060249101393290338" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is the link to the package once again.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:108" target="_new"&gt;http://htmldb.oracle.com/pls/otn/f?p=31517:108&lt;/a&gt;&lt;br /&gt;&lt;/br&gt;&lt;br /&gt;&lt;/br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-6237082698127628626?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/6237082698127628626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=6237082698127628626&amp;isPopup=true' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/6237082698127628626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/6237082698127628626'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2008/01/export-to-excel-1500-downloads.html' title='Export to Excel - 1500 downloads'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_y49oG7ohpQE/Rjmdv1OJZGI/AAAAAAAAABs/3atASmBndYw/s72-c/excel_colors.jpg' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-3379531875890027396</id><published>2007-11-05T16:01:00.000+01:00</published><updated>2007-11-10T22:18:15.691+01:00</updated><title type='text'>Tabular Form on a table without a primary key (multiple primary keys)</title><content type='html'>One of the questions that frequently appear in the ApEx forum is "How to create a tabular form on a table without a primary key or on a table with multiple primary keys (more than two primary keys allowed by the wizard)?". The solution is simple and interesting - by using a view and two instead of triggers. The view is using the rowid column as a primary key. The two triggers - instead of update and instead of insert triggers - are managing the updates and inserts. See the example plus the corresponding code in my demo application &lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:157" target="new"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;/br&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_y49oG7ohpQE/RzYgA3A6YaI/AAAAAAAAAEU/mQbxXs7NAmU/s1600-h/instead_of.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_y49oG7ohpQE/RzYgA3A6YaI/AAAAAAAAAEU/mQbxXs7NAmU/s320/instead_of.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5131324024575123874" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/br&gt;&lt;/br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-3379531875890027396?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/3379531875890027396/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=3379531875890027396&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/3379531875890027396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/3379531875890027396'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2007/11/tabular-form-on-table-without-primary.html' title='Tabular Form on a table without a primary key (multiple primary keys)'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_y49oG7ohpQE/RzYgA3A6YaI/AAAAAAAAAEU/mQbxXs7NAmU/s72-c/instead_of.gif' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-9096511985021769100</id><published>2007-09-26T19:10:00.000+02:00</published><updated>2007-09-26T19:27:26.296+02:00</updated><title type='text'>Interesting translation</title><content type='html'>I haven't blogged for a while. Too busy with my own stuff - projects, customers and my own business. Today, I was testing some things and stumbled upon a funny translation. I created a package body and dropped it. Here is what I received back from SQL Plus in German:&lt;br /&gt;&lt;/br&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_y49oG7ohpQE/RvqUcZpMOVI/AAAAAAAAAD8/G5FOQ9eJlh8/s1600-h/SQLPLUS_GERMAN.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_y49oG7ohpQE/RvqUcZpMOVI/AAAAAAAAAD8/G5FOQ9eJlh8/s320/SQLPLUS_GERMAN.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5114563542473521490" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Basically, what it says after dropping is:&lt;br /&gt;&lt;br /&gt;"Package Body created"&lt;br /&gt;&lt;br /&gt;And here is what it says in English:&lt;br /&gt;&lt;/br&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_y49oG7ohpQE/RvqU1ZpMOWI/AAAAAAAAAEE/kpuVL8mxBx8/s1600-h/SQLPLUS_ENGLISH.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_y49oG7ohpQE/RvqU1ZpMOWI/AAAAAAAAAEE/kpuVL8mxBx8/s320/SQLPLUS_ENGLISH.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5114563971970251106" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/br&gt;&lt;br /&gt;But still, I like PL/SQL a lot. No doubts about that.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-9096511985021769100?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/9096511985021769100/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=9096511985021769100&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/9096511985021769100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/9096511985021769100'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2007/09/interesting-translation.html' title='Interesting translation'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_y49oG7ohpQE/RvqUcZpMOVI/AAAAAAAAAD8/G5FOQ9eJlh8/s72-c/SQLPLUS_GERMAN.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-1348908649475327489</id><published>2007-07-12T11:48:00.000+02:00</published><updated>2007-07-12T11:56:54.111+02:00</updated><title type='text'>Displaying and Sorting</title><content type='html'>&lt;p&gt;&lt;br /&gt;Quite often there is a misunderstanding between displaying of a value and sorting upon the same. ApEx reports are giving you a possibility to show one value and sort upon a different value, which you even may not want to show to the user. &lt;br /&gt;&lt;br /&gt;As always, I created a small example in my demo application containing a full explanation and a link to the corresponding thread in the forum:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:153" target="_new"&gt;http://htmldb.oracle.com/pls/otn/f?p=31517:153&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_y49oG7ohpQE/RpX6FGtrMhI/AAAAAAAAAC0/mcU4SBbjGUk/s1600-h/sort_rep.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_y49oG7ohpQE/RpX6FGtrMhI/AAAAAAAAAC0/mcU4SBbjGUk/s320/sort_rep.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5086246319793320466" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It is easy to set it up and it shows the power of ApEx once again - it's simplicity.&lt;br /&gt;&lt;/br&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-1348908649475327489?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/1348908649475327489/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=1348908649475327489&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/1348908649475327489'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/1348908649475327489'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2007/07/displaying-and-sorting.html' title='Displaying and Sorting'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_y49oG7ohpQE/RpX6FGtrMhI/AAAAAAAAAC0/mcU4SBbjGUk/s72-c/sort_rep.gif' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-2088178605552598887</id><published>2007-06-13T00:18:00.000+02:00</published><updated>2007-06-13T00:49:29.581+02:00</updated><title type='text'>Multiple Reports in one Region</title><content type='html'>&lt;p&gt;&lt;br /&gt;One of frequently asked questions in the forum is "how to put more than one region in&lt;br /&gt;a region?". For example a report and a list or two or more reports. There is a simple way - hardcoded - for solving this problem.&lt;br /&gt;&lt;br /&gt;In my &lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:152" target="_new"&gt;Demo Application&lt;/a&gt; there is an example showing this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_y49oG7ohpQE/Rm8iyhvLNNI/AAAAAAAAACs/xPzL1_Ef42E/s1600-h/multi_region.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_y49oG7ohpQE/Rm8iyhvLNNI/AAAAAAAAACs/xPzL1_Ef42E/s320/multi_region.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5075313556514878674" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;What I did was the following:&lt;br /&gt;&lt;br /&gt;1. I copied a report region template and modified it slightly,&lt;br /&gt;&lt;br /&gt;2. Created a copy of my standard page template,&lt;br /&gt;&lt;br /&gt;3. Included the report template in it, just before the #BOX_BODY#,&lt;br /&gt;&lt;br /&gt;4. In the #BODY# section of the report template, I put the #REGION_POSITION_05# and #REGION_POSITION_06# instead,&lt;br /&gt;&lt;br /&gt;5. Now, using the page template and putting the reports in the #REGION_POSITION_05# and #REGION_POSITION_06#, was giving me the result I needed.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;/br&gt;&lt;br /&gt;&lt;/br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-2088178605552598887?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/2088178605552598887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=2088178605552598887&amp;isPopup=true' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/2088178605552598887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/2088178605552598887'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2007/06/multiple-reports-in-one-region.html' title='Multiple Reports in one Region'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_y49oG7ohpQE/Rm8iyhvLNNI/AAAAAAAAACs/xPzL1_Ef42E/s72-c/multi_region.gif' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-3561922725792871676</id><published>2007-06-03T10:30:00.000+02:00</published><updated>2007-06-03T10:54:54.219+02:00</updated><title type='text'>European ApEx Training</title><content type='html'>&lt;p&gt;&lt;br /&gt;I have been asked many times about a possibility to get some good training for ApEx. I think, there is an oracle two-day training on basics. However, what people want is usually more than that. Some weeks ago, the European APEX Training Days of the APEX Evangelists was announced. This will be a &lt;a href="http://www.apex-evangelists.com/pls/apex/f?p=208:1" target="_new"&gt;3-day training&lt;/a&gt; covering advanced ApEx issues like ajax, security, customizing templates and many, many others.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_y49oG7ohpQE/RmJ_DcmveLI/AAAAAAAAACc/4JISu4oaJhg/s1600-h/banner_training-days.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_y49oG7ohpQE/RmJ_DcmveLI/AAAAAAAAACc/4JISu4oaJhg/s320/banner_training-days.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5071755827567622322" /&gt;&lt;/a&gt;&lt;br /&gt;If you are interested, you can benefit from the knowledge of John and Dimitri.&lt;br /&gt;&lt;br /&gt;John is Oracle APEX developer of the year 2006 and is the author of the book &lt;a href="http://www.amazon.com/Pro-Oracle-Application-Express/dp/159059827X/ref=pd_bbs_2/105-2546083-6647660?ie=UTF8&amp;s=books&amp;qid=1180351983&amp;sr=8-2" target="_new"&gt;"Pro Oracle Application Express"&lt;/a&gt; - a person with an Avatar level in ApEx.&lt;br /&gt;&lt;br /&gt;Dimitri is a well known contributor on the OTN Oracle APEX forum and speaker at Collab'07. He is a creator of the popular &lt;a href="http://www.dgtournament.com/pls/apex/f?p=103:1" target="_new"&gt;dgturnament application&lt;/a&gt; and has many years of experience with Oracle.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/br&gt;&lt;/br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-3561922725792871676?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/3561922725792871676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=3561922725792871676&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/3561922725792871676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/3561922725792871676'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2007/06/european-apex-training.html' title='European ApEx Training'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_y49oG7ohpQE/RmJ_DcmveLI/AAAAAAAAACc/4JISu4oaJhg/s72-c/banner_training-days.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-5227352115425304928</id><published>2007-05-18T00:11:00.000+02:00</published><updated>2007-05-18T11:43:12.788+02:00</updated><title type='text'>ApEx - Replacing Binds Procedure</title><content type='html'>&lt;p&gt;&lt;br /&gt;If you need to use the apex_collection.crate_collection_from_query package, you will need to replace your :P_ITEM binds with v('P_ITEM') in your SQL, in order to get it working. Sometimes, it could be a pain. Using the following procedure will do the work for you:&lt;br /&gt;&lt;span style="font-weight:bold;color:darkgblue"&gt;&lt;pre&gt;&lt;br /&gt;CREATE OR REPLACE PROCEDURE replace_binds (&lt;br /&gt;   p_sql_in    IN       VARCHAR2,&lt;br /&gt;   p_sql_out   OUT      VARCHAR2&lt;br /&gt;)&lt;br /&gt;IS&lt;br /&gt;   v_sql      VARCHAR2 (32767);&lt;br /&gt;   v_names    DBMS_SQL.varchar2_table;&lt;br /&gt;   v_pos      NUMBER;&lt;br /&gt;   v_length   NUMBER;&lt;br /&gt;   v_exit     NUMBER;&lt;br /&gt;BEGIN&lt;br /&gt;   v_sql := p_sql_in;&lt;br /&gt;   v_names := wwv_flow_utilities.get_binds (v_sql);&lt;br /&gt;&lt;br /&gt;   FOR i IN 1 .. v_names.COUNT&lt;br /&gt;   LOOP&lt;br /&gt;&lt;br /&gt;      &amp;lt;&amp;lt;do_it_again&gt;&gt;&lt;br /&gt;      v_pos := INSTR (LOWER (v_sql), LOWER (v_names (i)));&lt;br /&gt;      v_length := LENGTH (LOWER (v_names (i)));&lt;br /&gt;      v_sql :=&lt;br /&gt;            SUBSTR (v_sql, 1, v_pos - 1)&lt;br /&gt;         || v_names (i)&lt;br /&gt;         || SUBSTR (v_sql, v_pos + v_length);&lt;br /&gt;      v_sql :=&lt;br /&gt;         REPLACE (v_sql,&lt;br /&gt;                  UPPER (v_names (i)),&lt;br /&gt;                  'v(''' || LTRIM (v_names (i), ':') || ''')'&lt;br /&gt;                 );&lt;br /&gt;&lt;br /&gt;      IF INSTR (LOWER (v_sql), LOWER (v_names (i))) &gt; 0&lt;br /&gt;      THEN&lt;br /&gt;         GOTO do_it_again;&lt;br /&gt;      END IF;&lt;br /&gt;   END LOOP;&lt;br /&gt;&lt;br /&gt;   p_sql_out := v_sql;&lt;br /&gt;END replace_binds;&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;And you no longer need to worry about modifying your code.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;/br&gt;&lt;/br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-5227352115425304928?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/5227352115425304928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=5227352115425304928&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/5227352115425304928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/5227352115425304928'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2007/05/apex-replacing-binds-procedure.html' title='ApEx - Replacing Binds Procedure'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-8601804070936717498</id><published>2007-05-15T22:23:00.000+02:00</published><updated>2007-05-16T17:13:38.211+02:00</updated><title type='text'>Create Virtual Tables</title><content type='html'>&lt;p&gt;&lt;br /&gt;This is one of frequently asked questions:&lt;br /&gt;&lt;br /&gt;"I have only a few lines of data - mostly some dates with a duration from &gt; to - and would like to use this as table to select from and populate a calendar. This calendar is supposed to show one entry for each day within a time period. How do I do that? Do I need to create a separate table?"&lt;br /&gt;&lt;br /&gt;The answer is "No, you don't.". Using CONNECT BY LEVEL, you can create virtual tables and use those in your select statements. For example: there was a question in &lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=508025" target="_new"&gt;this post&lt;/a&gt;, how to show all Fridays within a certain period of time. Depending on your NLS settings you would do something like this to create a virtual table, showing all Fridays from the beginning of the year to the current day:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:darkgreen;font-weight:bold"&gt;&lt;pre&gt;&lt;br /&gt;SELECT each_day "friday"&lt;br /&gt;  FROM (SELECT       (  TRUNC (SYSDATE)&lt;br /&gt;                      - TO_NUMBER (TO_CHAR (TO_DATE (SYSDATE), 'ddd'))&lt;br /&gt;                     )&lt;br /&gt;                   + LEVEL each_day&lt;br /&gt;              FROM DUAL&lt;br /&gt;        CONNECT BY LEVEL &lt;= TO_NUMBER (TO_CHAR (TO_DATE (SYSDATE), 'ddd')))&lt;br /&gt; WHERE TO_CHAR (each_day, 'D') = '5'&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Depending on your NLS settings, a Friday could be the fifth or the sixth day of the week.&lt;br /&gt;&lt;br /&gt;In my demo application, you will find an interesting example on how to populate a calender for three events (three records) stored in a table, getting for each day within a given period of time, one entry in a calendar:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:83" target="_new"&gt;http://htmldb.oracle.com/pls/otn/f?p=31517:83&lt;/a&gt;&lt;br /&gt;&lt;/br&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_y49oG7ohpQE/Rkoa3lOJZLI/AAAAAAAAACU/0fffC6moFmM/s1600-h/nice_lookin_calendar.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_y49oG7ohpQE/Rkoa3lOJZLI/AAAAAAAAACU/0fffC6moFmM/s320/nice_lookin_calendar.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5064890273118119090" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/br&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_y49oG7ohpQE/Rkoay1OJZKI/AAAAAAAAACM/QeFa0da6GzY/s1600-h/small_table.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_y49oG7ohpQE/Rkoay1OJZKI/AAAAAAAAACM/QeFa0da6GzY/s320/small_table.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5064890191513740450" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;/br&gt;&lt;/br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-8601804070936717498?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/8601804070936717498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=8601804070936717498&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/8601804070936717498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/8601804070936717498'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2007/05/create-pseudo-tables.html' title='Create Virtual Tables'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_y49oG7ohpQE/Rkoa3lOJZLI/AAAAAAAAACU/0fffC6moFmM/s72-c/nice_lookin_calendar.gif' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-7532679682206608846</id><published>2007-05-15T08:36:00.000+02:00</published><updated>2007-05-15T14:49:08.198+02:00</updated><title type='text'>Almost too trivial for a post</title><content type='html'>&lt;p&gt;&lt;br /&gt;I have been using SQL for years and from time to time I stumble upon a problem, where I needed to count the occurrence of a character or a string within another string. Searching for a standard function in Oracle gives me no results. Browsing in the good old SQL forum gave me an idea on how to create my own function:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:darkblue;font-weight:bold"&gt;&lt;pre&gt;&lt;br /&gt;CREATE OR REPLACE FUNCTION string_occurrence (&lt;br /&gt;   p_string      IN   VARCHAR2,&lt;br /&gt;   p_substring   IN   VARCHAR2&lt;br /&gt;)&lt;br /&gt;   RETURN NUMBER&lt;br /&gt;IS&lt;br /&gt;   v_occurrence   NUMBER;&lt;br /&gt;BEGIN&lt;br /&gt;   v_occurrence :=&lt;br /&gt;        (  LENGTH (p_string)&lt;br /&gt;         - NVL (LENGTH (REPLACE (p_string, &lt;br /&gt;                                 p_substring, '')), 0)&lt;br /&gt;        )&lt;br /&gt;      / LENGTH (p_substring);&lt;br /&gt;   RETURN v_occurrence;&lt;br /&gt;END string_occurrence;&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The simplicity of the idea is fascinating:&lt;br /&gt;&lt;br /&gt;1. since you can't count it directly, you count the total string,&lt;br /&gt;&lt;br /&gt;2. after that you replace the string you search for with '' (nothing) and count again,&lt;br /&gt;&lt;br /&gt;3. you subtract the second value from the first and&lt;br /&gt;&lt;br /&gt;4. you divide the result by the length of the string you want to count the occurrence for.&lt;br /&gt;&lt;br /&gt;And there we go.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-7532679682206608846?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/7532679682206608846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=7532679682206608846&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/7532679682206608846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/7532679682206608846'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2007/05/almost-too-trivial-for-posting.html' title='Almost too trivial for a post'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-4964371731484596213</id><published>2007-05-14T11:53:00.000+02:00</published><updated>2007-05-14T12:04:38.241+02:00</updated><title type='text'>Ajax - Query by Example</title><content type='html'>&lt;p&gt;&lt;br /&gt;This is one of the frequently asked questions in the ApEx forum. I created an example on how to build a form which will work similar to the Forms QBE &lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:135" target="_new"&gt;here&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;The solution could be more generic. I have the idea to store the result of a query in a collection and access that collection instead of repeating the query for each click on the "Previous" and "Next" button. However, I encountered a problem creating a collection from an On Demand process. I posted this problem &lt;a href=" " target="_new"&gt;here&lt;/a&gt; and I'm waiting for an answer. If there is one, I could get rid of some lines of code in the original proposal.&lt;br /&gt;&lt;/br&gt;&lt;/br&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_y49oG7ohpQE/Rkgzf1OJZII/AAAAAAAAAB8/mSsZOiELv-w/s1600-h/Oracle5.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_y49oG7ohpQE/Rkgzf1OJZII/AAAAAAAAAB8/mSsZOiELv-w/s320/Oracle5.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5064354402933499010" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_y49oG7ohpQE/Rkgz8FOJZJI/AAAAAAAAACE/byRYn-MgVpQ/s1600-h/qbe.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_y49oG7ohpQE/Rkgz8FOJZJI/AAAAAAAAACE/byRYn-MgVpQ/s320/qbe.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5064354888264803474" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-4964371731484596213?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/4964371731484596213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=4964371731484596213&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/4964371731484596213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/4964371731484596213'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2007/05/ajax-query-by-example.html' title='Ajax - Query by Example'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_y49oG7ohpQE/Rkgzf1OJZII/AAAAAAAAAB8/mSsZOiELv-w/s72-c/Oracle5.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-2243033777389787358</id><published>2007-05-03T10:28:00.000+02:00</published><updated>2007-05-03T10:35:14.129+02:00</updated><title type='text'>Export to Excel - Unwrapped</title><content type='html'>&lt;p&gt;&lt;br /&gt;The packages for Export to Excel for ApEx and XE are now unwrapped and available for download:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:108" target="_new"&gt;http://htmldb.oracle.com/pls/otn/f?p=31517:108&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:109" target="_new"&gt;http://htmldb.oracle.com/pls/otn/f?p=31517:109&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_y49oG7ohpQE/Rjmdv1OJZGI/AAAAAAAAABs/3atASmBndYw/s1600-h/excel_colors.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_y49oG7ohpQE/Rjmdv1OJZGI/AAAAAAAAABs/3atASmBndYw/s320/excel_colors.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5060249101393290338" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/br&gt;&lt;/br&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_y49oG7ohpQE/Rjmd3FOJZHI/AAAAAAAAAB0/g2kisNimEZc/s1600-h/download_to_excel.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_y49oG7ohpQE/Rjmd3FOJZHI/AAAAAAAAAB0/g2kisNimEZc/s320/download_to_excel.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5060249225947341938" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You may use them and modify as you need. It has been downloaded arround 300 times in the last two months. Shows that it works and it is needed, despite of the new BI publisher feature available for ApEx 3.0.&lt;br /&gt;&lt;br /&gt;The method is quite simple. You need to generate HTML tables and it will be readable as a normal .xls file from 97 to the latest version. This gives an option to create multiple pages in excel and export multiple reports in one run as one file. Of course, it needs some modification within the package to do that.&lt;br /&gt;&lt;br /&gt;Have fun.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-2243033777389787358?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/2243033777389787358/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=2243033777389787358&amp;isPopup=true' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/2243033777389787358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/2243033777389787358'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2007/05/export-to-excel-unwrapped.html' title='Export to Excel - Unwrapped'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_y49oG7ohpQE/Rjmdv1OJZGI/AAAAAAAAABs/3atASmBndYw/s72-c/excel_colors.jpg' height='72' width='72'/><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-530053302068195959</id><published>2007-04-26T10:34:00.000+02:00</published><updated>2007-04-26T11:05:03.687+02:00</updated><title type='text'>ApEx + Javascript = Ajax</title><content type='html'>&lt;p&gt;&lt;br /&gt;Understanding the syntax of javascript is a hard piece of work. I have to admit, that I just started to understand some small portions of it. However, many of the functions you need, have already been written by someone and they are available for a free download. A simple Google-Search will bring you there. But the real power of javascript in ApEx comes as a combination of it and PL/SQL, called Ajax. In my demo application, thera are several examples on how to utilize javascript and a page process on demand. It saves time and looks much better than refreshing a complete page. &lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:80" target="_new"&gt;Here&lt;/a&gt;, you can find examples for:&lt;br /&gt;&lt;br /&gt;- selecting a value using select list,&lt;br /&gt;- populating multiple items using select list,&lt;br /&gt;- cascading select and pop-up lists,&lt;br /&gt;- creating a shopping cart,&lt;br /&gt;- calculating date differences and&lt;br /&gt;- using the famous Auto-Complete functionality.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_y49oG7ohpQE/RjBqM1OJZFI/AAAAAAAAABk/pf3YugLgP_4/s1600-h/ajax.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_y49oG7ohpQE/RjBqM1OJZFI/AAAAAAAAABk/pf3YugLgP_4/s320/ajax.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5057659150214456402" /&gt;&lt;/a&gt;&lt;br /&gt;Many of the examples are comming from &lt;a href="http://www.carlback.blogspot.com/" target="_new"&gt;Carl Backstrom&lt;/a&gt;. I just modified them a little bit. All the pages include a detailed description on how to set it up + the corresponding code.&lt;br /&gt;&lt;br /&gt;Have fun!&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-530053302068195959?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/530053302068195959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=530053302068195959&amp;isPopup=true' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/530053302068195959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/530053302068195959'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2007/04/apex-javascript-ajax.html' title='ApEx + Javascript = Ajax'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_y49oG7ohpQE/RjBqM1OJZFI/AAAAAAAAABk/pf3YugLgP_4/s72-c/ajax.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-2292063641539301319</id><published>2007-04-10T14:26:00.000+02:00</published><updated>2007-04-10T14:31:37.648+02:00</updated><title type='text'>Custom Search Form</title><content type='html'>&lt;p&gt;&lt;br /&gt;Many questions in the &lt;a href="http://forums.oracle.com/forums/forum.jspa?forumID=137" target="new"&gt;ApEx Forum&lt;/a&gt; are related to the way of creating custom search forms and implementation of different page elements in query filtering. I created an example a while ago and had to point to it several times since. I think, this is worth of posting once again. You will find the mentioned example &lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:99" target="new"&gt;here&lt;/a&gt;. It shows how to implement a filtering functionality using four different page elements:&lt;br /&gt;&lt;br /&gt;- text field&lt;br /&gt;- drop-down list&lt;br /&gt;- date picker and&lt;br /&gt;- a checkbox&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_y49oG7ohpQE/RhuDiOyrnwI/AAAAAAAAABc/AVwaX2nKy5M/s1600-h/search_form.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_y49oG7ohpQE/RhuDiOyrnwI/AAAAAAAAABc/AVwaX2nKy5M/s320/search_form.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5051776031135604482" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-2292063641539301319?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/2292063641539301319/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=2292063641539301319&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/2292063641539301319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/2292063641539301319'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2007/04/custom-search-form.html' title='Custom Search Form'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_y49oG7ohpQE/RhuDiOyrnwI/AAAAAAAAABc/AVwaX2nKy5M/s72-c/search_form.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-5344292858110589301</id><published>2007-04-05T09:31:00.000+02:00</published><updated>2007-04-05T10:55:19.444+02:00</updated><title type='text'>Checkbox Nightmare</title><content type='html'>&lt;p&gt;&lt;br /&gt;There are only very few things in ApEx you could describe as critical. One of those, for sure, are checkboxes in tabular forms. I had a requirement to use those items in a updatable tabular form for setting simple flags like "Y" or "N", by clicking a checkbox. You will agree, this isn't something special if you think of oder programs operating on databases - evan Access has this functionality. &lt;br /&gt;&lt;br /&gt;I spent several hours trying to solve that issue and finaly I had to give up. I asked &lt;a href="http://www.inside-apex.blogspot.com/" target="new"&gt;Patrick Wolf&lt;/a&gt;, our expert for tabular forms for help. He was so kind to look into the application and correct it. And it worked. You can see the example &lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:123" target="new"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;My request to the ApEx team:&lt;br /&gt;&lt;br /&gt;Please solve this issue in one of the next releases. I can't really sell this problem to my customers. It is too trivial to be taken serious. Thanks.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_y49oG7ohpQE/RhS43sf0UmI/AAAAAAAAABU/gJ6-5l0hBU8/s1600-h/checkbox_issues.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_y49oG7ohpQE/RhS43sf0UmI/AAAAAAAAABU/gJ6-5l0hBU8/s320/checkbox_issues.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5049864349166096994" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-5344292858110589301?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/5344292858110589301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=5344292858110589301&amp;isPopup=true' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/5344292858110589301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/5344292858110589301'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2007/04/checkbox-nightmare.html' title='Checkbox Nightmare'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_y49oG7ohpQE/RhS43sf0UmI/AAAAAAAAABU/gJ6-5l0hBU8/s72-c/checkbox_issues.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-2411878658790970121</id><published>2007-03-26T09:45:00.000+02:00</published><updated>2007-03-26T09:53:15.430+02:00</updated><title type='text'>ApEx is Oracle</title><content type='html'>&lt;p&gt;&lt;br /&gt;Very often I get asked if ApEx can do this or that, what usually is a functionality available in Oracle. Recently, there was a question if using ApEx, you can operate with nested tables (varrays). My answer is: Sure you can! However, it always depends what you want do do with it.&lt;br /&gt;&lt;br /&gt;I created a simple example &lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:122" target="_new"&gt;here&lt;/a&gt;. It shows how simple it is to create, insert and query upon nested tables using ApEx.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_y49oG7ohpQE/Rgd7N8SaCKI/AAAAAAAAABM/GChBY5L8B_g/s1600-h/nested_tables.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_y49oG7ohpQE/Rgd7N8SaCKI/AAAAAAAAABM/GChBY5L8B_g/s320/nested_tables.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5046137386943776930" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-2411878658790970121?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/2411878658790970121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=2411878658790970121&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/2411878658790970121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/2411878658790970121'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2007/03/apex-is-oracle.html' title='ApEx is Oracle'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_y49oG7ohpQE/Rgd7N8SaCKI/AAAAAAAAABM/GChBY5L8B_g/s72-c/nested_tables.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-1541677246693939942</id><published>2007-03-16T13:31:00.000+01:00</published><updated>2007-03-16T14:00:03.498+01:00</updated><title type='text'>Export to XML format</title><content type='html'>&lt;p&gt;&lt;br /&gt;I received couple of emails asking me how to export a report to an .xml file. Therefore I decided to create a small package and a demo application showing how to do that.&lt;br /&gt;&lt;br /&gt;You can have a look here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:118" target="new"&gt;http://htmldb.oracle.com/pls/otn/f?p=31517:118&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;and read the corresponding thread here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://forums.oracle.com/forums/thread.jspa?messageID=1740225" target="new"&gt;http://forums.oracle.com/forums/thread.jspa?messageID=1740225&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_y49oG7ohpQE/RfqOrqr4foI/AAAAAAAAABE/sOipAMlZR_w/s1600-h/xml_export.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_y49oG7ohpQE/RfqOrqr4foI/AAAAAAAAABE/sOipAMlZR_w/s320/xml_export.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5042499613638557314" /&gt;&lt;/a&gt;&lt;br /&gt;Basically, you need to fetch the region source and replace bind variables with the v('ITEM') function first. Second, you use the DBMS_XMLQUERY.getxml package to transfer you SQL Query into a result set, formated as XML. After that, you just need to cut your result into smaller portions and create an .xml file out of it.&lt;br /&gt;&lt;br /&gt;This will not work for lower versions than 2.2 or XE. For those, you need to replace the part of the package fetching the region source with this block:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;      SELECT plug_source&lt;br /&gt;        INTO v_sql&lt;br /&gt;        FROM wwv_flow_page_plugs&lt;br /&gt;       WHERE ID = LTRIM (p_region, 'R')&lt;br /&gt;         AND page_id = p_page_id&lt;br /&gt;         AND flow_id = p_app_id;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;and have the appropriate grants granted by sys on&lt;br /&gt;&lt;br /&gt;GRANT SELECT ON flows_020100.wwv_flow_page_plugs TO &amp;lt;your_schema&gt;&lt;br /&gt;&lt;br /&gt;and &lt;br /&gt;&lt;br /&gt;CREATE OR REPLACE PUBLIC SYNONYM wwv_flow_page_plugs FOR&lt;br /&gt;flows_020100.wwv_flow_page_plugs&lt;br /&gt;&lt;br /&gt;where flows_020100 is your html_db schema.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-1541677246693939942?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/1541677246693939942/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=1541677246693939942&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/1541677246693939942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/1541677246693939942'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2007/03/export-to-xls.html' title='Export to XML format'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_y49oG7ohpQE/RfqOrqr4foI/AAAAAAAAABE/sOipAMlZR_w/s72-c/xml_export.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-7302239343116081144</id><published>2007-03-16T09:18:00.000+01:00</published><updated>2007-03-16T09:28:34.305+01:00</updated><title type='text'>.csv Export Problem</title><content type='html'>&lt;p&gt;&lt;br /&gt;This problem is quite old. Many times my users complained getting no output when they try to export what they see in a report. I just found out that nobody was so really aware of this problem. Have a look at my &lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:117" target="new"&gt;example&lt;/a&gt; and the corresponding &lt;a href="http://forums.oracle.com/forums/thread.jspa?messageID=1739685" target="new"&gt;thread&lt;/a&gt; in the Oracle Forum.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_y49oG7ohpQE/RfpUlqr4fnI/AAAAAAAAAA8/_2GlvAsruzw/s1600-h/no_data_found.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_y49oG7ohpQE/RfpUlqr4fnI/AAAAAAAAAA8/_2GlvAsruzw/s320/no_data_found.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5042435738884931186" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-7302239343116081144?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/7302239343116081144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=7302239343116081144&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/7302239343116081144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/7302239343116081144'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2007/03/csv-export-problem.html' title='.csv Export Problem'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_y49oG7ohpQE/RfpUlqr4fnI/AAAAAAAAAA8/_2GlvAsruzw/s72-c/no_data_found.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-4079377772276424670</id><published>2007-03-15T11:00:00.000+01:00</published><updated>2007-03-15T13:56:41.851+01:00</updated><title type='text'>4000 Page Clicks</title><content type='html'>&lt;br /&gt;I never thought so many people from all arround the world will visit my &lt;a href="http://htmldb.oracle.com/pls/otn/f?p=31517:1" target="new"&gt;Apex Demo Application&lt;/a&gt;. Yesterday, I saw more than 4000 pageclicks. Google Analytics says that over 250 visitors have opened my demo application within the last 24 hours. One of the biggest groups is located in Thousand Oaks and Redwood Shore in California - arround 10% of my visitors.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://htmldb.oracle.com/pls/otn/f?p=31517:1" target="new"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_y49oG7ohpQE/RfkewKr4fmI/AAAAAAAAAA0/46tbcaoBD5Q/s320/google_analytics.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5042095070668947042" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;That's really cool.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-4079377772276424670?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/4079377772276424670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=4079377772276424670&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/4079377772276424670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/4079377772276424670'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2007/03/4000-pageclicks.html' title='4000 Page Clicks'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_y49oG7ohpQE/RfkewKr4fmI/AAAAAAAAAA0/46tbcaoBD5Q/s72-c/google_analytics.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1561253375800464394.post-6344057420557813527</id><published>2007-03-14T21:20:00.000+01:00</published><updated>2007-03-15T11:22:48.799+01:00</updated><title type='text'>ApEx Evangelists</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;br /&gt;Couple of days ago, I was asked by Dimitri and John if I would like to join their project called &lt;a href="http://www.apex-evangelists.com/pls/apex/f?p=208:1" target="_new"&gt;ApEx Evangelists&lt;/a&gt;. This was an offer you can't refuse. You will find an entry about myself &lt;a href="http://www.apex-evangelists.com/pls/apex/f?p=208:3" target="new"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I liked the idea of getting together and promoting ApEx - it is just cool. Also, I like the idea of having all these good people on board - Patric, Dietmar, Dimitri and John. Joining our efforts, we can offer an unbeatable quality of service, training and solutions.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apex-evangelists.com" target="new"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_y49oG7ohpQE/Rfkdk6r4flI/AAAAAAAAAAs/AQw_Vl2bUV0/s320/ae.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5042093777883790930" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So, &lt;a href="http://www.apex-evangelists.com/pls/apex/f?p=208:1" target="_new"&gt;ApEx Evangelists&lt;/a&gt; are coming to town - stay tuned.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1561253375800464394-6344057420557813527?l=deneskubicek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deneskubicek.blogspot.com/feeds/6344057420557813527/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1561253375800464394&amp;postID=6344057420557813527&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/6344057420557813527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1561253375800464394/posts/default/6344057420557813527'/><link rel='alternate' type='text/html' href='http://deneskubicek.blogspot.com/2007/03/couple-of-days-ago-i-was-asked-by.html' title='ApEx Evangelists'/><author><name>Denes Kubicek</name><uri>http://www.blogger.com/profile/01962373591521960882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_y49oG7ohpQE/SqESxRM9-tI/AAAAAAAAASo/DJHEMZyqijI/S220/DK-Picture1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_y49oG7ohpQE/Rfkdk6r4flI/AAAAAAAAAAs/AQw_Vl2bUV0/s72-c/ae.png' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
