| private void groupHeader2_ItemDataBinding(object sender, EventArgs e) |
| { |
| Telerik.Reporting.Processing.GroupSection headerAgent = (Telerik.Reporting.Processing.GroupSection)sender; |
| LinqEntityBaseLoan.ComAPayer com = headerAgent.DataObject.RawData as LinqEntityBaseLoan.ComAPayer; |
| headerAgent.Visible = com.Agent_ID != com.SuperAgent_ID; |
| if (headerAgent.Visible) |
| this.groupHeaderAgent.PageBreak = PageBreak.Before; |
| else |
| this.groupHeaderAgent.PageBreak = PageBreak.None; |
| } |
but the result is that in the next printed header, the page break will occur.
I try to change to headerAgent.PageBreak = PageBreak.Before but PageBreak is readonly. It seems that the ..Engine.ReportSection is created before Report.ReportSection (it is normal) and can not be changed (but visible can be !).
After a long search, i created a fake group :
groupheader1
groupheader2fake
groupheader2
detail
groupfooter2
groupfooter2fake
groupfooter1
And write the event groupHeader2fake_ItemDataBinding.
Is it normal to proceed like this ? A settable Break Page or an event before the creation of Engine.ReportSection can be usefull !
For ThisOne As Integer = 0 To 4
Me.Chart1.Series(ThisOne).Name = Me.ReportParameters("DataTitle" + (ThisOne + 1).ToString).Value
Me.Chart1.Series(ThisOne).Appearance.LabelAppearance.LabelLocation = Charting.Styles.StyleSeriesItemLabel.ItemLabelLocation.Inside
Me.Chart1.Series(ThisOne).Appearance.LabelAppearance.Position.AlignedPosition = Charting.Styles.AlignedPositions.Center
Me.Chart1.Series(ThisOne).Appearance.TextAppearance.TextProperties.Color = Color.Black
Me.Chart1.Series(ThisOne).Appearance.Shadow.Blur = 4
Me.Chart1.Series(ThisOne).Appearance.Shadow.Distance = 2
Me.Chart1.Series(ThisOne).Appearance.Shadow.Position = Charting.Styles.ShadowPosition.BottomRight
Me.Chart1.Series(ThisOne).DefaultLabelValue = "#%"
Next
private void detail_ItemDataBound(object sender, EventArgs e){ Telerik.Reporting.Processing.DetailSection detail = (Telerik.Reporting.Processing.DetailSection)sender; Telerik.Reporting.Processing.TextBox txtHierarchicalEntityID = (Telerik.Reporting.Processing.TextBox)detail.ChildElements.Find("txtHierarchicalEntityID", true)[0]; Telerik.Reporting.Processing.Table tblReport = (Telerik.Reporting.Processing.Table)detail.ChildElements.Find("tblReport", true)[0]; int hierarchicalEntityID = Convert.ToInt32(txtHierarchicalEntityID.Text); dsReporting dsBindingData = new dsReporting(); foreach (dsReporting.AssessmentResultsChartRow currRow in dsRaw.AssessmentResultsChart.Rows) if ((int)currRow["HierarchicalEntityID"] == hierarchicalEntityID) dsBindingData.AssessmentResultsChart.ImportRow(currRow); dsBindingData.AcceptChanges(); tblReport.DataSource = dsBindingData.AssessmentResultsChart;}private void chart1_NeedDataSource(object sender, EventArgs e) { Telerik.Reporting.Processing.Chart procChart = sender as Telerik.Reporting.Processing.Chart; string sql = @"SELECT COUNT(l.[LookupID]) as 'AUSStatusCnt',l.[ClientLookupValue] as 'AUSStatus' FROM [AUS] a INNER JOIN [Organization] o ON a.[OrganizationID]=o.[OrganizationID] INNER JOIN [Lookup] l ON l.[LookupID] = a.[AUSStatusID] where a.[AUSID] in ([dbo].[udf_GetLastAUSStatus](a.[AUSParentID])) AND a.[OrganizationID]=@OrganizationID AND l.[LookupTypeID]=13 and l.[Active]=1 AND a.[UpdatedByDate] >= DATEADD(d,-90,GETDATE()) GROUP BY l.ClientLookupValue,l.LookupID"; SqlConnection sqlCnn = new SqlConnection(); sqlCnn.ConnectionString = ConfigurationManager.ConnectionStrings["appConnString"].ConnectionString; try { DataSet ds = new DataSet(); SqlCommand sqlCmd = new SqlCommand(sql,sqlCnn); sqlCmd.Parameters.Add("@OrganizationID",SqlDbType.Int); sqlCmd.Parameters["@OrganizationID"].Value = int.Parse(Report.ReportParameters["OrganizationID"].Value.ToString()); SqlDataAdapter adapter = new SqlDataAdapter(sqlCmd); adapter.Fill(ds); procChart.DataSource = ds; chart1.Series[0].DataLabelsColumn = "AUSStatusCnt"; chart1.Series[0].DataYColumn = "AUSStatusCnt"; chart1.Legend.Visible = false; chart1.PlotArea.XAxis.DataLabelsColumn = "AUSStatus"; chart1.PlotArea.XAxis.Appearance.LabelAppearance.RotationAngle = 0; chart1.PlotArea.XAxis.Appearance.TextAppearance.TextProperties.Color = System.Drawing.Color.DarkSlateBlue; chart1.PlotArea.Appearance.Dimensions.Margins.Bottom = Telerik.Reporting.Charting.Styles.Unit.Percentage(20); chart1.PlotArea.XAxis.Appearance.TextAppearance.TextProperties.Font = new System.Drawing.Font("Arial", 10,FontStyle.Bold); adapter.Dispose(); sqlCmd.Dispose(); sqlCnn.Close(); } catch (Exception ex) { MessageBox.Show("Error loading report! "); } }