//private List<ColumnSizeLocation> GetColumnsSizeLocation() //{ // List<ColumnSizeLocation> result = new List<ColumnSizeLocation>(); // int widthUnits = 0; // var columns = ChartReportReportDTO.EntityListView.EntityListViewAllColumns.Where(x => x.RelationshipTailID == 0); // foreach (var column in columns) // { // widthUnits += (column.WidthUnit == 0 ? 1 : column.WidthUnit); // } // var width = reportWidth; // var perUnitWidth = width.Divide(widthUnits); // var consumedWidthUnits = 0; // if (ReportGroups != null) // foreach (var reportGroup in ReportGroups) // { // ColumnSizeLocation columnSizeLocation = new ColumnSizeLocation(); // columnSizeLocation.LictViewColumnID = reportGroup.ListViewColumnID; // SetColumnSizePosition(columnSizeLocation, reportGroup.EntityListViewColumn.WidthUnit, ref consumedWidthUnits, perUnitWidth); // result.Add(columnSizeLocation); // } // foreach (var column in columns) // { // if (!result.Any(x => x.LictViewColumnID == column.ID)) // { // ColumnSizeLocation columnSizeLocation = new ColumnSizeLocation(); // columnSizeLocation.LictViewColumnID = column.ID; // SetColumnSizePosition(columnSizeLocation, column.WidthUnit, ref consumedWidthUnits, perUnitWidth); // result.Add(columnSizeLocation); // } // } // return result; //} //private void SetColumnSizePosition(ColumnSizeLocation columnSizeLocation, int currentWidthUnits, ref int consumedWidthUnits, Unit perUnitWidth) //{ // if (currentWidthUnits == 0) // currentWidthUnits = 1; // var width = currentWidthUnits * perUnitWidth; // columnSizeLocation.Width = width; // var xlocation = (reportWidth - width) - consumedWidthUnits * perUnitWidth; // columnSizeLocation.XLocation = xlocation; // consumedWidthUnits += currentWidthUnits; //} private Tuple <Report, Graph> SetReportDetails(Report report) { var detail = new Telerik.Reporting.DetailSection(); detail.Height = Telerik.Reporting.Drawing.Unit.Cm(0.5); detail.Name = "detail"; ReportStyles.SetReportDetailStyle(detail.Style); report.Items.Add(detail); var graph = new Graph(); graph.Width = reportWidth; graph.Height = report.PageSettings.PaperSize.Height / 2; //reportWidth = report.Width; detail.Items.Add(graph); graph.Legend.Width = Unit.Cm(3); graph.Legend.Style.LineColor = System.Drawing.Color.LightGray; graph.Legend.Style.LineWidth = Telerik.Reporting.Drawing.Unit.Inch(0D); graph.PlotAreaStyle.LineColor = System.Drawing.Color.LightGray; graph.PlotAreaStyle.LineWidth = Telerik.Reporting.Drawing.Unit.Inch(0D); //graph.Size = new Telerik.Reporting.Drawing.SizeU(Telerik.Reporting.Drawing.Unit.Inch(6D), Telerik.Reporting.Drawing.Unit.Inch(3D)); GraphAxis categoryAxis = new GraphAxis(); categoryAxis.MajorGridLineStyle.LineColor = System.Drawing.Color.LightGray; categoryAxis.MajorGridLineStyle.LineWidth = Telerik.Reporting.Drawing.Unit.Pixel(1D); categoryAxis.MinorGridLineStyle.LineColor = System.Drawing.Color.LightGray; categoryAxis.MinorGridLineStyle.LineWidth = Telerik.Reporting.Drawing.Unit.Pixel(1D); categoryAxis.MinorGridLineStyle.Visible = false; categoryAxis.Scale = new CategoryScale(); GraphAxis valueAxis = new GraphAxis(); valueAxis.MajorGridLineStyle.LineColor = System.Drawing.Color.LightGray; valueAxis.MajorGridLineStyle.LineWidth = Telerik.Reporting.Drawing.Unit.Pixel(1D); valueAxis.MinorGridLineStyle.LineColor = System.Drawing.Color.LightGray; valueAxis.MinorGridLineStyle.LineWidth = Telerik.Reporting.Drawing.Unit.Pixel(1D); valueAxis.MinorGridLineStyle.Visible = false; valueAxis.Scale = new NumericalScale(); var cartesianCoordinateSystem1 = new CartesianCoordinateSystem(); cartesianCoordinateSystem1.Name = "cartesianCoordinateSystem1"; cartesianCoordinateSystem1.XAxis = categoryAxis; cartesianCoordinateSystem1.YAxis = valueAxis; graph.CoordinateSystems.Add(cartesianCoordinateSystem1); var categoryColumn = ChartReportReportDTO.EntityChartReportCategories.First(); var categoryGroup = new GraphGroup(); categoryGroup.Name = categoryColumn.EntityListViewColumn.RelativeColumnName; categoryGroup.Groupings.Add(new Grouping(string.Format("= Fields.{0}", categoryColumn.EntityListViewColumn.RelativeColumnName))); categoryGroup.Sortings.Add(new Telerik.Reporting.Sorting(string.Format("= Fields.{0}", categoryColumn.EntityListViewColumn.RelativeColumnName), Telerik.Reporting.SortDirection.Asc)); graph.CategoryGroups.Add(categoryGroup); foreach (var column in ChartReportReportDTO.EntityChartReportSeries) { foreach (var valuecolumn in ChartReportReportDTO.EntityChartReportValues) { var barSeries = new Telerik.Reporting.BarSeries(); //if (column.EntityListViewColumnID == categoryColumn.EntityListViewColumnID) // barSeries.ArrangeMode = GraphSeriesArrangeMode.Overlapped; //else //{ if (column.ArrangeType == ChartSerieArrangeType.Clustered) { barSeries.ArrangeMode = GraphSeriesArrangeMode.Clustered; } else if (column.ArrangeType == ChartSerieArrangeType.Overlapped) { barSeries.ArrangeMode = GraphSeriesArrangeMode.Overlapped; } else if (column.ArrangeType == ChartSerieArrangeType.Stacked) { barSeries.ArrangeMode = GraphSeriesArrangeMode.Stacked; } else if (column.ArrangeType == ChartSerieArrangeType.Stacked100) { barSeries.ArrangeMode = GraphSeriesArrangeMode.Stacked100; } //} barSeries.ToolTip.Text = string.Format("= {0}(Fields.{1})", valuecolumn.FunctionType.ToString(), valuecolumn.EntityListViewColumn.RelativeColumnName); barSeries.ToolTip.Title = string.Format("= Fields.{0}", column.EntityListViewColumn.RelativeColumnName); barSeries.Y = string.Format("= {0}(Fields.{1})", valuecolumn.FunctionType.ToString(), valuecolumn.EntityListViewColumn.RelativeColumnName); //categoryGroup.Groupings.Add(new Telerik.Reporting.Grouping()); //ChartSeries var serieGroup = new GraphGroup(); serieGroup.Name = column.EntityListViewColumn.RelativeColumnName; serieGroup.Groupings.Add(new Telerik.Reporting.Grouping(string.Format("= Fields.{0}", column.EntityListViewColumn.RelativeColumnName))); serieGroup.Sortings.Add(new Telerik.Reporting.Sorting(string.Format("= Fields.{0}", column.EntityListViewColumn.RelativeColumnName), Telerik.Reporting.SortDirection.Asc)); graph.SeriesGroups.Add(serieGroup); barSeries.SeriesGroup = serieGroup; barSeries.CategoryGroup = categoryGroup; barSeries.CoordinateSystem = cartesianCoordinateSystem1; barSeries.DataPointLabel = string.Format("= {0}(Fields.{1})", valuecolumn.FunctionType.ToString(), valuecolumn.EntityListViewColumn.RelativeColumnName); barSeries.DataPointLabelStyle.Visible = true; barSeries.DataPointStyle.LineWidth = Telerik.Reporting.Drawing.Unit.Cm(0); barSeries.DataPointStyle.Visible = true; barSeries.LegendItem.Value = string.Format("= Fields.{0}", column.EntityListViewColumn.RelativeColumnName); graph.Series.Add(barSeries); } } return(new Tuple <Report, Graph>(report, graph)); }
private void SetReportDetails(DR_Requester requester, Report report, List <ColumnSizeLocation> columnsSizeLocation) { bool hasSub = ListReportReportDTO.EntityListReportSubs.Any(); var detail = new Telerik.Reporting.DetailSection(); detail.Height = Telerik.Reporting.Drawing.Unit.Cm(0.5); detail.Name = "detail"; ReportStyles.SetReportDetailStyle(detail.Style); report.Items.Add(detail); Panel panel = new Panel(); panel.Width = reportWidth; ReportStyles.SetDetailPanelStyle(panel.Style, hasSub); detail.Items.Add(panel); //سکوریتی بروی ستوها اعمال شود var columns = ListReportReportDTO.EntityListView.EntityListViewAllColumns; int index = 0; foreach (var column in columns) { if (ListReportReportDTO.ReportGroups != null) { if (ListReportReportDTO.ReportGroups.Any(x => x.ListViewColumnID == column.ID)) { continue; } } var columnTextbox = new TextBox(); columnTextbox.CanGrow = false; columnTextbox.Name = column.Column.Name; ReportStyles.SetDetailTextboxStyle(columnTextbox.Style); var columnSizeLocation = columnsSizeLocation.First(x => x.LictViewColumnID == column.ID); columnTextbox.Width = columnSizeLocation.Width; columnTextbox.Location = new PointU(columnSizeLocation.XLocation - Unit.Cm(0.0), Unit.Cm(0)); columnTextbox.Height = detail.Height; //var columnName = ""; //if (column.RelationshipTailID == 0) //{ // columnName = column.Column.Name + "0";// + "'"; //} //else //{ //} columnTextbox.Value = string.Format("= Fields.{0}", column.RelativeColumnName); panel.Items.Add(columnTextbox); index++; } int subIndex = 0; foreach (var subDTO in ListReportReportDTO.EntityListReportSubs) { if (CheckSubReportIsRepeated(subDTO)) { continue; } SubReport subReport = new SubReport(); subReport.Width = reportWidth; subReport.Top = detail.Height + Unit.Cm(subIndex * 0.5); subIndex++; RR_ReportSourceRequest newrequest = new RR_ReportSourceRequest(Request.Requester); newrequest.Identity = Request.Identity; newrequest.Name = Request.Name; var tail = bizEntityRelationshipTail.GetEntityRelationshipTail(requester, subDTO.EntityRelationshipTailID); newrequest.SearchDataItems = new DP_SearchRepository(tail.TargetEntityID); var entityListReport = bizEntityListReport.GetEntityListReport(requester, subDTO.EntityListReportID, true); newrequest.ReportID = entityListReport.ID; Unit SubReportWidth = reportWidth - Unit.Cm(1); // var relationshipTail = bizEntityRelationshipTail.GetEntityRelationshipTail(subDTO.EntityRelationshipTailID); ListReportResolver listReportResolver = new ListReportResolver(entityListReport, newrequest, SubReportWidth, this, subDTO, ReportLevel + 1); var subListReportSource = listReportResolver.GetListReport(requester); subReport.ReportSource = subListReportSource; subReport.Left = Unit.Cm(0.5); ReportStyles.SetSubreportStyle(subReport.Style); foreach (var relColumn in subDTO.SubsColumnsDTO) { var parameter = new Parameter(); parameter.Name = relColumn.ParentEntityListViewColumnRelativeName; parameter.Value = string.Format("= Fields.{0}", relColumn.ParentEntityListViewColumnRelativeName); subReport.Parameters.Add(parameter); } detail.Items.Add(subReport); } }
private Tuple <Report, Graph> SetReportDetails(Report report) { var detail = new Telerik.Reporting.DetailSection(); detail.Height = Telerik.Reporting.Drawing.Unit.Cm(0.5); detail.Name = "detail"; ReportStyles.SetReportDetailStyle(detail.Style); report.Items.Add(detail); var graph = new Graph(); graph.Name = "graph1"; graph.Width = reportWidth; graph.Height = report.PageSettings.PaperSize.Height / 2; //reportWidth = report.Width; detail.Items.Add(graph); graph.Legend.Width = Unit.Cm(5); graph.Legend.Style.LineColor = System.Drawing.Color.LightGray; graph.Legend.Style.LineWidth = Telerik.Reporting.Drawing.Unit.Inch(0D); graph.PlotAreaStyle.LineColor = System.Drawing.Color.LightGray; graph.PlotAreaStyle.LineWidth = Telerik.Reporting.Drawing.Unit.Inch(0D); //graph.Size = new Telerik.Reporting.Drawing.SizeU(Telerik.Reporting.Drawing.Unit.Inch(6D), Telerik.Reporting.Drawing.Unit.Inch(3D)); CategoryScale categoryScale1 = new CategoryScale(); categoryScale1.PositionMode = Telerik.Reporting.AxisPositionMode.OnTicks; categoryScale1.SpacingSlotCount = 0D; GraphAxis categoryAxis = new GraphAxis(); GraphAxis valueAxis = new GraphAxis(); var polarCoordinateSystem = new PolarCoordinateSystem(); polarCoordinateSystem.AngularAxis = valueAxis; polarCoordinateSystem.RadialAxis = categoryAxis; graph.CoordinateSystems.Add(polarCoordinateSystem); categoryAxis.MajorGridLineStyle.LineColor = System.Drawing.Color.LightGray; categoryAxis.MajorGridLineStyle.LineWidth = Telerik.Reporting.Drawing.Unit.Pixel(1D); categoryAxis.MajorGridLineStyle.Visible = false; categoryAxis.MinorGridLineStyle.LineColor = System.Drawing.Color.LightGray; categoryAxis.MinorGridLineStyle.LineWidth = Telerik.Reporting.Drawing.Unit.Pixel(1D); categoryAxis.MinorGridLineStyle.Visible = false; categoryAxis.Name = "graphAxis2"; categoryScale1.PositionMode = Telerik.Reporting.AxisPositionMode.OnTicks; categoryScale1.SpacingSlotCount = 0D; categoryAxis.Scale = categoryScale1; categoryAxis.Style.Visible = false; valueAxis.MajorGridLineStyle.LineColor = System.Drawing.Color.LightGray; valueAxis.MajorGridLineStyle.LineWidth = Telerik.Reporting.Drawing.Unit.Pixel(1D); valueAxis.MajorGridLineStyle.Visible = false; valueAxis.MinorGridLineStyle.LineColor = System.Drawing.Color.LightGray; valueAxis.MinorGridLineStyle.LineWidth = Telerik.Reporting.Drawing.Unit.Pixel(1D); valueAxis.MinorGridLineStyle.Visible = false; valueAxis.Name = "graphAxis1"; valueAxis.Scale = new NumericalScale();; valueAxis.Style.Visible = false; var valuecolumn = ChartReportReportDTO.EntityChartReportValues.First(); var categoryGroup = new GraphGroup(); //categoryGroup.Groupings.Add(new Grouping()); graph.CategoryGroups.Add(categoryGroup); //if(ChartReportReportDTO.EntityChartReportSeries.Count>0) //{ //} var column = ChartReportReportDTO.EntityChartReportSeries.First(); var barSeries = new Telerik.Reporting.BarSeries(); graph.Series.Add(barSeries); barSeries.Name = column.EntityListViewColumn.RelativeColumnName; barSeries.CategoryGroup = categoryGroup; barSeries.ToolTip.Text = string.Format("= Format('{0}', {1}(Fields.{2}) / CDbl(Exec(\'graph1\', {1}(Fields.{2}))))", "{0:P}", valuecolumn.FunctionType.ToString(), valuecolumn.EntityListViewColumn.RelativeColumnName); barSeries.X = string.Format("= {0}(Fields.{1})", valuecolumn.FunctionType.ToString(), valuecolumn.EntityListViewColumn.RelativeColumnName); var serieGroup = new GraphGroup(); barSeries.SeriesGroup = serieGroup; //اگر نام ست نشده باشد گزارش درست کار نمیکند!!!!؟ serieGroup.Name = column.EntityListViewColumn.RelativeColumnName; serieGroup.Groupings.Add(new Telerik.Reporting.Grouping(string.Format("= Fields.{0}", column.EntityListViewColumn.RelativeColumnName))); serieGroup.Sortings.Add(new Telerik.Reporting.Sorting(string.Format("= Fields.{0}", column.EntityListViewColumn.RelativeColumnName), Telerik.Reporting.SortDirection.Asc)); graph.SeriesGroups.Add(serieGroup); //رو بقیه انواع خطا میدهد!اشکال تلریک هست در ورژن جدیدتر چک شود //شاید هم چون اصلا کتگوری ندارد و فقط سری دارد قانونش همینه barSeries.ArrangeMode = Telerik.Reporting.GraphSeriesArrangeMode.Stacked100; barSeries.CoordinateSystem = polarCoordinateSystem; barSeries.DataPointLabel = string.Format("= {0}(Fields.{1}) / CDbl(Exec(\'graph1\', {0}(Fields.{1})))", valuecolumn.FunctionType.ToString(), valuecolumn.EntityListViewColumn.RelativeColumnName); barSeries.DataPointLabelAlignment = Telerik.Reporting.BarDataPointLabelAlignment.OutsideColumn; barSeries.DataPointLabelConnectorStyle.Padding.Bottom = Telerik.Reporting.Drawing.Unit.Point(2D); barSeries.DataPointLabelConnectorStyle.Padding.Top = Telerik.Reporting.Drawing.Unit.Point(2D); barSeries.DataPointLabelFormat = "{0:P}"; barSeries.DataPointLabelOffset = Telerik.Reporting.Drawing.Unit.Mm(5D); barSeries.DataPointLabelStyle.Visible = true; barSeries.DataPointStyle.LineWidth = Telerik.Reporting.Drawing.Unit.Inch(0D); barSeries.DataPointStyle.Visible = true; barSeries.LegendItem.Value = string.Format("= Fields.{0}", column.EntityListViewColumn.RelativeColumnName); var legendValue = string.Format("= Fields.{0}", column.EntityListViewColumn.RelativeColumnName); var parentGeoup = serieGroup; foreach (var cColumn in ChartReportReportDTO.EntityChartReportSeries.Where(x => x != column)) { var newGroup = new GraphGroup(); newGroup.Name = column.EntityListViewColumn.RelativeColumnName; newGroup.Groupings.Add(new Telerik.Reporting.Grouping(string.Format("= Fields.{0}", cColumn.EntityListViewColumn.RelativeColumnName))); newGroup.Sortings.Add(new Telerik.Reporting.Sorting(string.Format("= Fields.{0}", cColumn.EntityListViewColumn.RelativeColumnName), Telerik.Reporting.SortDirection.Asc)); parentGeoup.ChildGroups.Add(newGroup); barSeries.SeriesGroup = newGroup; parentGeoup = newGroup; legendValue += "+ \'/\' +" + string.Format(" Fields.{0}", cColumn.EntityListViewColumn.RelativeColumnName); } barSeries.LegendItem.Value = legendValue; barSeries.ToolTip.Title = legendValue; return(new Tuple <Report, Graph>(report, graph)); }
private Tuple <Report, Crosstab> SetReportDetails(Report report) { var detail = new Telerik.Reporting.DetailSection(); detail.Name = "detail"; ReportStyles.SetReportDetailStyle(detail.Style); report.Items.Add(detail); var columnWidth = Unit.Cm(2); var columnHeight = Unit.Cm(0.7); var crosstab = new Crosstab(); crosstab.Width = reportWidth; crosstab.Name = "crosstab"; // crosstab.Height = report.PageSettings.PaperSize.Height / 2; detail.Items.Add(crosstab); for (int c = 0; c <= CrosstabReportReportDTO.Columns.Count - 1; c++) { foreach (var val in CrosstabReportReportDTO.Values) { crosstab.Body.Columns.Add(new Telerik.Reporting.TableBodyColumn(Telerik.Reporting.Drawing.Unit.Cm(2))); } } foreach (var val in CrosstabReportReportDTO.Values) { crosstab.Body.Columns.Add(new Telerik.Reporting.TableBodyColumn(Telerik.Reporting.Drawing.Unit.Cm(2))); } for (int r = 0; r <= CrosstabReportReportDTO.Rows.Count; r++) { crosstab.Body.Rows.Add(new Telerik.Reporting.TableBodyRow(Telerik.Reporting.Drawing.Unit.Cm(1))); } for (int c = 0; c <= crosstab.Body.Columns.Count - 1; c++) { for (int r = 0; r <= crosstab.Body.Rows.Count - 1; r++) { var mod = c % CrosstabReportReportDTO.Values.Count; Telerik.Reporting.TextBox textbox = new TextBox(); var val = CrosstabReportReportDTO.Values[mod]; textbox.Name = val.EntityListViewColumn.Alias + c.ToString() + r.ToString(); textbox.Width = columnWidth; textbox.Height = columnHeight; textbox.Value = string.Format("= {0}(Fields.{1})", val.ValueFunction.ToString(), val.EntityListViewColumn.RelativeColumnName); crosstab.Items.Add(textbox); crosstab.Body.SetCellContent(r, c, textbox); if (r == crosstab.Body.Rows.Count - 1) { ReportStyles.SetCrossTabRowHeader(textbox.Style); } else { if (c >= crosstab.Body.Columns.Count - CrosstabReportReportDTO.Values.Count) { ReportStyles.SetCrossTabRowHeader(textbox.Style); } else { if (c > CrosstabReportReportDTO.Values.Count - 1) { ReportStyles.SetCrossTabTotalRowColumnStyle(textbox.Style); } else { if (r > 0) { ReportStyles.SetCrossTabTotalRowColumnStyle(textbox.Style); } else { ReportStyles.SetCrossTabBodyTextboxStyle(textbox.Style); } } } } } } if (CrosstabReportReportDTO.Values.Count == 1) { for (int r = 0; r <= CrosstabReportReportDTO.Rows.Count - 1; r++) { var textboxCorner = new TextBox(); textboxCorner.Name = "corner" + r; textboxCorner.Width = columnWidth; textboxCorner.Height = columnHeight; textboxCorner.Value = CrosstabReportReportDTO.Rows[r].EntityListViewColumn.Alias; ReportStyles.SetCrossTabRowHeader(textboxCorner.Style); var rowspan = CrosstabReportReportDTO.Columns.Count; crosstab.Items.Add(textboxCorner); crosstab.Corner.SetCellContent(0, r, textboxCorner, rowspan, 1); } } else { var emptytextboxCorner = new TextBox(); emptytextboxCorner.Name = "corner"; emptytextboxCorner.Width = columnWidth; emptytextboxCorner.Height = columnHeight; emptytextboxCorner.Value = ""; ReportStyles.SetCrossTabEmptyCornerTextboxStyle(emptytextboxCorner.Style); crosstab.Items.Add(emptytextboxCorner); crosstab.Corner.SetCellContent(0, 0, emptytextboxCorner, CrosstabReportReportDTO.Columns.Count, CrosstabReportReportDTO.Rows.Count); for (int r = 0; r <= CrosstabReportReportDTO.Rows.Count - 1; r++) { var textboxCorner = new TextBox(); textboxCorner.Name = "corner" + r; textboxCorner.Width = columnWidth; textboxCorner.Height = columnHeight; textboxCorner.Value = CrosstabReportReportDTO.Rows[r].EntityListViewColumn.Alias; ReportStyles.SetCrossTabRowHeader(textboxCorner.Style); crosstab.Items.Add(textboxCorner); crosstab.Corner.SetCellContent(CrosstabReportReportDTO.Columns.Count, r, textboxCorner); } } TableGroup prevDataTableGroup = null; TableGroup prevTotalTableGroup = null; foreach (var item in CrosstabReportReportDTO.Columns.OrderByDescending(x => x.ID)) { var newDataTableGroup = new TableGroup(); newDataTableGroup.Name = "col" + item.EntityListViewColumn.Alias; newDataTableGroup.Groupings.Add(new Telerik.Reporting.Grouping(string.Format("= Fields.{0}", item.EntityListViewColumn.RelativeColumnName))); newDataTableGroup.Sortings.Add(new Telerik.Reporting.Sorting(string.Format("= Fields.{0}", item.EntityListViewColumn.RelativeColumnName), Telerik.Reporting.SortDirection.Asc)); var textbox = new TextBox(); textbox.Name = "colt" + item.EntityListViewColumn.Alias; textbox.Size = new Telerik.Reporting.Drawing.SizeU(Telerik.Reporting.Drawing.Unit.Inch(0.800000011920929D), Telerik.Reporting.Drawing.Unit.Inch(0.20000000298023224D)); textbox.Value = string.Format("= Fields.{0}", item.EntityListViewColumn.RelativeColumnName); ReportStyles.SetCrossTabRowColumnStyle(textbox.Style); crosstab.Items.Add(textbox); newDataTableGroup.ReportItem = textbox; var newTotalTableGroup = new TableGroup(); newTotalTableGroup.Name = "total_col_" + item.EntityListViewColumn.Alias; var totaltextbox = new TextBox(); totaltextbox.Name = "coltotal" + item.EntityListViewColumn.Alias; totaltextbox.Size = new Telerik.Reporting.Drawing.SizeU(Telerik.Reporting.Drawing.Unit.Inch(0.800000011920929D), Telerik.Reporting.Drawing.Unit.Inch(0.20000000298023224D)); totaltextbox.Value = "جمع"; ReportStyles.SetCrossTabRowHeader(totaltextbox.Style); crosstab.Items.Add(totaltextbox); newTotalTableGroup.ReportItem = totaltextbox; if (prevDataTableGroup != null) { newDataTableGroup.ChildGroups.Add(prevDataTableGroup); newDataTableGroup.ChildGroups.Add(prevTotalTableGroup); } else if (CrosstabReportReportDTO.Values.Count > 1) { //اولین گروهبندی..جزئی ترین..اگر مقادیر بیشتر از یکی باشند یک زیر گروه جدید برای هر مقدار ایجاد میشود var index = 0; foreach (var val in CrosstabReportReportDTO.Values) { var lastDataTableGroup = new TableGroup(); lastDataTableGroup.Name = "last" + val.EntityListViewColumn.Alias + index; var lasttextbox = new TextBox(); lasttextbox.Name = "lastTextbox" + val.EntityListViewColumn.Alias + index; lasttextbox.Size = new Telerik.Reporting.Drawing.SizeU(Telerik.Reporting.Drawing.Unit.Inch(0.800000011920929D), Telerik.Reporting.Drawing.Unit.Inch(0.20000000298023224D)); lasttextbox.Value = val.EntityListViewColumn.Alias; ReportStyles.SetCrossTabRowHeader(lasttextbox.Style); crosstab.Items.Add(lasttextbox); lastDataTableGroup.ReportItem = lasttextbox; newDataTableGroup.ChildGroups.Add(lastDataTableGroup); index++; } } if (prevDataTableGroup != null) { var index = 0; foreach (var val in CrosstabReportReportDTO.Values) { var lastTotalDataTableGroup = new TableGroup(); lastTotalDataTableGroup.Name = "lasttotal" + item.EntityListViewColumn.Alias + val.EntityListViewColumn.Alias + index; var lasttotaltextbox = new TextBox(); lasttotaltextbox.Name = "lasttotalTextbox" + item.EntityListViewColumn.Alias + val.EntityListViewColumn.Alias + index; lasttotaltextbox.Size = new Telerik.Reporting.Drawing.SizeU(Telerik.Reporting.Drawing.Unit.Inch(0.800000011920929D), Telerik.Reporting.Drawing.Unit.Inch(0.20000000298023224D)); lasttotaltextbox.Value = val.EntityListViewColumn.Alias; ReportStyles.SetCrossTabRowHeader(lasttotaltextbox.Style); crosstab.Items.Add(lasttotaltextbox); lastTotalDataTableGroup.ReportItem = lasttotaltextbox; newTotalTableGroup.ChildGroups.Add(lastTotalDataTableGroup); index++; } } else if (CrosstabReportReportDTO.Values.Count > 1) { //اولین گروهبندی تجمیعی..جزئی ترین..اگر مقادیر بیشتر از یکی باشند یک زیر گروه جدید برای هر مقدار ایجاد میشود var index = 0; foreach (var val in CrosstabReportReportDTO.Values) { var smallestGroup = new TableGroup(); smallestGroup.Name = "lasttotal" + item.EntityListViewColumn.Alias + val.EntityListViewColumn.Alias + index; var lasttotaltextbox = new TextBox(); lasttotaltextbox.Name = "lasttotalTextbox" + item.EntityListViewColumn.Alias + val.EntityListViewColumn.Alias + index; lasttotaltextbox.Size = new Telerik.Reporting.Drawing.SizeU(Telerik.Reporting.Drawing.Unit.Inch(0.800000011920929D), Telerik.Reporting.Drawing.Unit.Inch(0.20000000298023224D)); lasttotaltextbox.Value = val.EntityListViewColumn.Alias; ReportStyles.SetCrossTabRowHeader(lasttotaltextbox.Style); crosstab.Items.Add(lasttotaltextbox); smallestGroup.ReportItem = lasttotaltextbox; newTotalTableGroup.ChildGroups.Add(smallestGroup); index++; } } prevDataTableGroup = newDataTableGroup; prevTotalTableGroup = newTotalTableGroup; } crosstab.ColumnGroups.Add(prevDataTableGroup); crosstab.ColumnGroups.Add(prevTotalTableGroup); TableGroup prevRowDataTableGroup = null; TableGroup prevRowTotalTableGroup = null; foreach (var item in CrosstabReportReportDTO.Rows.OrderByDescending(x => x.ID)) { var newDataTableGroup = new TableGroup(); newDataTableGroup.Name = "row" + item.EntityListViewColumn.Alias; if (prevRowDataTableGroup != null) { newDataTableGroup.ChildGroups.Add(prevRowDataTableGroup); newDataTableGroup.ChildGroups.Add(prevRowTotalTableGroup); } var textbox = new TextBox(); textbox.Value = string.Format("= Fields.{0}", item.EntityListViewColumn.RelativeColumnName); textbox.Name = "rowt" + item.EntityListViewColumn.Alias; textbox.Size = new Telerik.Reporting.Drawing.SizeU(Telerik.Reporting.Drawing.Unit.Inch(0.800000011920929D), Telerik.Reporting.Drawing.Unit.Inch(0.20000000298023224D)); crosstab.Items.Add(textbox); ReportStyles.SetCrossTabRowColumnStyle(textbox.Style); newDataTableGroup.ReportItem = textbox; newDataTableGroup.Groupings.Add(new Telerik.Reporting.Grouping(string.Format("= Fields.{0}", item.EntityListViewColumn.RelativeColumnName))); newDataTableGroup.Sortings.Add(new Telerik.Reporting.Sorting(string.Format("= Fields.{0}", item.EntityListViewColumn.RelativeColumnName), Telerik.Reporting.SortDirection.Asc)); var newTotalTableGroup = new TableGroup(); newTotalTableGroup.Name = "total_row_" + item.EntityListViewColumn.Alias; var totaltextbox = new TextBox(); totaltextbox.Name = "totalrow" + item.EntityListViewColumn.Alias; totaltextbox.Size = new Telerik.Reporting.Drawing.SizeU(Telerik.Reporting.Drawing.Unit.Inch(0.800000011920929D), Telerik.Reporting.Drawing.Unit.Inch(0.20000000298023224D)); totaltextbox.Value = "جمع"; ReportStyles.SetCrossTabRowHeader(totaltextbox.Style); crosstab.Items.Add(totaltextbox); newTotalTableGroup.ReportItem = totaltextbox; prevRowDataTableGroup = newDataTableGroup; prevRowTotalTableGroup = newTotalTableGroup; } crosstab.RowGroups.Add(prevRowDataTableGroup); crosstab.RowGroups.Add(prevRowTotalTableGroup); return(new Tuple <Report, Crosstab>(report, crosstab)); }
//private List<ColumnSizeLocation> GetColumnsSizeLocation() //{ // List<ColumnSizeLocation> result = new List<ColumnSizeLocation>(); // int widthUnits = 0; // var columns = ChartReportReportDTO.EntityListView.EntityListViewAllColumns.Where(x => x.RelationshipTailID == 0); // foreach (var column in columns) // { // widthUnits += (column.WidthUnit == 0 ? 1 : column.WidthUnit); // } // var width = reportWidth; // var perUnitWidth = width.Divide(widthUnits); // var consumedWidthUnits = 0; // if (ReportGroups != null) // foreach (var reportGroup in ReportGroups) // { // ColumnSizeLocation columnSizeLocation = new ColumnSizeLocation(); // columnSizeLocation.LictViewColumnID = reportGroup.ListViewColumnID; // SetColumnSizePosition(columnSizeLocation, reportGroup.EntityListViewColumn.WidthUnit, ref consumedWidthUnits, perUnitWidth); // result.Add(columnSizeLocation); // } // foreach (var column in columns) // { // if (!result.Any(x => x.LictViewColumnID == column.ID)) // { // ColumnSizeLocation columnSizeLocation = new ColumnSizeLocation(); // columnSizeLocation.LictViewColumnID = column.ID; // SetColumnSizePosition(columnSizeLocation, column.WidthUnit, ref consumedWidthUnits, perUnitWidth); // result.Add(columnSizeLocation); // } // } // return result; //} //private void SetColumnSizePosition(ColumnSizeLocation columnSizeLocation, int currentWidthUnits, ref int consumedWidthUnits, Unit perUnitWidth) //{ // if (currentWidthUnits == 0) // currentWidthUnits = 1; // var width = currentWidthUnits * perUnitWidth; // columnSizeLocation.Width = width; // var xlocation = (reportWidth - width) - consumedWidthUnits * perUnitWidth; // columnSizeLocation.XLocation = xlocation; // consumedWidthUnits += currentWidthUnits; //} // private Telerik.Reporting.DetailSection detailSection1; // private Telerik.Reporting.Graph graph1; //private Telerik.Reporting.PolarCoordinateSystem polarCoordinateSystem1; //private Telerik.Reporting.GraphAxis graphAxis1; //private Telerik.Reporting.GraphAxis graphAxis2; //private Telerik.Reporting.BarSeries barSeries1; private Tuple <Report, Graph> SetReportDetails(Report report) { var detail = new Telerik.Reporting.DetailSection(); //detail.Height = Telerik.Reporting.Drawing.Unit.Cm(0.5); detail.Name = "detail"; ReportStyles.SetReportDetailStyle(detail.Style); report.Items.Add(detail); var graph = new Graph(); graph.Name = "graph1"; graph.Width = reportWidth; graph.Height = report.PageSettings.PaperSize.Height / 2; //reportWidth = report.Width; detail.Items.Add(graph); graph.Legend.Width = Unit.Cm(4); graph.Legend.Style.LineColor = System.Drawing.Color.LightGray; graph.Legend.Style.LineWidth = Telerik.Reporting.Drawing.Unit.Inch(0D); graph.PlotAreaStyle.LineColor = System.Drawing.Color.LightGray; graph.PlotAreaStyle.LineWidth = Telerik.Reporting.Drawing.Unit.Inch(0D); //graph.Size = new Telerik.Reporting.Drawing.SizeU(Telerik.Reporting.Drawing.Unit.Inch(6D), Telerik.Reporting.Drawing.Unit.Inch(3D)); GraphAxis categoryAxis = new GraphAxis(); GraphAxis valueAxis = new GraphAxis(); CategoryScale categoryScale1 = new CategoryScale(); categoryAxis.LabelPlacement = Telerik.Reporting.GraphAxisLabelPlacement.AtMaximum; categoryAxis.MajorGridLineStyle.LineColor = System.Drawing.Color.LightGray; categoryAxis.MajorGridLineStyle.LineWidth = Telerik.Reporting.Drawing.Unit.Pixel(1D); categoryAxis.MajorGridLineStyle.Visible = true; categoryAxis.MinorGridLineStyle.LineColor = System.Drawing.Color.LightGray; categoryAxis.MinorGridLineStyle.LineWidth = Telerik.Reporting.Drawing.Unit.Pixel(1D); categoryAxis.MinorGridLineStyle.Visible = false; categoryAxis.Name = "categoryAxis"; //categoryScale1.PositionMode = Telerik.Reporting.AxisPositionMode.OnTicks; categoryScale1.SpacingSlotCount = 0.1D; categoryAxis.Style.LineWidth = Telerik.Reporting.Drawing.Unit.Inch(0D); categoryAxis.Scale = categoryScale1; categoryAxis.Style.Visible = true; valueAxis.LabelAngle = 90; valueAxis.MajorGridLineStyle.LineColor = System.Drawing.Color.LightGray; valueAxis.MajorGridLineStyle.LineWidth = Telerik.Reporting.Drawing.Unit.Pixel(1D); valueAxis.MajorGridLineStyle.Visible = true; valueAxis.MinorGridLineStyle.LineColor = System.Drawing.Color.LightGray; valueAxis.MinorGridLineStyle.LineWidth = Telerik.Reporting.Drawing.Unit.Pixel(1D); valueAxis.MinorGridLineStyle.Visible = false; valueAxis.Name = "valueAxis"; NumericalScaleCrossAxisPosition numericalScaleCrossAxisPosition1 = new NumericalScaleCrossAxisPosition(); numericalScaleCrossAxisPosition1.Position = Telerik.Reporting.GraphScaleCrossAxisPosition.AtMinimum; numericalScaleCrossAxisPosition1.Value = 0D; NumericalScale numericalScale1 = new NumericalScale(); numericalScale1.CrossAxisPositions.Add(numericalScaleCrossAxisPosition1); valueAxis.Scale = numericalScale1; //valueAxis.Style.Visible = false; var polarCoordinateSystem = new PolarCoordinateSystem(); polarCoordinateSystem.AngularAxis = categoryAxis; polarCoordinateSystem.Name = "polarCoordinateSystem1"; polarCoordinateSystem.RadialAxis = valueAxis; graph.CoordinateSystems.Add(polarCoordinateSystem); var valuecolumn = ChartReportReportDTO.EntityChartReportValues.First(); var categoryColumn = ChartReportReportDTO.EntityChartReportCategories.First(); var categoryGroup = new GraphGroup(); categoryGroup.Name = categoryColumn.EntityListViewColumn.RelativeColumnName; categoryGroup.Groupings.Add(new Grouping(string.Format("= Fields.{0}", categoryColumn.EntityListViewColumn.RelativeColumnName))); categoryGroup.Sortings.Add(new Telerik.Reporting.Sorting(string.Format("= Fields.{0}", categoryColumn.EntityListViewColumn.RelativeColumnName), Telerik.Reporting.SortDirection.Asc)); graph.CategoryGroups.Add(categoryGroup); //if(ChartReportReportDTO.EntityChartReportSeries.Count>0) //{ //} var column = ChartReportReportDTO.EntityChartReportSeries.First(); var barSeries = new Telerik.Reporting.BarSeries(); barSeries.ArrangeMode = Telerik.Reporting.GraphSeriesArrangeMode.Stacked; graph.Series.Add(barSeries); barSeries.Name = column.EntityListViewColumn.RelativeColumnName; barSeries.CategoryGroup = categoryGroup; barSeries.CoordinateSystem = polarCoordinateSystem; barSeries.DataPointLabel = string.Format("= {0}(Fields.{1})", valuecolumn.FunctionType.ToString(), valuecolumn.EntityListViewColumn.RelativeColumnName); barSeries.DataPointLabelStyle.Visible = false; barSeries.LegendItem.Value = "= Fields.Name"; barSeries.Y = string.Format("= {0}(Fields.{1})+0.1", valuecolumn.FunctionType.ToString(), valuecolumn.EntityListViewColumn.RelativeColumnName); barSeries.LegendItem.Value = string.Format("= Fields.{0}", column.EntityListViewColumn.RelativeColumnName); var serieGroup = new GraphGroup(); //اگر نام ست نشده باشد گزارش درست کار نمیکند!!!!؟ serieGroup.Name = column.EntityListViewColumn.RelativeColumnName; serieGroup.Groupings.Add(new Telerik.Reporting.Grouping(string.Format("= Fields.{0}", column.EntityListViewColumn.RelativeColumnName))); serieGroup.Sortings.Add(new Telerik.Reporting.Sorting(string.Format("= Fields.{0}", column.EntityListViewColumn.RelativeColumnName), Telerik.Reporting.SortDirection.Asc)); graph.SeriesGroups.Add(serieGroup); barSeries.SeriesGroup = serieGroup; barSeries.ToolTip.Text = string.Format("= {0}(Fields.{1})", valuecolumn.FunctionType.ToString(), valuecolumn.EntityListViewColumn.RelativeColumnName); // barSeries.ToolTip.Title = string.Format("= Fields.{0}", column.EntityListViewColumn.RelativeColumnName); var legendValue = string.Format("= Fields.{0}", column.EntityListViewColumn.RelativeColumnName); var parentGeoup = serieGroup; foreach (var cColumn in ChartReportReportDTO.EntityChartReportSeries.Where(x => x != column)) { var newGroup = new GraphGroup(); newGroup.Name = cColumn.EntityListViewColumn.RelativeColumnName; newGroup.Groupings.Add(new Telerik.Reporting.Grouping(string.Format("= Fields.{0}", cColumn.EntityListViewColumn.RelativeColumnName))); newGroup.Sortings.Add(new Telerik.Reporting.Sorting(string.Format("= Fields.{0}", cColumn.EntityListViewColumn.RelativeColumnName), Telerik.Reporting.SortDirection.Asc)); parentGeoup.ChildGroups.Add(newGroup); barSeries.SeriesGroup = newGroup; parentGeoup = newGroup; legendValue += "+ \'/\' +" + string.Format(" Fields.{0}", cColumn.EntityListViewColumn.RelativeColumnName); } barSeries.LegendItem.Value = legendValue; barSeries.ToolTip.Title = legendValue; return(new Tuple <Report, Graph>(report, graph)); }