Exemplo n.º 1
0
        static void InitDetailsBasedonXRTableRepeatingRowHeader(XtraReport rep, ReportGeneratorType kind, int columnWidth)
        {
            Font      font            = new Font("Tahoma", 9.75f);
            DataTable dataTable       = ((DataSet)rep.DataSource).Tables[0];
            int       processedPage   = 0;
            int       usablePageWidth = rep.PageWidth - (rep.Margins.Left + rep.Margins.Right);

            List <int> columnsWidth = null;

            if (kind == ReportGeneratorType.FixedColumnWidth)
            {
                columnsWidth = DefineColumnsWidth(columnWidth, dataTable.Columns.Count);
            }
            else
            {
                columnsWidth = GetColumnsBestFitWidth(dataTable, font);
            }

            XRTable tableHeader = null;
            XRTable tableDetail = null;

            InitNewTableInstancesAt(rep, font, out tableHeader, out tableDetail, new PointF(0, 0));
            tableHeader.BeginInit();
            tableDetail.BeginInit();
            int i = 1;

            AddCellsToTables(tableHeader, tableDetail, dataTable.Columns[0], columnsWidth[0], true);
            int remainingSpace = usablePageWidth - columnsWidth[0];

            do
            {
                if (columnsWidth[i] > remainingSpace)
                {
                    processedPage++;
                    tableHeader.WidthF = usablePageWidth - remainingSpace;
                    tableDetail.WidthF = usablePageWidth - remainingSpace;
                    tableHeader.EndInit();
                    tableDetail.EndInit();
                    InitNewTableInstancesAt(rep, font, out tableHeader, out tableDetail, new PointF(usablePageWidth * processedPage, 0));
                    tableHeader.BeginInit();
                    tableDetail.BeginInit();
                    AddCellsToTables(tableHeader, tableDetail, dataTable.Columns[0], columnsWidth[0], true);
                    remainingSpace = usablePageWidth - columnsWidth[0];
                }
                else
                {
                    AddCellsToTables(tableHeader, tableDetail, dataTable.Columns[i], columnsWidth[i], false);
                    remainingSpace -= columnsWidth[i];
                    i++;
                }
            }while(i < columnsWidth.Count);
            tableHeader.WidthF = usablePageWidth - remainingSpace;
            tableDetail.WidthF = usablePageWidth - remainingSpace;
            tableHeader.EndInit();
            tableDetail.EndInit();
        }
Exemplo n.º 2
0
 public static void InitDetailsBasedonXRTable(XtraReport rep, ReportGeneratorType kind, int columnWidth, bool repeatRowHeader)
 {
     if (!repeatRowHeader || kind == ReportGeneratorType.SinglePage)
     {
         InitDetailsBasedonXRTableWithoutRepeatingRowHeader(rep, kind, columnWidth);
     }
     else
     {
         InitDetailsBasedonXRTableRepeatingRowHeader(rep, kind, columnWidth);
     }
 }
    public static XtraReport GenerateReport(ASPxPivotGrid pivot, ReportGeneratorType kind, int columnWidth, bool repeatRowHeader)
    {
        XtraReport rep = new XtraReport();

        rep.DataSource = FillDataset(pivot);
        rep.DataMember = ((DataSet)rep.DataSource).Tables[0].TableName;
        InitBands(rep);
        InitStyles(rep);
        InitDetailsBasedonXRTable(rep, kind, columnWidth, repeatRowHeader);
        return(rep);
    }
Exemplo n.º 4
0
        public static XtraReport GenerateReport(PivotGridControl pivot, ReportGeneratorType kind, decimal columnWidth, bool repeatRowHeader)
        {
            XtraReport rep = new XtraReport();

            rep.Landscape  = true;
            rep.DataSource = FillDataset(pivot);
            rep.DataMember = ((DataSet)rep.DataSource).Tables[0].TableName;
            InitBands(rep);
            InitStyles(rep);
            InitDetailsBasedonXRTable(rep, kind, Convert.ToInt32(columnWidth), repeatRowHeader);
            return(rep);
        }
    static void InitDetailsBasedonXRTableWithoutRepeatingRowHeader(XtraReport rep, ReportGeneratorType kind, int columnWidth)
    {
        Font    font     = new Font("Tahoma", 9.75f);
        DataSet ds       = ((DataSet)rep.DataSource);
        int     colCount = ds.Tables[0].Columns.Count;
        int     colWidth = 0;



        XRTable tableHeader = null;
        XRTable tableDetail = null;

        InitNewTableInstancesAt(rep, font, out tableHeader, out tableDetail, new PointF(0, 0));


        List <int> columnsWidth = null;

        switch (kind)
        {
        case ReportGeneratorType.FixedColumnWidth:
            colWidth          = columnWidth;
            tableHeader.Width = columnWidth * colCount;
            tableDetail.Width = columnWidth * colCount;
            break;

        case ReportGeneratorType.BestFitColumns:
            columnsWidth      = GetColumnsBestFitWidth(ds.Tables[0], font);
            colWidth          = 0;
            tableHeader.Width = GetTotalWidth(columnsWidth);
            tableDetail.Width = tableHeader.Width;
            break;

        default:
            colWidth          = (rep.PageWidth - (rep.Margins.Left + rep.Margins.Right)) / colCount;
            tableHeader.Width = (rep.PageWidth - (rep.Margins.Left + rep.Margins.Right));
            tableDetail.Width = (rep.PageWidth - (rep.Margins.Left + rep.Margins.Right));
            break;
        }

        tableHeader.BeginInit();
        tableDetail.BeginInit();
        // Create table cells, fill the header cells with text, bind the cells to data
        for (int i = 0; i < colCount; i++)
        {
            AddCellsToTables(tableHeader, tableDetail, ds.Tables[0].Columns[i], kind == ReportGeneratorType.BestFitColumns ? columnsWidth[i] : colWidth, i == 0 ? true : false);
        }
        tableDetail.EndInit();
        tableHeader.EndInit();
        // Place the table onto a report's Detail band
    }