Edhy Rijo
|
|
Group: StrataFrame Users
Posts: 2.4K,
Visits: 23K
|
Hi Richard, I agree with you to add this to an enhancement, I am even willing to pay a fee for it as an adding in order to have a report manager tool for Report SharpShooter. I am still new to .NET and tanks to all the contributions here (Ivan, Trent, Greg, etc.) I have been able to produce reports easily with RSS and SF-BBS, but I am sure would like to have a tool like the Security Module to handle all my reports in a single place.
Edhy Rijo
|
|
|
Richard Keller
|
|
Group: Forum Members
Posts: 84,
Visits: 324
|
I think that this would be a great addition to the next version of SF. Just like using Devexpress controls.
|
|
|
Trent Taylor
|
|
Group: StrataFrame Developers
Posts: 6.6K,
Visits: 6.9K
|
I'd be happy to, Ross. It is actually pretty simple in concept and once you get it implemented within your environment it is simple in use as well. This has turned out to be a wonderful solution for us and it makes it very simple to modify and redistribute reports. Here are the elements: - You will need to create a report designer within your application that uses the run-time designer components of Report Sharp-Shooter. This allows you and your users (if you choose) to design the reports within the application at run-time instead of within the VS IDE.
- You will need to create your report structures that will house your reports, templates, style sheets (if you elect to use them, I would recommend it), and the serialized report data. The report data is just a child of a report, but it is always a good idea to separate the data into another table as this is where the bulk of the size will be and will make loading up BOs, tree-views, etc. faster and you only retrieve the serialized report template when you are deigning it or running the report.
- You will create the data sources used within the run-time designer within the VS IDE. So these will be static. We use reflection to populate our designer at run-time with the data source that we want the report to use. So when we launch the designer within our report designer, we create the data source object by setting the DataSources programmatically to an instance of the data source selectedWe set the style sheets, masgter pages, etc. the same way (prior to loading the designer).
- You can just use the standard BinaryFormatter class to serialize the data to and from the reporting database.
- Finally, the basic structure that is shown in StrataFlix in regards to the ReportDataSource, etc. is what we use in our medical software, just modified a bit to support the data driven reports. But the design of the data sources will be the same.
|
|
|
Ross L. Rooker, Sr.
|
|
Group: Forum Members
Posts: 153,
Visits: 462
|
You indicated that in the medical billing software you serialize the reports and store them in a database. Can you elaborate on how you do this and then later let a user run the report?
|
|
|
Ivan George Borges
|
|
Group: StrataFrame MVPs
Posts: 1.9K,
Visits: 21K
|
Great to hear that.
|
|
|
Edhy Rijo
|
|
Group: StrataFrame Users
Posts: 2.4K,
Visits: 23K
|
Thanks Ivan, It does help a lot. I will check the samples as suggested, and the attached sample is very clear.
Edhy Rijo
|
|
|
Ivan George Borges
|
|
Group: StrataFrame MVPs
Posts: 1.9K,
Visits: 21K
|
Hey Edhy. Have a look at the Report Sharp-Shooter samples, there are a lot of things demonstrated there. Check the CustomDesignerViewer folder. In short, you just add a new form to your project and drop a Perpetuum ReportViewer control in it. Have a look at the same sample attached. Hope it helps.
|
|
|
Edhy Rijo
|
|
Group: StrataFrame Users
Posts: 2.4K,
Visits: 23K
|
Thanks Trent. I will review those classes in detail. Also I noticed that in Ivan's sample the RSS preview window is created and in StrataFlix you have a custom Preview Form to handle all reports and it looks like a better approach. Would you guys consider adding a RSS version report to StrataFlix using the same nice logic as the existing MS reports?
Edhy Rijo
|
|
|
Trent Taylor
|
|
Group: StrataFrame Developers
Posts: 6.6K,
Visits: 6.9K
|
Yes. You will create a BBS for each each table in question. StrataFlix actually shows you how to do this. If you look at the movie profile report or the people profile report, you will see that each BO that will be used has its own reporting BO and BBS. The root object will then have the private fields for each of the BBS classes that need to be exposed. For example, in the People Profile Report, the PeopleBO is the root BO for this report. If you look at this class, you will see that there are two additional exposed child tables: MovieCast and PeopleImages. These are children tables of PeopleBO. If I were to have a grandchild, for example, if MovieCast had another child, then I would open up the MovieCastBO and add all of the BBS classes that are children of this class. Also, look at the properties of the exposed BBS classes and you will see how the filter is applied to each child BO so that it syncs up with the parent record.
|
|
|
Edhy Rijo
|
|
Group: StrataFrame Users
Posts: 2.4K,
Visits: 23K
|
Hi Ivan, How would you handle a report for a One 2 Many relation like (Customers->Orders->OrderItems)? Do we have to create a BSS for each table? P.S. Sorry I keep asking about this, but I have not other experience with report writers except for VFP.
Edhy Rijo
|
|
|