M
matt
hello,
i have been given a challenging project at my org.
i work on an inventory management web application -- keeping tracking
of parts assigned to projects. in the past, i built an in-house ASP.NET
reporting system. just your standard stuff -- user clicks on a report,
the page executes a pre-defined SQL query, a dataset is formed and
bound to a data repeater. that works well for us. and using some nifty
CSS, my reports look good on screen & on paper.
now, however, my users would like....comparison reports. with
comparison reporting, theyd like the ability to:
a) take a "snapshot" of a given live report, storing it for later
b) compare a given report to one of the previously-stored snapshots
the mechanism for this would ideally show them a screen of three sets
of data:
- new rows (parts added since the referenced snapshot)
- deleted rows (parts that existed in the snapshot, but dont now)
- changed rows (parts that existed in the snapshot, but have at
least one different column)
ideally, theyd like a technique that can be used generically for any of
our current or future reports (but limited, of course, to
same-report-type comparisons).
....some tall order -- this is nothing ive ever attempted before. a few
ideas came to mind for doing this:
1) when a user takes a snapshot, the dataset is serialized into text,
and dumped into a CLOB in the db. when the user later does a
comparison, the desired CLOB is restored into a dataset. then code must
be written to enumerate and evaluate the tables. rows matching one of
the categories must be inserted into new a "results" dataset
(consisting of the 3 tables for new/deleted/changed rows).
2) alternatively, some sort of "history" could be implemented on our
tables on the (Oracle) backend -- like triggers that update new history
tables, that log changes. then some means of comparing present-day data
to the history tables must be devised.
3) investigate a 3rd-party reporting package that offers this ability.
as i mentioned, ive never set about this particular task in my years of
..net web apps. no idea on how it can or should be done.
can anyone point me to references, or suggest possible solutions?
thanks!
matt
i have been given a challenging project at my org.
i work on an inventory management web application -- keeping tracking
of parts assigned to projects. in the past, i built an in-house ASP.NET
reporting system. just your standard stuff -- user clicks on a report,
the page executes a pre-defined SQL query, a dataset is formed and
bound to a data repeater. that works well for us. and using some nifty
CSS, my reports look good on screen & on paper.
now, however, my users would like....comparison reports. with
comparison reporting, theyd like the ability to:
a) take a "snapshot" of a given live report, storing it for later
b) compare a given report to one of the previously-stored snapshots
the mechanism for this would ideally show them a screen of three sets
of data:
- new rows (parts added since the referenced snapshot)
- deleted rows (parts that existed in the snapshot, but dont now)
- changed rows (parts that existed in the snapshot, but have at
least one different column)
ideally, theyd like a technique that can be used generically for any of
our current or future reports (but limited, of course, to
same-report-type comparisons).
....some tall order -- this is nothing ive ever attempted before. a few
ideas came to mind for doing this:
1) when a user takes a snapshot, the dataset is serialized into text,
and dumped into a CLOB in the db. when the user later does a
comparison, the desired CLOB is restored into a dataset. then code must
be written to enumerate and evaluate the tables. rows matching one of
the categories must be inserted into new a "results" dataset
(consisting of the 3 tables for new/deleted/changed rows).
2) alternatively, some sort of "history" could be implemented on our
tables on the (Oracle) backend -- like triggers that update new history
tables, that log changes. then some means of comparing present-day data
to the history tables must be devised.
3) investigate a 3rd-party reporting package that offers this ability.
as i mentioned, ive never set about this particular task in my years of
..net web apps. no idea on how it can or should be done.
can anyone point me to references, or suggest possible solutions?
thanks!
matt