public bool CreateReport() { LoadPotentialCategories(); _TotalIncome = new ReportObject.Snapshot(); bool isSuccessful = false; iTextSharp.text.Document document = new iTextSharp.text.Document(PageSize.LEGAL); try { //set up RunReport event overrides & create doc string reportFileName = Path.GetFullPath(reportObject.ReportTempFileFullName); if (!Directory.Exists(Path.GetDirectoryName(reportFileName))) { Directory.CreateDirectory(Path.GetDirectoryName(reportFileName)); } PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(reportFileName, FileMode.Create)); writer.PageEvent = this; PdfPTable table = new PdfPTable(_Columns); Image gif = Image.GetInstance(Resources.logo, BaseColor.WHITE); gif.ScalePercent(35); _reportFont = FontFactory.GetFont("Arial", 8, iTextSharp.text.Font.NORMAL); document.AddTitle(reportObject.ReportTitle); document.SetPageSize(PageSize.LETTER); document.SetMargins(-50, -55, 10, 45); table.HeaderRows = 2; PrintReportHeader(table, gif); PrintReportDetailHeader(table); table.SetWidths(new float[] { 1.5f, 2, 1, 1, 1.5f }); foreach (PotentialCategoryInfo categoryInfo in _PotentialCategories) { PrintReportDetail(table, categoryInfo); } PrintReportDetailDisclaimer(table); document.Open(); document.Add(table); document.Close(); isSuccessful = true; } catch (DocumentException de) { reportObject.ReportError = de.Message; reportObject.ReportErrorLevel = (int)LogLevel.ERROR; } catch (IOException ioe) { reportObject.ReportError = ioe.Message; reportObject.ReportErrorLevel = (int)LogLevel.ERROR; } return(isSuccessful); }
private void PrintReportDetail(PdfPTable table, PotentialCategoryInfo categoryInfo) { ReportObject.Snapshot snapshotData = GetSnapshotData(categoryInfo); if (categoryInfo.SequenceNumber >= 8 && categoryInfo.SequenceNumber < 9 && categoryInfo.SequenceNumber != 8.7) { _TotalIncome.Amount += snapshotData.Amount; _TotalIncome.Count += snapshotData.Count; } string[] values; if (categoryInfo.SequenceNumber == 0) { values = new string[] { categoryInfo.Category, string.Empty, string.Empty }; } else if (categoryInfo.SequenceNumber == 8.7) { values = new string[] { categoryInfo.Category, (snapshotData.Amount / 100).ToString("0.00%"), string.Empty }; } else if (categoryInfo.SequenceNumber == 6.2 || categoryInfo.SequenceNumber == 6.4 || (categoryInfo.SequenceNumber >= 8 && categoryInfo.SequenceNumber <= 8.6) || (categoryInfo.SequenceNumber > 8.7 && categoryInfo.SequenceNumber < 8.8)) { values = new string[] { categoryInfo.Category, string.Empty, snapshotData.Amount.ToString("c") }; } else if (categoryInfo.SequenceNumber == 9) { values = new string[] { categoryInfo.Category, string.Empty, _TotalIncome.Amount.ToString("c") }; } else { values = new string[] { categoryInfo.Category, snapshotData.Count.ToString(), snapshotData.Amount.ToString("c") }; } if (categoryInfo.SequenceNumber == 9) { PrintReportDetailValues(table, string.Empty, string.Empty, "---------------", 0); } PrintReportDetailValues(table, values[0], values[1], values[2], categoryInfo.Tabs); }