コード例 #1
0
        public void GenerateWinnerReport(System.IO.Stream stream, string sailNumber)
        {
            // Raw data needed
            TrophyDataSet.TrophyWinnersDataTable winners;
            using (TrophyDataSetTableAdapters.TrophyWinnersTableAdapter ad = new TrophyWinnersTableAdapter()) {
                winners = ad.GetData(sailNumber);
            }

            Document doc = CreateDocument();

            int pageNumber = 0;

            pageNumber++;
            Page page = new Page(A4Portrait.Width, A4Portrait.Height);

            doc.Pages.Content.Add(page);

            Siberix.PDF.Layout.Table.Table table;

            table = CreateTrophyWinnersTable(page, sailNumber, winners.Rows.Count);

            int rowIndex = 0;

            foreach (TrophyDataSet.TrophyWinnersRow winner in winners.Select("TRUE", "[fldYear] ASC, [fldTrophyName] ASC"))
            {
                AddTrophyWinnerRow(table, winner);

                /* Table needs to be measured, if it's too tall, then we need to remove this row,
                 * draw it on the current page, add a new page, create a new table, and the row to it
                 */
                table.Measure(page.Graphics);
                if ((table.Top + table.Height + Px(5)) > (page.Height - Margin))
                {
                    table.Rows.Remove(rowIndex, 0);

                    // Draw the winners, and the footer, increment the page number
                    table.Measure(page.Graphics);
                    table.Draw(page.Graphics);
                    DrawFooter(page, pageNumber);
                    page.Graphics.Flush();
                    pageNumber++;

                    // New page
                    page = new Page(A4Portrait.Width, A4Portrait.Height);
                    doc.Pages.Content.Add(page);

                    table = CreateTrophyWinnersTable(page, sailNumber, winners.Rows.Count);
                    AddTrophyWinnerRow(table, winner);
                    rowIndex = 0;
                }

                rowIndex++;
            }

            table.Measure(page.Graphics);
            table.Draw(page.Graphics);
            DrawFooter(page, pageNumber);
            page.Graphics.Flush();

            doc.Generate(stream);
        }
コード例 #2
0
        public void GenerateWinnerReport(System.IO.Stream stream, string sailNumber)
        {
            // Raw data needed
              TrophyDataSet.TrophyWinnersDataTable winners;
              using (TrophyDataSetTableAdapters.TrophyWinnersTableAdapter ad = new TrophyWinnersTableAdapter()) {
            winners = ad.GetData(sailNumber);
              }

              Document doc = CreateDocument();

              int pageNumber = 0;

              pageNumber++;
              Page page = new Page(A4Portrait.Width, A4Portrait.Height);
              doc.Pages.Content.Add(page);

              Siberix.PDF.Layout.Table.Table table;

              table = CreateTrophyWinnersTable(page, sailNumber, winners.Rows.Count);

              int rowIndex = 0;
              foreach (TrophyDataSet.TrophyWinnersRow winner in winners.Select("TRUE", "[fldYear] ASC, [fldTrophyName] ASC")) {
            AddTrophyWinnerRow(table, winner);

            /* Table needs to be measured, if it's too tall, then we need to remove this row,
             * draw it on the current page, add a new page, create a new table, and the row to it
             */
            table.Measure(page.Graphics);
            if ((table.Top + table.Height + Px(5)) > (page.Height - Margin)) {
              table.Rows.Remove(rowIndex, 0);

              // Draw the winners, and the footer, increment the page number
              table.Measure(page.Graphics);
              table.Draw(page.Graphics);
              DrawFooter(page, pageNumber);
              page.Graphics.Flush();
              pageNumber++;

              // New page
              page = new Page(A4Portrait.Width, A4Portrait.Height);
              doc.Pages.Content.Add(page);

              table = CreateTrophyWinnersTable(page, sailNumber, winners.Rows.Count);
              AddTrophyWinnerRow(table, winner);
              rowIndex = 0;
            }

            rowIndex++;
              }

              table.Measure(page.Graphics);
              table.Draw(page.Graphics);
              DrawFooter(page, pageNumber);
              page.Graphics.Flush();

              doc.Generate(stream);
        }