X Y scatter chart with groups - crystal-reports

Here's a sample from my table:
Energy Data Ratio
1, 1/1/2017, 1
2, 1/1/2017, 2
1, 1/2/2017, 1
2, 1/2/2017, 2
I want to group by Energy and show the Date and Ratio. I've gotten to the point where the chart in the Report Header will show the right grouping in the chart legend, but it only does the first date then stops. Ie it only shows 1/1/2017, and not subsequent dates.
On change of: Energy
Show values:
mIrradDate (a formula which returns the irrdate date, a trick to enable 'don't summarize')
mRatio
How can I show all the data?

Crystal evaluates things top to bottom, and gains data as it goes through the report. So by placing it in the Report Header, it reads one record, prints your chart, then reads the rest of the records. (If you put it in the Report Footer, it'd evaluate after all the data was read, and show all the records.)
You can try any of the following:
Place the chart in the Report Footer instead
Evaluate whileprintingrecords
Configure a near-identical subreport that suppresses everything but this scatter plot in the footer. Then place the whole subreport in the header of your main report.

Related

Tableau Desktop Move column header to bottom

I've a report that shows Years, Production in tonnes and Countries. I'm trying to move the column header that is 'Years' to the bottom of the report. Here is the image.
Tableau differentiates headers from axis. Headers are always at the top and headers are provided for discrete values (blue pill). Axis, on the other hand, default to the bottom unless you have a dual-axis chart, and an axis is only for continuous values (green pill).
From your screenshot, Year is a discrete value, hence it can only display the header at the top. You can try switching Year to be a continuous value so that an axis will show at the bottom.

SSRS 2008 R2 - Axes with Format M 25, T 26, etc

I'm using SSRS to produce a Gantt Chart. In my header I have a chart with the axis visible, but no series data, then each row has an embedded chart showing it's timeline
The last image on this page shows it: http://marcjellinek.wordpress.com/2013/08/19/how-to-create-a-gantt-like-chart-in-sql-server-reporting-services/
the horizontal axes is date and my users want it to display
M 21, T 22, W 23, T 24, etc.
Normally I could just cast to a string and get the parts I want (e.g. LEFT(FORMAT(Field..., "ddd"),1) or something like that) and then concat the bits I need; however, I have no field in an axes number format. I managed to get following using a format of dd ddd
Mon 21, Tues 22, Wed 23, etc.
Anyone got any ideas?
Regards
Mark
Well, you're not going to be able to accomplish this using only the Chart dialog, because it will only accept numeric entries for the label. However, if you assign numeric labels (such as the day of the month) that will line up the data in the desired order, you can then add labels outside of the chart area (such as inside a tablix) that will populate right below the chart and look like they're in the exact right spot. Here are the steps as I see them to accomplish your desired solution:
In the dataset where you are returning all of the data for the chart, add an additional field named "Label". The Label field should contain whatever text you would like to display in the label field (e.g., "T 22").
Hide the chart's labels and the corresponding Axis Title. This puts the bottom of the chart's horizontal axis several points from the bottom of the Chart area.
Create a tablix with a column group that is grouped on the Label field.
Then, in the details column of this new tablix, have it insert the Label field.
Set the WritingMode property for each cell to "Vertical" and adjust the spacing to line up with where the true labels should be residing on the chart.
Align the tablix with the chart, leaving 0pts of space between the two, that way the tablix will always be rendered directly below the chart.
There will end up being a small gap between the axis and the labels, but most end-users would never question it.
Hopefully, this makes sense to you. If any part of it doesn't, please reply with a comment asking your question.

Summary band subreport displays only last value

I am displaying list of string values in detail band of the report , it works fine. And i want to draw 5 graphs in summary band. I tried in summary band it took all the values and generated report but summary band height was limitted. so i drawed only three graphs in that space. I moved to sub report to draw all the 5 graphs.
i passed values to subreport through parameter map. I got all the 5 graphs, but the graph is drawed using the last value passed to the subreport. I want to draw the graphs with all the values passed to it. How to to this ?
Try to use the same datasource as you're using in your main report. Should work fine.
You can achieve this using the property $P{REPORT_DATA_SOURCE} in your subreport data source expression, but don't forget to set the connection type as well.

Create a Crystal Report cross-tab 'header' label

I'd like to create a 'header' label that 1) is centered over the cross-tab and 2) grows with it. Unfortunately, CR 2008 (or earlier for that matter) doesn't have this feature.
In image (below), I've added a text field above the cross-tab, but I can't think of a way to get it to grow/shrink (horizontally) with it.
If you're able to calculate, say by a summary function, the number of columns you will have then you can do this:
In your crosstab, check to see the width of your columns. The columns should be set widths. Edit: The crosstab adds some padding, so you will have to figure out the column width by measuring in Crystal with another field and eyeballing until it's close enough to work
Right-click on your label, and hit "Size & Position".
Add a new formula for the "Width". The X,Y positions should stay the same.
Use the summary function (You could create a SQL Expression or formula that only shows the month/year of your date fields and then distinctCount() them) to find out how many columns you will have multiplied by the width of each column. This will take some trial and error for sure, but I don't see why it wouldn't work.

BIRT limit X series per chart like in JasperReports, drawing multiple charts

I'm using BIRT right now to display some charts. I need to display a bar chart based on scripted data. If there is too much data, then the chart X series get very compact.
I want to limit the number of X series displayed on a chart, let's say to 5, then the next 5 to draw on another chart and so on. This is possible in JasperReports by using nested groups and resetting the chart on a group event. I can't achieve this in BIRT.
Is this possible in BIRT?
P.S. I need to obtain what is on top of the image below, like in Jasper. What I can with BIRT is on the bottom-right
Yes, this is possible:
Add a Table item to the report, with the appropriate dataset.
Add a group to the table, to restrict the number of series to no more than 5 series per group (ie. grouped in the same way as the nested groups would be set up in your JasperReports.)
Delete all rows from the table object except the group footer.
Add a graph to the group footer (by dragging from the Palette) and set up columns, values and series as normal.
No resetting of the chart on a group event should be necessary, since the grouping is already done within the table object.