Skip to main content

Posts

Showing posts from 2015

I *almost* made it to the ODTUG Board of Directors ...

Last month was the annual election for the Board of Directors of ODTUG. And just like the year before, I was one of the 19 (!) candidates for one of the 5 spots. 
During the campaign and election periods I received a lot of positive feedback and my hopes were high - but the competition was extremely strong. During Oracle Open World the results were announced and I was notified I hadn't made it into the top 5 - alas. And after receiving the detailed results it appears I was "that" close ...
Also, during the election period, I got some messages saying "if I could vote, I would vote for you". Of course that kind of support is helpful, but it would be better for me and for ODTUG when those people signed up as either a Individual or Corporate member - see the ODTUG website. For just $99 you get unlimited access to a wealth of knowledge and you support your favourite user group. So that's just $8.25 per month very well spent !
Thanks to the (large number of) peop…

APEX Reports : Double click to edit

Apart from the Current Record Indicator in your APEX Reports, another question often pops up at my client sites. A lot of functionality is implemented using a Report and a (Modal) Form. But to access that Form, the user has to click exactly on the small link icon in the first column of the report. So can that be changed, making it more "accessible"?

Set the Link Attributes of the column you're using for the link (or the Link definition itself) to:  class="editlink"
On Page 0 / Global Page add a Dynamic Action that fires on "Double Click" on the jQuery Selector "tr.clickable". Note: This class was set using an After Refresh Dynamic Action, see the previous blogpost. You can also accomplish that without the Current Record Indicator, but you have to assign the class "clickable" to the TR - you can do that with just the "editlink" class as a selector. The Dynamic Action should execute a JavaScript call:   // Execute a click on …

Implementing a Current Record Indicator in your APEX Reports

Developers with an Oracle Forms background might still remember this nice feature: If you click on a row in an Oracle Form "report" then it can be highlighted - either the full row or just a small first item of the row. The main difference with the Oracle Forms "reports" and the APEX Reports is that in Forms a "report" is usually comparable to an APEX Tabular Form. But a similar feature is frequently asked for - especially at customer sites that are transforming from Forms to APEX.

With a few lines of code we can make these customers happy .... Let's get started.
First of all your query should contain one column (as "Plain Text") that describes the Primary Key - that might even be a concatenated set of columns. Now we have to tell APEX that this is the column that contains our PK. For a Standard Report just add the CSS class "rowlink" to the column (without the quotes) . For an Interactive Report we need to use the HTML Expression:

Sometimes it works, sometimes it doesn't ...

Recently at a client site I ran into a strange issue. There was an APEX page where you can set some parameters and then a report would refresh according these new settings. But the strange thing was: Sometimes it worked perfectly, but sometimes it didn't. In the latter case one or more of the parameters seem discarded... WTF ??

So I dived into it and looked at the code. The parameter / refresh mechanism was implemented using a Dynamic Action as the picture below. 
So, setting the parameters was done using a JavaScript call. This was a simple "$.post" call to a PL/SQL procedure sending over some screen values. So what could possible be wrong here .... ???
<< think for a minute >>
If I run the page and looked at the network traffic going on when I was changing parameters, I got this result:
So the JavaScript "post" call - the upper one - finished after the refresh action! Both actions ran in parallel! Because JavaScript is (by default) ASYNCHRONOUS. I…

Showing a success message after closing a modal dialog

APEX 5 comes with Modal Dialogs out of the box. Very neat. Especially for adding and changing data. And to minimise the number of time a user has to click, it could be useful to add a "Close Dialog" process after the actual data processing. When the data processing fails, the Dialog stays on top showing the error. When data processing runs fine, the Dialog is closed ... without any confirmation. And this might be scary for a shaky user.

So how can we provide the user some feedback? On Page 4 of the Sample Dialog Application you can see one solution: up on a Dialog Closed Event on the parent page it does a redirect to refresh the parent page appending the success message of the "Close Dialog" process. This has two drawbacks. First, it probably refreshes more than necessary. And second, if you're using multiple layers of dialogs (dialogs that open other dialogs) the message appears in the "parent dialog".
As an alternative you could follow these steps: 1…

Expert Oracle Application Express, 2nd Edition, is out now !

It took a while, but last month the second edition of the Expert Oracle Application Express was released. It is the natural successor of the first edition (duh), but its not just that. Some of chapters are updated for APEX 5, but about half of the chapters are completely new! And that means also half of the authors are new as well. Because this is a joint project, 14 authors, 14 chapters, one goal. And that goal is to raise as much money as we can for the funds that support the relatives of two of the greatest Oracle APEX Development Team members who passed away a few years ago: Carl Backstrom and Scott Spadafore.
So check it out on http://www.apress.com/9781484204856 and get your copy today. If you buy one APEX book ... it should be this one. It's not only beneficial to yourself, but also for others !

Make even more of UKOUG Tech15: APEX 5.0 UI Training - Dec 10th in Birmingham !

APEX 5.0 has been released this spring. People who have already spent some time on this new version know this version is packed with new features aimed to make APEX developers even more productive, like the Page Designer.
Another striking new subset of features is aimed at creating better looking user interfaces for your APEX applications in an easy and maintainable way.
 The definition of user interface components in APEX 5.0 is very different to what we're used to. For example there is a new Universal Theme with Template Options and a Theme Roller. To get you up and running with this new toolset as quickly as possible, Dimitri Gielis of APEX R&D and Roel Hartman of APEX Consulting have joined forces and set up a one day course fully aimed at APEX 5.0 UI. So if you want to know not only how to use the new Theme, but also how to modify it to fit your needs, this is the event you should attend!

The training will be at the Jury’s Inn in Birmingham (UK) on Thursday Dec 10 - so c…

APEX 5.0 UI Training - Looking back and towards the future

This week Dimitri Gielis and I ran a training day about all the new APEX 5.0 UI features. We had a full room with 20 enthusiastic attendees from 4 different countries. We covered some general APEX 5 UI features, the Universal Theme, Responsive Grid layouts, Template Options, Theme Roller, Theme Styles and bringing it all together using some advanced features. See the website for more details.
And - as it was the first time - we received some very valuable feedback in order to make a next run even better. Thanks to all attendees for that!
And for a next run we are thinking about different options: 1. On line (broken down in 3 parts) 2. Another one in The Netherlands or Belgium 3. Somewhere else in Europe (Germany? Scandinavia? UK?) 4. Somewhere else in the world. 
Please let us know what you think. Please leave a comment or drop an email with your thoughts. We would really appreciate that.

APEX ReadOnly Pages - The easy way

If your Oracle APEX Application requires different types of access - full access or readonly - for different types of users, you can specify a Read Only Condition on Page level (or Region, Item, Button, etc.).  You can set an Authorization Scheme on Application level, so it'll be applied to all pages. So if you have an Authorization Scheme named 'User Can Access Page' defined by a PL/SQL function like this:
return apex_authorization.user_can_access_page ( p_app_id  => :APP_ID , p_page_id => :APP_PAGE_ID , p_user    => :APP_USER ); 
then you can code all the logic in the database using the APEX Repository, your own tables or a combination to define whether a user has access to that page or not. But alas it is not possible to define something similar Application wide for a Read Only condition. You can specify an Authorization Scheme 'User has Read Only Access' using a similar signature as the one above and use that on each and every page in the Read Only Conditio…

Announcement: APEX 5.0 UI Training - May 12th

APEX 5.0 will be released between now and the end of May. People who have already spent some time on the Early Adopter versions know this version is packed with new features aimed to make APEX developers even more productive, like the Page Designer.
Another striking new subset of features is aimed at creating better looking user interfaces for your APEX applications in an easy and maintainable way.  The definition of user interface components in APEX 5.0 is very different to what we're used to. For example there is a new Universal Theme with Template Options and a Theme Roller. To get you up and running with this new toolset as quickly as possible, Dimitri Gielis of APEX R&D and Roel Hartman of APEX Consulting have joined forces and set up a one day course fully aimed at APEX 5.0 UI. So if you want to know not only how to use the new Theme, but also how to modify it to fit your needs, this is the event you should attend!
The training will be at the Mitland Hotel in Utrecht (N…

Riga Dev Day 2015

While waiting at the airport for my plane back to Amsterdam, I have some time to write down my experiences of the last few days in Riga.
After arriving in the hotel, I walked to the old part of town and strolled around. The old part looks very medieval (it is - so no surprises there) with cobblestone streets, old houses and very few cars. Nice! Then back to hotel, in time for the "official" speaker tour. With a small bus we toured around town for 45 minutes and we walked the old town (again) for another 45 minutes - but now including some stories about the buildings we saw. It was rather cold, so I was quite happy when we got back to the bus and on to the restaurant for the speakers dinner. All very well organised "extra's". Thanks guys!
The event itself was held in a movie theatre in a mall. About 400 attendees filled up the large keynote room pretty quickly. The nice thing about this setting is that the screens are huge and excellent: I've never seen my …