Need following two components
Need a form builder UI (HTML5 sencha extjs or asp.net ) which stores the metadata of the form into a database
Forms can be created
a) Drag and drop of fields
b) By Providing a xsd
- should provide validation, field level security,master child forms,
- field level properties, form level property sheets
- drop down list and linked drop down list.
- give the user to define actions for standard events (like onfocus, lostfocus etc) for both fields and form level.
- Each form is stored in a master form table
- Each form field is stored in the formfield table, which defines the common properties of each field type, (then corresponding to each fieldtype ie string,dropdown,TabControl,NumField,CheckBox,Datefield we have seperate table which stores field specific property)
Form is saved in a database.
It reads the form metadata and costruct a form, which is presented to the user.
a) Based on a request type, corresponding form copy is rendered for the particular request type. (request might contain form field data in form of xml), field level secuity considertion , hide/show fields, populating drop down and linked drop down list
Once user pushes completed button, a webservice request containing the form data as an xml is send to the requester or if a user wishes to save the work and work at it later, same the results for later working.
Each task will have a defined SLA,
configure 3 actions -
before x time - before SLA breach fire event
on SLA breach - fire event
after x time - fire event
Controls required are regular control, grid control, tab Group Control ( a tab group control is like another form which has multiple tabs in it)
a)Form designer should support security (Form level and field level)
For complex control like - grid or tab group - security should be at tag group, individual tags, and individual fields defined in the tag.
b) Should be able to define actions (or sequence of actions) based on a condition (condition is evaluated and if true - true actions needs to be executed or else false actions needs to be executed) on events at the field level (lost focus, on-focus, on-select, before update,open etc) and form level (save, modify,open etc)
c) Each action should have its own gui (ie user should be able to put parameters of the functions)
d) All the form and field properties, actions should be stored in such a way, that if the user makes any change in them through designer, next time if the form is renedered in renderer change are reflected.