or
protected override void OnLoad(EventArgs e){ base.OnLoad(e); ReportViewer1.Report = ViewBag.ReportSource; ReportViewer1.RefreshReport();}private void subPortfolioStatistics_NeedDataSource(object sender, EventArgs e){ Telerik.Reporting.Processing.SubReport subReport = (Telerik.Reporting.Processing.SubReport) sender; CustomerPortfolios custPortfolio = (CustomerPortfolios) subReport.DataObject.RawData; _customerPortfolio = custPortfolio.customerPortfolios; if (_customerPortfolio != null && _customerPortfolio.Count > 0) { CustomerInvoiceLogs customerInvoiceLogs = new CustomerInvoiceLogs(); foreach (CustomerPortfolio cp in _customerPortfolio) { customerInvoiceLogs.AddRange(DFInvoiceStats.InvoicesByCustomerIdWithoutTaxNumberRelation(cp.CustomerId, _startYear, _endYear)); } subReport.InnerReport.DataSource = customerInvoiceLogs; }}How to group table programically?
I’m using AutoGenerateColumns project
And add code for group table but I getting error “.object reference not set to an instance of an object”
SqlConnection cn = new SqlConnection("Data Source=PC\\SQLEXPRESS;Initial Catalog=test;Integrated Security=True"); cn.Open(); SqlCommand command = new SqlCommand(“ProcName”, cn); command.CommandType = CommandType.StoredProcedure; SqlDataAdapter sqlAdapter = new SqlDataAdapter(command); DataSet ds = new DataSet(); sqlAdapter.Fill(ds); Telerik.Reporting.Processing.Table processingTable = (sender as Telerik.Reporting.Processing.Table); processingTable.DataSource = ds.Tables[0]; Telerik.Reporting.HtmlTextBox textboxGroup; Telerik.Reporting.HtmlTextBox textBoxTable; this.table1.ColumnGroups.Clear(); this.table1.Body.Columns.Clear(); this.table1.Body.Rows.Clear(); this.table1.ColumnHeadersPrintOnEveryPage = true; int i = 0; float widthMid = 0; if (PageSettings.Landscape) widthMid = (this.PageSettings.PaperSize.Height.Value - GetAsMm( this.PageSettings.Margins.Left) - GetAsMm( this.PageSettings.Margins.Right) ) / (ds.Tables[0].Columns.Count); else widthMid = (this.PageSettings.PaperSize.Width.Value - GetAsMm(this.PageSettings.Margins.Left) - GetAsMm(this.PageSettings.Margins.Right) ) / (ds.Tables[0].Columns.Count); /////////////////////////////////////////////////////////////// for (int x = ds.Tables[0].Columns.Count - 1; x >= 0; x--) //foreach (DataColumn dc in ds.Tables[0].Columns) { DataColumn dc = ds.Tables[0].Columns[x]; Telerik.Reporting.TableGroup tableGroupColumn = new Telerik.Reporting.TableGroup(); this.table1.ColumnGroups.Add(tableGroupColumn); this.table1.Body.Columns.Add(new Telerik.Reporting.TableBodyColumn(Unit.Mm(widthMid))); textboxGroup = new Telerik.Reporting.HtmlTextBox(); textboxGroup.Style.BorderColor.Default = Color.Black; textboxGroup.Style.BorderStyle.Default = BorderType.Solid; textboxGroup.Value = Equivalent.GetEquivalent(dc.ColumnName.ToString()); textboxGroup.Size = new SizeU(Unit.Cm(0.2), Unit.Inch(0.3)); textboxGroup.Style.TextAlign = HorizontalAlign.Center; tableGroupColumn.ReportItem = textboxGroup; textBoxTable = new Telerik.Reporting.HtmlTextBox(); textBoxTable.Style.BorderColor.Default = Color.Red; textBoxTable.Style.BorderStyle.Default = BorderType.Solid; textBoxTable.Value = "=Fields." + dc.ColumnName; textBoxTable.Size = new SizeU(Unit.Cm(0.2), Unit.Inch(0.3)); textBoxTable.Style.TextAlign = HorizontalAlign.Right; this.table1.Body.SetCellContent(0, i++, textBoxTable); this.table1.Items.AddRange(new ReportItemBase[] { textBoxTable, textboxGroup }); } //////////////////////////////////////////////////////////////////grouping part Telerik.Reporting.TableGroup group1 = new Telerik.Reporting.TableGroup(); group1.Name = "IDGroup"; group1.Groupings.Add(new Telerik.Reporting.Data.Grouping("=Fields.ID")); Telerik.Reporting.TextBox textBox1 = new Telerik.Reporting.TextBox(); table1.Items.Add(textBox1); group1.ReportItem = textBox1; table1.RowGroups.Add(group1); ///////////////////////////////////////////////////////////////
This code have error only I using a grouping part