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 ??? } }}