User-defined forms. (To print)
Posted on 2005-03-24
Okay, what I am looking for probably exists already in many shapes so I'm just asking this to find the best solution for my problem... Long story, so please read CAREFULLY! What I need is at the end but don't skip the rest...
I am working on an application for an organisation where they need to design custom forms that are then printed with data from all kinds of sources. It will actually be made of three parts.
The first part is where the user can design their own custom tables, complete with queries, calculated fields and a lot of other stuff. I will be using dxMemData components from DevExpress for this, and these tables will be stored as blob fields inside another database. It's a complex way to work with a database but this is how this organisations likes to see the whole thing being designed. Getting this to work will be tough, though so I'm still trying to fast-talk them into a better solution but they don't seem to listen to reason. (And they pay by the hour so I don't care if it will take me years to finish it.)
The second part is where a user is designing forms that are linked with the custom tables that they have created. These should be just some kind of simple reports or some other solution. Problem is, it is a form that is used for data entry, with comboboxes, checkboxes, images and several other controls on it. And the designer of this form will be putting these controls on the form, test it, check if it's working okay, etc. The biggest problem with this is that it must be printed exactly as it is shown onscreen.
The first two steps are done by users with administrative rights. The third part is for all other users, which is basically that they select a form, enter data inside the form and then print this form to a printer, fax driver or send it by email as RTF/HTML email. They are not allowed to make any changes to these forms, nor are they allowed to make changes in the database. So basically it's the administrator who sets up the system with correct data and forms and who is responsible for maintaining it. And the users will just be making selections.
For example, the user might use such a form to generate an order form. They select a customer, select several articles and the form would show them the invoice which could then be printed or manipulated in some other way. Saved as RTF or maybe PDF even. Sent by email, stored in some document management system or whatever.
Now, the database system this monster needs isn't a problem. Nor is combining the form with data. My problem is allowing the user to design these kinds of forms. What would be the best way to do such a thing, without the dependancy of external report designers or whatever.
My first idea was QuickReports but that would be just too complex. Besides, QuickReports just has too many quirks and bugs to my liking. It's not reliable enough. Rave reports or Crystal Reports aren't options either because they require additional software. The organisation will be using very thin client applications so the user would only need to copy an executable to their local system to get it all working. Installation of an additional report designer is out of the question.
Another idea was to include some kind of spreadsheet component. DevExpress has an interesting one and it's advantage is that it can do all kinds of formula's. All I need to do next with it is allowing the user to add all kinds of controls and make sure that the end user (who is just using it to generate the final document) cannot alter anything in the form, except for those parts that the administrator left open for them.
Also considered using WPTools and just let them generate RTF files as forms. That would also be a good solution. The form would then have all kinds of preset fields and all the user has to do is provide the correct values. But with WPTools it's a bit difficult to have those controls in the document itself.
Or perhaps some HTML editor. The solution I am looking for does resemble the functionality of a webpage a bit. The user sees a page with all kinds of controls and can manipulate it in all kinds of ways before pressing "submit" to have it all processed. Unfortunately, I have to assume the administrator is totally clueless about HTML so I would need to provide a good HTML editor for them, with some additional custom data controls...
So I am looking for some good form designer for printable forms. It must be easy to use yet pretty powerful. I like the HTML idea but have to assume that even the administrator for this system has the brain capacity of a chimpanzee for this project. It sounds funny but unfortunately this is the reality too. The users of this application will not be any highly trained IT experts.