private void SetUpColumnsHeaders() { Header.TableRows.Clear(); RTableCell tCell; RTableRow headerRow = new RTableRow(); double sumColWidthInMillimeters = 0; foreach (ReportColumn reportColumn in ReportDataColumns) { if (reportColumn is ReportDataColumn) { ReportDataColumn reportDataColumn = reportColumn as ReportDataColumn; Unit _widthOfColumn = reportDataColumn.HeaderStyle.Width; if (_widthOfColumn.Value == 0) { _widthOfColumn = reportDataColumn.DefaultCellStyle.Width; } RTableColumn newColumn = new RTableColumn(); newColumn.Width = _widthOfColumn; this.TableColumns.Add(newColumn); sumColWidthInMillimeters += MeasureTools.UnitToMillimeters(_widthOfColumn); tCell = new RTableCell(); ReportControlItem rHeaderItem; int columnIndex = ReportDataColumns.IndexOf(reportDataColumn); int reportItemZIndex = columnIndex + 1; rHeaderItem = GetReportHeaderControlItem(reportDataColumn); ////////////////////// tCell.ReportItems.Add(rHeaderItem); headerRow.TableCells.Add(tCell); } else if (reportColumn is ReportHyperlinkColumn) { } } Item.Width = new Unit(sumColWidthInMillimeters, UnitType.Mm); Header.TableRows.Add(headerRow); }
private void SetUpCells() { Details.TableRows.Clear(); if ((reportTableGroups != null) && (reportTableGroups.Count > 0)) { #region apply grouping TableGroups = new RTableGroups(); for (int rtgIndex = 0; rtgIndex < reportTableGroups.Count; rtgIndex++) { ReportTableGroup reportTableGroup = reportTableGroups[rtgIndex]; //ReportColumn firstColumn = reportTableGroup.ColumnGrouping[0]; RTableGroup newGroup = new RTableGroup(); newGroup.Grouping.Name = string.Format("{0}_Group{1}", Name, rtgIndex + 1); //Grouping foreach (ReportColumn groupingColumn in reportTableGroup.ColumnGrouping) { RExpression groupingExpression = new RExpression(GetReportColumnValue(groupingColumn)); newGroup.Grouping.GroupExpressions.Add(groupingExpression); } //Sorting if (reportTableGroup.ColumnSorting.Count > 0) { RSorting groupSorting = new RSorting(); foreach (ReportColumn sortingColumn in reportTableGroup.ColumnSorting.Keys) { RSortBy sortByColumn = new RSortBy(); sortByColumn.SortExpression = GetReportColumnValue(sortingColumn); sortByColumn.Direction = reportTableGroup.ColumnSorting[sortingColumn]; groupSorting.SortBy.Add(sortByColumn); } newGroup.Sorting = groupSorting; } //Header { RHeader groupHeader = new RHeader(); { RTableRow headerRow = new RTableRow(); { BaseStyle hightlightStyleForRow = null; foreach (ReportColumn reportColumn in ReportDataColumns) { if (reportColumn is ReportDataColumn) { ReportControlItem tbxHeader; if (reportTableGroup.ColumnGrouping.Contains(reportColumn)) { tbxHeader = GetReportCellControlItem(reportColumn as ReportDataColumn); if (hightlightStyleForRow == null) { hightlightStyleForRow = tbxHeader.Item.Style; } } else { tbxHeader = new RTextBox(String.Empty); } RTableCell rTableCell = new RTableCell(); rTableCell.ReportItems.Add(tbxHeader); headerRow.TableCells.Add(rTableCell); } } if (hightlightStyleForRow != null) { hightlightStyleForRow.Border.Style = BorderStyle.None; headerRow.Style = hightlightStyleForRow; } } groupHeader.TableRows.Add(headerRow); } newGroup.Header = groupHeader; } //Footer { //RFooter groupFooter = new RFooter(); //newGroup.Footer = groupFooter; } TableGroups.Add(newGroup); } #endregion } RTableCell tCell; RTableRow tRow = new RTableRow(); tRow.Height = this.rowHeight; foreach (DataColumn dataColumn in SourceDataTable.Columns) { tCell = new RTableCell(); ReportControlItem rDataTableItem; int columnIndex = SourceDataTable.Columns.IndexOf(dataColumn); int reportItemZIndex = columnIndex + 1; ReportColumn reportColumn = reportDataColumns[columnIndex]; if (reportColumn is ReportDataColumn) { ReportDataColumn reportDataColumn = reportColumn as ReportDataColumn; if ((this.reportTableGroups != null) && (this.reportTableGroups.ContainsColumn(reportColumn))) { rDataTableItem = new RTextBox(string.Empty); } else { rDataTableItem = GetReportCellControlItem(reportDataColumn); } tCell.ReportItems.Add(rDataTableItem); tRow.TableCells.Add(tCell); } else if (reportColumn is ReportHyperlinkColumn) { } } Details.TableRows.Add(tRow); }