I'm also about to start working on a report generation control set. My thought is to make them initially pretty primitive so that anyone can come along and hook a database control to it.
So basically, I've got the postscript controls and the general idea of how to do a reporting system (I used the built-in reports with Delphi 4 C/S considerably.) I'm positive I could write a reports system for what I need to do, but keeping it generic is another story.
So here's some thoughts out loud:
Report header stripe
static text labels
special text labels (such as doc name, p#, date, time, etc.) page header stripe
static text labels
special text labels
detail stripe
field label ** Changes according to data position pointer, keep running totals for fields per page and per doc static text label
special text labels
page footer stripe
sum field label ** sum of field for this page
avg field label ** avg of field for this page
count field label ** displays number of fields on page special text labels
static text label
document footer stripe
special text labels
static text labels
sum field label ** sum of a given field for entire report avg field label ** avg of field for entire report count field label
Note the absence of a function field and multiple detail layers - I'm keeping the idea simple and can later build on that.
My thought is to have a single "detail" object that anyone can come along behind me and write a database connector for. The database component developer would provide callbacks for "initialize" "next record" "first record" "jump to record" sort of functions and then populate the detail object with the proper data. I could provide a primitive data connector object that someone else could then build on top of to implement the full connection.
Does this sound feasible? Anyone have a better method or suggestions?
Thanks,
Tony Maro
Need a Linux replacement for Microsoft Money?
Check out CheckBook Tracker!
http://tony.maro.net