Linked Sub-report Organizing Strategy - crystal-reports

Is there a logic to deciding how to structure a master report with sub-reports?
For example, I have a 360 (employee feedback) report I'm trying to make, where there are 4 different ways of presenting the data. Each different presentation has a different page header & uses different groupings. So I think I need to make each presentation into a separate report & then bind them all together in a master report with subs.
But, how should I structure the master.
For example, should the master be the one with the most complex data, and then the other, simpler, sub-reports get tucked into headers & footers relative to where they need to be in relation to that 'core' report? Or should I make the title page be the 'master', with conditionally suppressed page headers and then put each way of presenting the data as a sub-report into a separate group header in order within that report?
i.e. what is a good organizational strategy for this?

If you need your subreports to repeat for each group of data or each detail record in your main report, then your subreports belong in a group or details area.
Another thing to consider is whether your subreports would ever make sense as 'standalone' reports - could they exist outside the context of the main report? In that case, design them this way, and make use of the 'reimport subreport' feature on your eventual main report(s) to automatically pick up changes.
Otherwise it doesn't really matter, as long as you can get the layout you want - in that case, just do what is simplest.

Related

Multiple Pages in Crystal Report

My report has too many columns to display. How can I create multiple pages in a single Crystal Report?
I've tried 2 Page Headers and 2 Detail sections but it doesn't work as I expected.
This will be difficult to implement, especially if you're looking to make your report printable on paper. Crystal usually expects to make multiple pages when there's too many rows, not too many columns.
You might be able to pull this off with clever use of subreports, one for Page A, and one for Page B, then forcing New Page After and alternating them. But that's dependent on what the rest of your report looks like. If each page still has multiple rows, I wouldn't try this.

Display multiple columns in a group header with charts

I want charts generated for each group to appear in a multi-column format in one group header. I could do it with subreports, but I'm looking for a solution that doesn't require me to load the data set multiple times. How can I achieve this?
Long story short, Crystal isn't a good fit for this.
Even if the number of groups wasn't variable, Crystal reports is fixated on delivering and iterating your records from top to bottom. It's not impossible to structure that, but it would be way more work than it's worth. Plus you'd waste too much time handling the variable number of charts and ensuring unused ones were suppressed. And even then, you'd probably need to use subreports.
You'd have better luck using something other than Crystal for generating this behavior. Even if it meant creating a subreport for the chart and writing a VS program that displayed that report multiple times for each "Group".

Crystal Reports Splitting Page up into Thirds

I have been asked to mock up a report in Crystal (i would normally use SSRS but the application uses crystal for report), and i need to split the page up into thirds. The idea is that the top 2 thirds are for the customer, then there will be a tear line on the paper and under that will be the section for us to keep.
What is the best way to accomplish this, baring in mind the report could go over 2 pages?
Cheers
Luke
Based on my understanding of the requirements, you just want to space things out over a customer's order (or something similar). I am assuming the grouping will be by customer with items in the details sections.
1) If all fields required are in a single records, and you can stick by the "2/3's page" visually, you can force the spacing simply by extending the reporting band sections. i.e., Increase the page header and include some customer information, or do the same with a group header, etc. and then space out a single details band with fields spread out as is visually pleasing.
With the spacing done this way, you can also embed a small band that holds only a dashed line, which will be a visual tear line.
Fields placed in the next band will be the portion that you intend to keep.
2) If the customer section will have multiple items in details -- be smaller or larger (i.e., if you are pulling in an inventory list that may have 1 or 21 items), then you can still something similar, but not using enlarged, fixed band sizes. You can put customer general information in a group header, followed by multiple details (records), and end with a two-band group footer. The first band can be any closing information for that customer, followed with a visual tear-bar, and the last band can be the information you wish to keep.
Grouping by customer and forcing new pages for each customer should give you what you're looking for.
I hope that's clear enough to give you two alternatives.
D'Oh... and, forgot to include: You can use the Section Expert to format a group footer to Print At the Bottom Of Page, forcing the portion that you want to keep to the lower part of the page. On a multi-page printout, it would be forced to the bottom of the nth page.

Crystal Reports: ? Possible to show Full Set in one chart, and subsets in separate charts?

In Crystal Reports, is there a way to get both full set charting and subset charting, in the report headers?
I'm working on a report from an erstwhile co-worker and I'm still trying to make things "better".
While I haven't found the solution to accruing time
( see Accruing over time (non-overlapping) - technique? )
I'll press on with how to use the resulting data once I retrieve it.
The report is a Global Availability report for network technologies, and part of the report is graphic:
Chart availability for different
network types for last "n" months'
time.
Charts availability for each region
(for each network type for "n"
months' time).
She (co-worker) had a global chart, but for each region, she did a separate sub-report containing just the chart for that region. The query isn't optimal, and using the sub-reports, the query is repeated each time.
If there a way to use a single data-set in one report for all five charts, forcing the four regional charts to display only that region's data?
Additional info:
The charts are all Bar charts, design is
y-axis: calculated availability
x-axis: Group by network type (Switches, Trunks, "Network)
sub group by month
Bad Example:
Let me see if I understand this. In your Report Header, you have 5 Subreports for the 4 regional graphs and the global graph. And you want to collapse this all into 1 Subreport if possible?
Yes, but you can't do it like in your image where United States & Europe are side-by-side. They would have to be 1 per row. Also, the datasource also has to be formatted correctly. To do this,
Make a new subreport. Group it by the Region.
In this subreport, make your regional graph in the Group Header section.
In this subreport, also make your global graph in the Report Header section.
Insert this subreport into your main report and you should be done.
Sometimes, the only way out of the fire is through it.
After lots of un-satisfactory refactoring, I spoke with the original (years ago) requestor and got some good information. I have yet to speak to the most recent requestor again (who didn't have any knowledge of the technical requirements the last several times).
Spoke w/ the guy who is tending a related db, and I get permission to add come functions, views, store procedures, etc. to THAT db... Within reason and after code/perf review -- something that isn't normally conducted, so I welcome it. I WILL have the ability to do the procedural stuff through... a procedure. Written as a stand-alone, I should be able to re-use it for any of the queries against future needs.
And... Yes, I am pretty much going to have to (read "get to") re-design, and hopefully get rid of most of the sub-reports. Yeay, me.
Thanks for coming along for the ride.

Composite reporting, Crystal Reports difficult to manage

I was wondering if someone had a suggestion on how to best do composite reporting.
I have tried to accomplish this with Crystal Reports [CR] (The one that comes with VS2k8) but for a codemonkey like me, it's hard to grasp the design part...
I have found that CR works nicely for reporting on tabular and repeatable data, but I can't grasp how to do what I want it to do.
What I want is a nice front-page, with title, subtitle and possibly some other text.
Maybe a TOC.
A summary report, consisting of some calculations and text-summaries calculated beforehand (not using the reporting tool).
Then a listing of one type of data, normal tabular.
Then another type of data, also tabular.
Then a drill-down on the first type of data. (Every "line" in the first type has 1..* associated items).
It looks to me like I have to do them all in separate reports, then "concatenate" the resulting reports to one another to get one report. And the front-page and the summary page I have no idea how to do at all.
Is there a better tool for doing this? Or does anyone have a good "quick-start" on composite reporting with CR? :)
EDIT: Oh, and these will only be used in printed-form. So no dynamic drill-down and such are necessary.
I create sub-reports and insert them into a footer section of the main report to create composite reports, using seperate reports as you suggest. I've searched myself, and failed to find any reasonable alternative. This approach works well enough and results in a single report file when done.
In my experience, Crystal is a pain in the butt for doing anything like a fixed page layout (ie: the title page). I usually put the title page in the report header (make sure to select "new page after" in the section options). Everything else pretty much has to go into subreports.
If you need to share totals and such between subreports, you need to use a shared variable in a formula field:
shared numbervar whateverTotal:= sum({whatever});
and then in the following reports, just use:
shared numbervar whateverTotal;