Telerik.Reporting.SubReport subReport1 =
(Telerik.Reporting.SubReport)report1.Items.Find("subReport", true)[0];
Telerik.Reporting.InstanceReportSource =
(Telerik.Reporting.InstanceReportSource) subReport1.ReportSource;
Telerik.Reporting.Report sub2 = (Telerik.Reporting.Report)irs.ReportDocument;
sub2.DataSource = value;
}
}
The end result of this is a report that contains that main section which is populated. It also
subReport sections but none of the subReport sections have data in them.
Any help will be appreciated.
Thank you - Raka.
Report Constructor code
=======================
//chart
DataTable dtStudent = new DataTable();
//Columns of data table
dtStudent.Columns.Add("Name", typeof(string));
dtStudent.Columns.Add("Date", typeof(DateTime));
dtStudent.Columns.Add("Value", typeof(int));
//rows in the data table
//date1
dtStudent.Rows.Add("Multiplication", "2013-01-12", 25);
dtStudent.Rows.Add("division", "2013-01-12", 10);
dtStudent.Rows.Add("Addition", "2013-01-12", 15);
//date2
dtStudent.Rows.Add("Multiplication", "2013-01-13", 30);
dtStudent.Rows.Add("division", "2013-01-13", 11);
dtStudent.Rows.Add("Addition", "2013-01-13", 14);
//date3
dtStudent.Rows.Add("Multiplication", "2013-01-14", 28);
dtStudent.Rows.Add("division", "2013-01-14", 23);
dtStudent.Rows.Add("Addition", "2013-01-14", 25);
//date4
dtStudent.Rows.Add("Multiplication", "2013-01-15", 40);
dtStudent.Rows.Add("division", "2013-01-15", 49);
dtStudent.Rows.Add("Addition", "2013-01-15", 18);
Telerik.Reporting.Chart defChart = new Telerik.Reporting.Chart();
defChart.BitmapResolution = 96F;
defChart.ImageFormat = System.Drawing.Imaging.ImageFormat.Emf;
defChart.IntelligentLabelsEnabled = false;
defChart.Location = new Telerik.Reporting.Drawing.PointU(new Telerik.Reporting.Drawing.Unit(0.32, ((Telerik.Reporting.Drawing.UnitType)(Telerik.Reporting.Drawing.UnitType.Cm))), new Telerik.Reporting.Drawing.Unit(1.8, ((Telerik.Reporting.Drawing.UnitType)(Telerik.Reporting.Drawing.UnitType.Cm))));
defChart.PlotArea.EmptySeriesMessage.Appearance.Visible = true;
defChart.PlotArea.EmptySeriesMessage.Visible = true;
defChart.PlotArea.XAxis.AxisLabel.Visible = true;
defChart.PlotArea.YAxis.AxisLabel.Visible = true;
defChart.Size = new Telerik.Reporting.Drawing.SizeU(new Telerik.Reporting.Drawing.Unit(15, ((Telerik.Reporting.Drawing.UnitType)(Telerik.Reporting.Drawing.UnitType.Cm))), new Telerik.Reporting.Drawing.Unit(10, ((Telerik.Reporting.Drawing.UnitType)(Telerik.Reporting.Drawing.UnitType.Cm))));
defChart.ChartTitle.Visible = false;
var distinctResult = (from row in dtStudent.AsEnumerable()
select row.Field<
string
>("Name")).Distinct();
foreach (string name in distinctResult)
{
var dataResult = from row in dtStudent.AsEnumerable()
where row.Field<
string
>("Name") == name
select new
{
Name = row.Field<
string
>("Name"),
Date = row.Field<
DateTime
>("Date"),
Value = row.Field<
int
>("Value")
};
Telerik.Reporting.Charting.ChartSeries chartSeries = new Telerik.Reporting.Charting.ChartSeries();
chartSeries.Type = Telerik.Reporting.Charting.ChartSeriesType.Line;
chartSeries.Name = name;
chartSeries.Appearance.LabelAppearance.Visible = false;
defChart.Legend.Visible = false;
foreach (var record in dataResult)
{
ChartSeriesItem item = new ChartSeriesItem();
item.XValue = record.Date.ToOADate();
item.YValue = record.Value;
chartSeries.AddItem(item);
}
defChart.Series.Add(chartSeries);
}
defChart.PlotArea.XAxis.Appearance.ValueFormat = Telerik.Reporting.Charting.Styles.ChartValueFormat.ShortDate;
defChart.PlotArea.XAxis.Appearance.LabelAppearance.RotationAngle = 315;
defChart.PlotArea.XAxis.Appearance.LabelAppearance.Position.AlignedPosition = Telerik.Reporting.Charting.Styles.AlignedPositions.TopLeft;
defChart.PlotArea.XAxis.LayoutMode = Telerik.Reporting.Charting.Styles.ChartAxisLayoutMode.Inside;
defChart.PlotArea.XAxis.IsZeroBased = false;
defChart.PlotArea.XAxis.AutoScale = true;
defChart.PlotArea.XAxis.LabelStep = 1;
//Margins
Telerik.Reporting.Charting.Styles.ChartMargins chartMargins2 = new Telerik.Reporting.Charting.Styles.ChartMargins();
chartMargins2.Bottom = new Telerik.Reporting.Charting.Styles.Unit(40D, Telerik.Reporting.Charting.Styles.UnitType.Percentage);
chartMargins2.Top = new Telerik.Reporting.Charting.Styles.Unit(5D, Telerik.Reporting.Charting.Styles.UnitType.Percentage);
chartMargins2.Right = new Telerik.Reporting.Charting.Styles.Unit(20D, Telerik.Reporting.Charting.Styles.UnitType.Percentage);
chartMargins2.Left = new Telerik.Reporting.Charting.Styles.Unit(5D, Telerik.Reporting.Charting.Styles.UnitType.Percentage);
defChart.PlotArea.Appearance.Dimensions.Margins = chartMargins2;
this.detail.Items.AddRange(new Telerik.Reporting.ReportItemBase[] { defChart });
Calling aspx page:
==============
Student.aspx
===============
<
telerik:ReportViewer
ID
=
"ReportViewer1"
runat
=
"server"
Height
=
"580px"
Width
=
"1080px"
></
telerik:ReportViewer
>
Code behind
================
Telerik.Reporting.InstanceReportSource instanceReportSource = new Telerik.Reporting.InstanceReportSource();
StudentLineReport objRep = new StudentLineReport();
instanceReportSource.ReportDocument = objRep;
this.ReportViewer1.ReportSource = instanceReportSource;
I m rendering a line chart from the report viewer as well as design preview. The design preview is showing the complete chart, but while running it in the report viewer, the chart is not displayed completely(see attachments). Also while exporting the chart to the PDF, it is rendered in different size.
Please find the attached snapshots and the code for the scenario.
Please let me know how to show the chart completely in the telerik report viewer. Also the chart should appear of same size in both telerik report viewer and exported pdf file. kindly help me on this one.
public
Report GetReport(ReportEntry entry)
{
dynamic newReport =
new
Object();
string
parameterNameWithError =
string
.Empty;
string
parameterValue =
string
.Empty;
string
parameterType =
string
.Empty;
try
{
Type reportType = Type.GetType(
"ReportingService.Reports."
+ entry.Name);
newReport = Activator.CreateInstance(reportType);
foreach
(var para
in
entry.ParameterList)
{
parameterNameWithError = para.Name;
parameterValue = para.Value;
parameterType = para.Type;
newReport.ReportParameters[para.Name].Value = para.Value;
}
}
catch
(Exception ex)
{
newReport =
new
Reports.ErrorReport();
newReport.ReportParameters[
"ReportName"
].Value = entry.Name;
newReport.ReportParameters[
"ParameterName"
].Value = parameterNameWithError;
newReport.ReportParameters[
"ParameterValue"
].Value = parameterValue;
newReport.ReportParameters[
"ParameterType"
].Value = parameterType;
newReport.ReportParameters[
"ErrorMessage"
].Value = ex.Message;
}
return
newReport;
}
Type[] classes = Assembly.GetExecutingAssembly().GetExportedTypes();
foreach
(Type t
in
classes)
{
if
(t.FullName.Contains(
"Reports.Report"
))
{
PropertyInfo[] props = t.GetProperties();
foreach
(var prop
in
props)
{
if
(prop.Name.Equals(
"ReportParameters"
))
{
// What should I do here ???
}
}
}