StrataFlix and Report SharpShooter


Author
Message
Dustin Taylor
Dustin Taylor
StrataFrame Team Member (652 reputation)
Group: StrataFrame Users
Posts: 364, Visits: 771
Ivan's so smart he has forgotten more than the rest of us ever learned BigGrin
Ivan George Borges
Ivan George Borges
Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)
Group: StrataFrame MVPs
Posts: 1.9K, Visits: 21K
LOL!

Tongue

Edhy Rijo
E
StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)
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

Trent Taylor
Trent Taylor
StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)
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
E
StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)
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

Ivan George Borges
Ivan George Borges
Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)
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. Wink

Attachments
WindowsApplication1.zip (189 views, 1.00 MB)
Edhy Rijo
E
StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)
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
Ivan George Borges
Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)
Group: StrataFrame MVPs
Posts: 1.9K, Visits: 21K
Great to hear that. Cool
Ross L. Rooker, Sr.
Ross L. Rooker, Sr.
StrataFrame User (195 reputation)StrataFrame User (195 reputation)StrataFrame User (195 reputation)StrataFrame User (195 reputation)StrataFrame User (195 reputation)StrataFrame User (195 reputation)StrataFrame User (195 reputation)StrataFrame User (195 reputation)StrataFrame User (195 reputation)
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?
Trent Taylor
Trent Taylor
StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)
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:

  1. 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.
  2. 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.
  3. 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).
  4. You can just use the standard BinaryFormatter class to serialize the data to and from the reporting database.
  5. 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.

GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Similar Topics

Reading This Topic

Login

Explore
Messages
Mentions
Search