protected override void GenerateDataList() { if (!this.isSignatureShown) { this.document.NewPage(); } PdfPTable dataListTable = null; PdfPCell[] dataListCells = null; int columnIndex = 0; float[] listCellLayout = new float[] { 0.37f, 0.43f, 0.20f }; PdfPTable cellContentTable = null; int cellDataCount = 100; int columnPerPage = 4; int dataPerPage = cellDataCount * columnPerPage; cellContentTable = PdfElementGenerator.createTable(listCellLayout, false, true); for (int i = 0; i < Math.Min((cellDataCount - this.rowsInfectedBySignature) * columnPerPage, this.device.tempList.Count); i++) { if (i != 0 && i % (cellDataCount - this.rowsInfectedBySignature) == 0) { if (cellContentTable != null) { dataListCells[columnIndex] = new PdfPCell(cellContentTable); } cellContentTable = PdfElementGenerator.createTable(listCellLayout, false, true); columnIndex = (i / (cellDataCount - this.rowsInfectedBySignature)) % columnPerPage; } if (i % dataPerPage == 0) { dataListTable = PdfElementGenerator.createTable(new float[] { 0.25f, 0.25f, 0.25f, 0.25f }, true); PdfPCell[] headerRowCells = dataListTable.Rows[0].GetCells(); for (int j = 0; j < headerRowCells.Length; j++) { PdfPTable headerTable = PdfElementGenerator.createTable(listCellLayout, false, true); PdfPCell[] headerCells = headerTable.Rows[0].GetCells(); headerCells[0].Phrase = PdfElementGenerator.createTableHeaderPhrase("Date"); headerCells[1].Phrase = PdfElementGenerator.createTableHeaderPhrase("Time"); headerCells[2].Phrase = PdfElementGenerator.createTableHeaderPhrase(unit); foreach (var item in headerCells) { item.HorizontalAlignment = Element.ALIGN_CENTER; //item.PaddingTop = 1f; } headerRowCells[j] = new PdfPCell(headerTable); headerRowCells[j].PaddingTop = 2f; } dataListCells = PdfElementGenerator.AddEmptyRowToTable(dataListTable, true, true); } PdfPCell[] rowCells = PdfElementGenerator.AddEmptyRowToTable(cellContentTable, false, false); rowCells[0].Phrase = PdfElementGenerator.createDataListContentPhrase(TempsenFormatHelper.GetFormattedDate(this.device.tempList[i].PointTime.ToLocalTime()), this.device.tempList[i].IsMark); rowCells[1].Phrase = PdfElementGenerator.createDataListContentPhrase(TempsenFormatHelper.GetFormattedTime(this.device.tempList[i].PointTime.ToLocalTime()), this.device.tempList[i].IsMark); rowCells[2].Phrase = PdfElementGenerator.createDataListContentPhrase(TempsenFormatHelper.GetFormattedTemperature(this.device.tempList[i].PointTemp), this.device.tempList[i].IsMark); foreach (var item in rowCells) { item.HorizontalAlignment = Element.ALIGN_CENTER; item.PaddingLeft = 0; item.PaddingRight = 0; item.PaddingTop = 0.0f; item.PaddingBottom = 0.8f; } if (i == Math.Min((cellDataCount - this.rowsInfectedBySignature) * columnPerPage, this.device.tempList.Count) - 1) { dataListCells[columnIndex] = new PdfPCell(cellContentTable); for (int j = columnPerPage - 1; j > columnIndex; j--) { dataListTable.Rows[0].GetCells()[j].Phrase = PdfElementGenerator.createTableHeaderPhrase(string.Empty); } this.document.Add(PdfElementGenerator.createSectionFrameTable(dataListTable, false)); cellContentTable = null; dataListTable = null; columnIndex = 0; break; } } for (int i = (cellDataCount - this.rowsInfectedBySignature) * columnPerPage; i < device.tempList.Count; i++) { int k = i - ((cellDataCount - this.rowsInfectedBySignature) * columnPerPage); if (k == 0) { cellContentTable = PdfElementGenerator.createTable(listCellLayout, false, true); } if (k != 0 && k % cellDataCount == 0) { if (cellContentTable != null) { dataListCells[columnIndex] = new PdfPCell(cellContentTable); } cellContentTable = PdfElementGenerator.createTable(listCellLayout, false, true); columnIndex = (k / cellDataCount) % columnPerPage; } if (k % dataPerPage == 0) { if (dataListTable != null) { this.document.Add(PdfElementGenerator.createSectionFrameTable(dataListTable, false)); } dataListTable = PdfElementGenerator.createTable(new float[] { 0.25f, 0.25f, 0.25f, 0.25f }, true); PdfPCell[] headerRowCells = dataListTable.Rows[0].GetCells(); for (int j = 0; j < headerRowCells.Length; j++) { PdfPTable headerTable = PdfElementGenerator.createTable(listCellLayout, false, true); PdfPCell[] headerCells = headerTable.Rows[0].GetCells(); headerCells[0].Phrase = PdfElementGenerator.createTableHeaderPhrase("Date"); headerCells[1].Phrase = PdfElementGenerator.createTableHeaderPhrase("Time"); headerCells[2].Phrase = PdfElementGenerator.createTableHeaderPhrase(unit); foreach (var item in headerCells) { item.HorizontalAlignment = Element.ALIGN_CENTER; } headerRowCells[j] = new PdfPCell(headerTable); headerRowCells[j].PaddingTop = 2f; } dataListCells = PdfElementGenerator.AddEmptyRowToTable(dataListTable, true, true); } PdfPCell[] rowCells = PdfElementGenerator.AddEmptyRowToTable(cellContentTable, false, false); rowCells[0].Phrase = PdfElementGenerator.createDataListContentPhrase(TempsenFormatHelper.GetFormattedDate(this.device.tempList[i].PointTime.ToLocalTime()), this.device.tempList[i].IsMark); rowCells[1].Phrase = PdfElementGenerator.createDataListContentPhrase(TempsenFormatHelper.GetFormattedTime(this.device.tempList[i].PointTime.ToLocalTime()), this.device.tempList[i].IsMark); rowCells[2].Phrase = PdfElementGenerator.createDataListContentPhrase(TempsenFormatHelper.GetFormattedTemperature(this.device.tempList[i].PointTemp), this.device.tempList[i].IsMark); foreach (var item in rowCells) { item.HorizontalAlignment = Element.ALIGN_CENTER; item.PaddingLeft = 0; item.PaddingRight = 0; item.PaddingTop = 0.0f; item.PaddingBottom = 0.8f; } if (i == device.tempList.Count - 1) { dataListCells[columnIndex] = new PdfPCell(cellContentTable); for (int j = columnPerPage - 1; j > columnIndex; j--) { dataListTable.Rows[0].GetCells()[j].Phrase = PdfElementGenerator.createTableHeaderPhrase(string.Empty); } this.document.Add(PdfElementGenerator.createSectionFrameTable(dataListTable, false)); break; } } }
protected override void GenerateAlarms() { IDictionary <string, string[]> alarmDataContents = this.reportdataGenerator.GetAlarmRowContents(this.device); string[] highRowContents = alarmDataContents["highRowContents"]; string[] lowRowContents = alarmDataContents["lowRowContents"]; string[] a1RowContents = alarmDataContents["a1RowContents"]; string[] a2RowContents = alarmDataContents["a2RowContents"]; string[] a3RowContents = alarmDataContents["a3RowContents"]; string[] a4RowContents = alarmDataContents["a4RowContents"]; string[] a5RowContents = alarmDataContents["a5RowContents"]; string[] a6RowContents = alarmDataContents["a6RowContents"]; int totalRows = 6; this.document.Add(PdfElementGenerator.createSectionTitleParagraph(this.reportdataGenerator.GetAlarmSectionTitle(this.device))); PdfPTable alarmTable = PdfElementGenerator.createTable(new float[] { 0.18f, 0.19f, 0.17f, 0.10f, 0.23f, 0.13f }, true, false); if (this.device.AlarmMode == 0) { PdfElementGenerator.AddEmptyRowToTable(alarmTable, false, true, false); alarmTable.Rows[0].GetCells()[0].FixedHeight = 40f; } else if (this.device.AlarmMode == 1) { PdfPCell[] tableHeaderRowCells = PdfElementGenerator.AddEmptyRowToTable(alarmTable, false, true, false); tableHeaderRowCells[0].Phrase = PdfElementGenerator.createTableHeaderPhrase("Alarm Zones"); tableHeaderRowCells[1].Phrase = PdfElementGenerator.createTableHeaderPhrase("Alarm Delay"); tableHeaderRowCells[2].Phrase = PdfElementGenerator.createTableHeaderPhrase("Total Time"); tableHeaderRowCells[3].Phrase = PdfElementGenerator.createTableHeaderPhrase("Events"); tableHeaderRowCells[4].Phrase = PdfElementGenerator.createTableHeaderPhrase("First Triggered"); tableHeaderRowCells[5].Phrase = PdfElementGenerator.createTableHeaderPhrase("Alarm Status"); tableHeaderRowCells[5].HorizontalAlignment = Element.ALIGN_RIGHT; if (reportdataGenerator.IsStringArrayNotEmpty(highRowContents)) { PdfPCell[] firstRowCells = PdfElementGenerator.AddEmptyRowToTable(alarmTable, false, true, false); PdfElementGenerator.SetTableCellContentValue(firstRowCells, highRowContents); totalRows--; } if (reportdataGenerator.IsStringArrayNotEmpty(lowRowContents)) { PdfPCell[] secondRowCells = PdfElementGenerator.AddEmptyRowToTable(alarmTable, false, true, false); PdfElementGenerator.SetTableCellContentValue(secondRowCells, lowRowContents); totalRows--; } } else if (this.device.AlarmMode == 2) { PdfPCell[] tableHeaderRowCells = PdfElementGenerator.AddEmptyRowToTable(alarmTable, false, true, false); tableHeaderRowCells[0].Phrase = PdfElementGenerator.createTableHeaderPhrase("Alarm Zones"); tableHeaderRowCells[1].Phrase = PdfElementGenerator.createTableHeaderPhrase("Alarm Delay"); tableHeaderRowCells[2].Phrase = PdfElementGenerator.createTableHeaderPhrase("Total Time"); tableHeaderRowCells[3].Phrase = PdfElementGenerator.createTableHeaderPhrase("Events"); tableHeaderRowCells[4].Phrase = PdfElementGenerator.createTableHeaderPhrase("First Triggered"); tableHeaderRowCells[5].Phrase = PdfElementGenerator.createTableHeaderPhrase("Alarm Status"); tableHeaderRowCells[5].HorizontalAlignment = Element.ALIGN_RIGHT; if (reportdataGenerator.IsStringArrayNotEmpty(a1RowContents)) { PdfPCell[] firstRowCells = PdfElementGenerator.AddEmptyRowToTable(alarmTable, false, true, true); PdfElementGenerator.SetTableCellContentValue(firstRowCells, a1RowContents); totalRows--; } if (reportdataGenerator.IsStringArrayNotEmpty(a2RowContents)) { PdfPCell[] secondRowCells = PdfElementGenerator.AddEmptyRowToTable(alarmTable, false, true, true); PdfElementGenerator.SetTableCellContentValue(secondRowCells, a2RowContents); totalRows--; } if (reportdataGenerator.IsStringArrayNotEmpty(a3RowContents)) { PdfPCell[] thirdRowCells = PdfElementGenerator.AddEmptyRowToTable(alarmTable, false, true, true); PdfElementGenerator.SetTableCellContentValue(thirdRowCells, a3RowContents); totalRows--; } if (reportdataGenerator.IsStringArrayNotEmpty(a4RowContents)) { PdfPCell[] fourthRowCells = PdfElementGenerator.AddEmptyRowToTable(alarmTable, false, true, true); PdfElementGenerator.SetTableCellContentValue(fourthRowCells, a4RowContents); totalRows--; } if (reportdataGenerator.IsStringArrayNotEmpty(a5RowContents)) { PdfPCell[] fifthRowCells = PdfElementGenerator.AddEmptyRowToTable(alarmTable, false, true, true); PdfElementGenerator.SetTableCellContentValue(fifthRowCells, a5RowContents); totalRows--; } if (reportdataGenerator.IsStringArrayNotEmpty(a6RowContents)) { PdfPCell[] sixthRowCells = PdfElementGenerator.AddEmptyRowToTable(alarmTable, false, true, true); PdfElementGenerator.SetTableCellContentValue(sixthRowCells, a6RowContents); totalRows--; } } for (int i = 0; i < totalRows; i++) { string[] emptyRow = new string[6] { " ", " ", " ", " ", " ", " " }; PdfPCell[] emptyRowCells = PdfElementGenerator.AddEmptyRowToTable(alarmTable, false, true, true); PdfElementGenerator.SetTableCellContentValue(emptyRowCells, emptyRow); } this.document.Add(PdfElementGenerator.createSectionFrameTable(alarmTable, true)); PdfElementGenerator.AddEmptyParagraphToDocument(this.document, this.sectionMargin); }