예제 #1
0
            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);
            }
예제 #2
0
            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);
            }