Back in my Oracle Forms days, we had a library function associated with our date fields that accepted a value of "t", which then returned today's date.
We had further variations on this, but I thought I'd see how I'd go at implementing this in the APEX environment.
First, well, second after creating some date fields on my page - I defined a dynamic action "t in date"
You only require a true action, executing some JavaScript
In my case I used a function to return a date formatted nicely for my Oracle environment - more details below.
Don't fire on page load, and set "Selection Type" to "Triggering Element"
I must thank Tobias in the OTN forums for to return date function, but I've extended it a little to suit my tastes.
I also added a parameter so I could define another DA that accepts "y" for yesterday - and adjust my call to
What do you think? The only problem I've found is if you tab quick enough after typing "t", the trigger does not fire.
Oh, and IE8 seems to have a problem with the date constructor - but I've all but lost my patience pandering to IE.
An example can be found here:
http://apex.oracle.com/pls/apex/f?p=SWESLEY_FORUM:6:0::NO::P6_MODE:E
Scott
We had further variations on this, but I thought I'd see how I'd go at implementing this in the APEX environment.
First, well, second after creating some date fields on my page - I defined a dynamic action "t in date"
Event: Key release
Selection type: jQuery Selector
jQuery Selector: .hasDatepicker -- this is a class automatically assigned to my dates, found simply with right-click -> Inspect element in Chrome
Condition: equal to
Value: t
![]() |
Dynamic Action definition |
$(this.triggeringElement).val(return_date('-'));
In my case I used a function to return a date formatted nicely for my Oracle environment - more details below.
Don't fire on page load, and set "Selection Type" to "Triggering Element"
![]() |
JavaScript action |
I also added a parameter so I could define another DA that accepts "y" for yesterday - and adjust my call to
return_date('-',-1)
function return_date(p_delimiter, p_offset) {Note how much more difficult it seems to default parameters in JavaScript compared to PL/SQL.
/* with help from
https://forums.oracle.com/forums/thread.jspa?threadID=2186734
http://stackoverflow.com/questions/894860/set-a-default-parameter-value-for-a-javascript-function
*/
/* Default delimiter to . */
p_delimiter = typeof p_delimiter !== 'undefined' ? p_delimiter : '.';
p_offset = typeof p_offset !== 'undefined' ? p_offset : 0;
/* Create date object */
var myDate = new Date(Date.now());
myDate.setDate(myDate.getDate()+p_offset);
/* Create output string DD.MM.YYYY */
/* Day */
var myStr = (myDate.getDate() < 10 ? "0" + myDate.getDate().toString() : myDate.getDate().toString()) + p_delimiter;
/* Month */
myStr = myStr + (myDate.getMonth()+1 < 10 ? "0" + (myDate.getMonth()+1).toString() : (myDate.getMonth()+1).toString()) + p_delimiter;
/* Year */
myStr = myStr + myDate.getFullYear().toString();
/* Set value */
return myStr;
}
What do you think? The only problem I've found is if you tab quick enough after typing "t", the trigger does not fire.
Oh, and IE8 seems to have a problem with the date constructor - but I've all but lost my patience pandering to IE.
An example can be found here:
http://apex.oracle.com/pls/apex/f?p=SWESLEY_FORUM:6:0::NO::P6_MODE:E
Scott