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()); }
/// <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); }
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); } }
public void setFooter(ReportFooter footer) { this.footer = footer; }
public void setFooter(ReportFooter footer) { this.footer = footer; }
public void SetReportFooter(ReportFooter reportFooter) { ReportFooter = reportFooter; }