I’m currently in the process of rewriting our internal HR system in XPages, It is a typical Notes/Domino application. each employee has a single document in the system that records all their employment data. There are a LOT of fields and in the Notes Client version of the application you would be able to design your form with a tabbed panel so you don’t have lots of fields on a single page.
In XPages you have the advantage of separating the design of the application from the backend data and with that in mind I decided to break the form out into different pages in the application with each page just displaying a subset of the information required and using the Extension Library Application Layout control to manage the overall layout of the form.
In the Notes Client version of the application when the user hit the save button it would display a list of the required fields that were missing but in the XPage version of the application the missing fields could be on a different page so I had to come up with a new way to show that the record was missing some information.
What I did was in the ‘save’ event I check each of the required fields for valid data, if I found that there was missing data I would set an overall ‘incomplete’ flag and also set two other flags, one for the tab where the data was missing and one for the navigator menu option where the data was missing. Then in the PageTreeNodes that define the tabs and navigator menu options I set the image to be calculated depending on the presence of the appropriate flag.
As you can see from the screenshot if there is something missing an exclamation mark graphic is displayed in the tab/menu. This allows the HR staff to quickly see exactly where they need to click to access the page with the missing information.
Hopefully somebody will find this useful and will be able to use this design pattern in their own applications.
Great idea, Dec. Very simple and powerful, circumventing the challenges of tabbed table validation.
That looks very nice. Do you have a demo database so I could see it in action? Keep up the good work :o)
Sorry, this is an internal application so I won’t be able to release a demo database.
Thank you non the less :o)