Sunday, November 21, 2010

Putting Children in their Place

Of course by “children” I am referring to child regions in APEX and by “place” I mean side by side – I’m sure you all assumed as much. Smile 

The ability to nest regions by establishing parent/child relationships came as a feature of APEX 4.0. Although seemingly small when compared to some of the other features introduced with that release, it’s a feature that should not be overlooked as it allows for complex layouts without the previous complexity.

When you first start working with nested regions, you may notice that sub regions tend to stack on top of each other rather than side by side. This is simply the default nature of the HTML being used. But ultimately you can control how this works – you need only learn about CSS floats and how to implement them in APEX!

Although I often refer people to for simple tutorials, the best tutorial I’ve found to date on CSS floats can be found here: (make sure to check out tutorial 8).

Also note this odd behavior as we’ll need to account for it:

Ok, now that you’ve armed yourself with a thorough understanding of what’s involved, you can put it to use in APEX by setting some style rules for the region via the Region Attributes. Have a look at a demo here using the new theme 21 – Scarlet.

Wednesday, November 17, 2010

My Future Feature Wish List for APEX

I started making this list when I saw a few others posting their own wish lists but I never posted it. The recent update to the APEX Statement of Direction inspired me to finally get this out and I was very happy to remove a few thing because they are now targeted for APEX 4.1.  So here it is…

  1. IR Enhancements
    1. Run time
      1. Updateable columns – This is one of those “holy grail” type of enhancements - hard to implement but still possible. It had to be said…
      2. Freeze column – I saw this feature while doing an ADF tutorial recently. Hey, if they can do it, so can we.
      3. Drag and drop column reorder – Admit it, that would be cool.
    2. Design time
      1. Required filters – I put this on the top for a reason. Some queries don’t run well without some filters (think EBS). It would be nice if we could say that “this, that, and the other column must be filtered”.
      2. Column level “do not print” option – Some columns are made for the web and the web alone.
      3. Freeze column – Similar to its run time counterpart, only this would allow developers to specify some columns that should always be visible. Although, if overused, it would defeat the point of an interactive report (limit the number?).
      4. Drag and drop column reorder – I know we have this ability via the tree view in the Page Definition screen, but I believe it should be available in the report attribute screen as well (same goes for classic reports)
  2. Tabs Overhaul – I know some work was done with APEX 4 to make tabs easier to work with but it was not enough. The key to simplicity here is getting rid of “tab sets” (or at least hiding them by default).
  3. LOV Protection – When you define a list of values, you expect users to choose from that list. But those with enough knowledge can add to the options in a list of values after the page loads. You can protect yourself with validations but they can be costly and involve more work/maintenance. Martin D’Souza has done quite a bit of work in this area taking a hashing approach rather than a re-query (smart move). It would be great if this was implemented in APEX as a new type of validation, like the Not Null validations, added for any item that uses an LOV.
  4. Validation chaining – I recently found myself writing validations that should only run if other validations have passed. This requires a bit of duplication. It would be great if there was an option in validation conditions that allowed you to select another validation.

So what do you think? Any ideas of your own?

Friday, November 12, 2010

SkillBuilders Save Before Exit–2.0

I’ve just released an update to the SkillBuilders Save Before Exit plug-in. This was a major release (especially for such a tiny plug-in) with some good new features:

  1. Some users reported false positives with regard to change detection. To prevent this the plug-in now uses true change detection and can even detect changes to the new rich text editors in APEX 4.
  2. Support has been added for custom themes/templates via a newly exposed No Warning Selector. This allows you to use a jQuery selector to specify which elements should allow the end user to leave the page without being warned.
  3. An Ignore Change Selector option has been added which allows you to specify which element should not be checked for changes.
  4. New methods, enableWarning and disableWarning, allow developers to programmatically specify whether change detection should occur via JavaScript.

For those of you using the plug-in and planning to upgrade, make sure to check out the upgrading section of the documentation.

Click here to download. Enjoy!