コード例 #1
0
ファイル: Program.cs プロジェクト: theMickster/joy-of-csharp
        private static void Main(string[] args)
        {
            Console.ForegroundColor = ConsoleColor.Cyan;
            Console.WriteLine("Gang of Four Design Pattern - Flyweight");

            Console.WriteLine();
            Console.ForegroundColor = ConsoleColor.White;

            var header = new ReportHeader
            {
                CompanyName = "My Awesome Company", Address1 = "123456 Sunny Lane Aurora, CO 80018"
            };
            var footer = new ReportFooter {
                ApplicationName = "My Awesome Application"
            };

            var reportA01 = ReportFactory.GetReport("A");

            reportA01.SetReportHeader(header);
            reportA01.SetReportFooter(footer);

            var reportA02 = ReportFactory.GetReport("A");

            var reportA03 = ReportFactory.GetReport("A");

            var reportB01 = ReportFactory.GetReport("B");

            reportB01.SetReportHeader(header);
            reportB01.SetReportFooter(footer);

            var reportB02 = ReportFactory.GetReport("B");

            var reportB03 = ReportFactory.GetReport("B");


            Console.WriteLine(reportA01.PrintReport());
            Console.WriteLine(reportA02.PrintReport());
            Console.WriteLine(reportA03.PrintReport());

            Console.WriteLine(reportB01.PrintReport());
            Console.WriteLine(reportB02.PrintReport());
            Console.WriteLine(reportB03.PrintReport());
        }
コード例 #2
0
ファイル: YpReportBase.cs プロジェクト: WilliamCopland/YPILIS
 /// <summary>method initilize report with headers and footer
 /// </summary>
 private void SetupReport(string reportName)
 {
     ReportFirstPageHeader firstPageHeader = new ReportFirstPageHeader(reportName, m_PageHeaderData);
     ReportNextPageHeader nextPageHeader = new ReportNextPageHeader(m_PageHeaderData);
     ReportFooter footer = new ReportFooter();
     m_ReportDocument = new Document.Xps.ReportDocument(firstPageHeader, footer, nextPageHeader);
 }
コード例 #3
0
        public void GeneratePDF(string FileName, bool OpenWhenDone = true)
        {
            renderEngine = new RenderToPDF(SelectedPageType, SelectedOrientation);
            rep          = new genericReport();

            yOffset = TopMargin;
            xOffset = LeftMargin;

            object previousRow = null;
            bool   pageBreak   = true;

            pagenumber = 0;

            foreach (object row in DataSource)
            {
                if (pageBreak || IsPageBreakNeeded())
                {
                    NewPage(previousRow, row);
                    pageBreak = false;
                }

                //GroupFooters
                Footers(previousRow, row);


                //GroupHeaders
                foreach (ReportGroup reportGroup in ReportGroups)
                {
                    if (reportGroup.GroupingHasChanged(row))
                    {
                        if ((reportGroup.StartOnNewPage && yOffset > TopMargin) || IsPageBreakNeeded(reportGroup.HeaderSection.Height))
                        {
                            NewPage(previousRow, row);
                        }

                        double growthForThisSection = reportGroup.HeaderSection.Render(row, renderEngine, xOffset, yOffset, DefaultStyle);
                        yOffset += reportGroup.HeaderSection.Height + growthForThisSection;
                        reportGroup.FooterSection.aggregatedValues = null;
                    }
                }

                //Alternating detail color
                if (AlternatingRowsPrimaryColor != null && AlternatingRowsSecondaryColor != null)
                {
                    Brush brush = applyAlternateColor ? new SolidBrush(AlternatingRowsPrimaryColor) : new SolidBrush(AlternatingRowsSecondaryColor);
                    renderEngine.DrawRectangle(null, brush, LeftMargin, yOffset, PrintableAreaWidth, DetailSection.Height);
                    applyAlternateColor = !applyAlternateColor;
                }

                if (IsPageBreakNeeded(DetailSection.Height))
                {
                    NewPage(previousRow, row);
                }

                double growthForDetailSection = DetailSection.Render(row, renderEngine, xOffset, yOffset, DefaultStyle);

                yOffset += DetailSection.Height + growthForDetailSection;

                if (PageFooter != null)
                {
                    PageFooter.calculateAggregates(row);
                }

                foreach (ReportGroup reportGroup in ReportGroups)
                {
                    reportGroup.FooterSection.calculateAggregates(row);
                    reportGroup.previousRow = row;
                }
                previousRow = row;
            }
            if (previousRow != null)
            {
                Footers(previousRow, null);
                if (PageFooter != null)
                {
                    double y = PageLength - (PageFooter != null ? PageFooter.Height : 0) - (ReportHeader != null ? ReportHeader.Height : 0) - BottomMargin;
                    if (y < yOffset)
                    {
                        renderEngine.NewPage();
                        yOffset = TopMargin;
                        pagenumber++;
                    }
                    double growth = PageFooter.Render(previousRow, renderEngine, xOffset, y, DefaultStyle);
                    yOffset += PageFooter.Height + growth;
                }

                if (ReportFooter != null)
                {
                    double y = PageLength - ReportHeader.Height;

                    double growth = ReportFooter.Render(previousRow, renderEngine, xOffset, y, DefaultStyle);
                    yOffset += PageFooter.Height + growth;
                }
            }


            renderEngine.Save(FileName);

            if (OpenWhenDone)
            {
                Process.Start(FileName);
            }
        }
コード例 #4
0
ファイル: Report.cs プロジェクト: Opentany/Tech
 public void setFooter(ReportFooter footer)
 {
     this.footer = footer;
 }
コード例 #5
0
ファイル: Report.cs プロジェクト: Opentany/Tech
 public void setFooter(ReportFooter footer)
 {
     this.footer = footer;
 }
コード例 #6
0
ファイル: Report.cs プロジェクト: theMickster/joy-of-csharp
 public void SetReportFooter(ReportFooter reportFooter)
 {
     ReportFooter = reportFooter;
 }