Plug & play tabular form handling

I still remember the time when I was an APEX newbie and I really got confused with tabular forms (updateable reports). They behaved very different from what I knew about “normal” page items. So what where the issues which confused me?

  • It isn’t possible to create any validations on the columns of the report, like I can do it for page items.
  • You have to use the APEX_Application.g_fxx arrays instead of using bind variables as for page items.
  • To find the correct array you have to look into the generated HTML code for the correct mapping.
  • If the order of the columns gets changed, your code gets screwed up, because the columns now maps to a different g_fxx array.
  • If a column has a condition or authorization the g_fxx array changes again, in the case the column doesn’t get rendered.
  • The code isn’t really readable if there are just references to g_f01, g_f02, …
  • The format mask has to be duplicated if the g_fxx is accessed and you want to get the correct data type (eg NUMBER, DATE)
  • When you want to get the number of array entries you have to take care that you don’t use the array for a checkbox column, because that just contains the checked values!
  • You have no function to find out if the row has changed.
  • When the validation of a format mask or required column fails, the error message is very internal. The user doesn’t have a clue which column and which row was effected. And it stops after the first error.

That’s a long list and that’s why I did some programming on the weekend to get a solution for the above short comings, so that newbies and experienced APEX developers don’t have to care anymore.
Continue reading