//--------------------------------------------------------------------// // M e t h o d // // r e p o r t H e a d e r // //--------------------------------------------------------------------// // // // Write report header. // // // //--------------------------------------------------------------------// private static void reportHeader( ToolPrnAnalyse.eInfoType indxInfoType, ReportCore.eRptFileFmt rptFileFmt, Object writer, String prnFilename, Int64 fileSize, Int32 reportSize) { Int32 maxLineLen = 0; String title = ""; if (indxInfoType == ToolPrnAnalyse.eInfoType.Analysis) { title = "*** Prn Analysis ***"; maxLineLen = PrnParseConstants.cRptA_colMax_Offset + PrnParseConstants.cRptA_colMax_Type + PrnParseConstants.cRptA_colMax_Seq + PrnParseConstants.cRptA_colMax_Desc + (PrnParseConstants.cColSeparatorLen * 3) - 12; } else if (indxInfoType == ToolPrnAnalyse.eInfoType.Content) { title = "*** Prn Content ***"; maxLineLen = PrnParseConstants.cRptC_colMax_Offset + PrnParseConstants.cRptC_colMax_Hex + PrnParseConstants.cRptC_colMax_Text + (PrnParseConstants.cColSeparatorLen * 2) - 12; } else if (indxInfoType == ToolPrnAnalyse.eInfoType.Statistics) { title = "*** Prn Analysis Statistics ***"; maxLineLen = PrnParseConstants.cRptS_colMax_Seq + PrnParseConstants.cRptS_colMax_Desc + PrnParseConstants.cRptS_colMax_CtP + PrnParseConstants.cRptS_colMax_CtE + PrnParseConstants.cRptS_colMax_CtT + (PrnParseConstants.cColSeparatorLen * 4) - 12; } //----------------------------------------------------------------// // // // Write out the title. // // // //----------------------------------------------------------------// ReportCore.hddrTitle(writer, rptFileFmt, false, title); //----------------------------------------------------------------// // // // Open the table and Write Write out the date, time, input file // // identity and size, and count of report rows. // // // //----------------------------------------------------------------// ReportCore.tableHddrPair(writer, rptFileFmt); ReportCore.tableRowPair(writer, rptFileFmt, "Date_time", DateTime.Now.ToString(), _colSpanNone, _colSpanNone, _maxSizeNameTag, maxLineLen, _flagNone, _flagNone, _flagNone); ReportCore.tableRowPair(writer, rptFileFmt, "Filename", prnFilename, _colSpanNone, _colSpanNone, _maxSizeNameTag, maxLineLen, _flagNone, _flagNone, _flagNone); ReportCore.tableRowPair(writer, rptFileFmt, "Filesize", fileSize.ToString() + " bytes", _colSpanNone, _colSpanNone, _maxSizeNameTag, maxLineLen, _flagNone, _flagNone, _flagNone); ReportCore.tableRowPair(writer, rptFileFmt, "Report_size", reportSize + " rows (excluding header and trailer lines)", _colSpanNone, _colSpanNone, _maxSizeNameTag, maxLineLen, _flagNone, _flagNone, _flagNone); ReportCore.tableClose(writer, rptFileFmt); }
//--------------------------------------------------------------------// // F i e l d s // // Class variables. // // // //--------------------------------------------------------------------// //--------------------------------------------------------------------// // M e t h o d // // g e n e r a t e // //--------------------------------------------------------------------// // // // Generate the report. // // // //--------------------------------------------------------------------// public static void generate( ToolPrnAnalyse.eInfoType indxInfoType, ReportCore.eRptFileFmt rptFileFmt, DataTable table, String prnFilename, Int64 fileSize, Boolean flagOffsetHex, PrnParseOptions options) { Object stream = null; Object writer = null; Boolean OK = false; Int32 reportSize; String fileExt; String saveFilename = null; if (rptFileFmt == ReportCore.eRptFileFmt.html) { fileExt = "html"; } else if (rptFileFmt == ReportCore.eRptFileFmt.xml) { fileExt = "xml"; } else { fileExt = "txt"; } if (indxInfoType == ToolPrnAnalyse.eInfoType.Analysis) { saveFilename = prnFilename + "_analysis." + fileExt; OK = ReportCore.docOpen(rptFileFmt, ref saveFilename, ref stream, ref writer); if (OK) { Int32 ctClrMapRowTypes = PrnParseRowTypes.getCount(); Boolean useClr = options.FlagClrMapUseClr; reportSize = table.Rows.Count; if (useClr) { String[] rowClasses = new String[ctClrMapRowTypes]; String[] rowClrBack = new String[ctClrMapRowTypes]; String[] rowClrFore = new String[ctClrMapRowTypes]; getRowColourStyleData(options, ref rowClasses, ref rowClrBack, ref rowClrFore); ReportCore.docInitialise(rptFileFmt, writer, true, false, ctClrMapRowTypes, rowClasses, rowClrBack, rowClrFore); } else { ReportCore.docInitialise(rptFileFmt, writer, true, false, 0, null, null, null); } reportHeader(indxInfoType, rptFileFmt, writer, prnFilename, fileSize, reportSize); reportBodyAnalysis(rptFileFmt, writer, table, flagOffsetHex); ReportCore.docFinalise(rptFileFmt, writer); ReportCore.docClose(rptFileFmt, stream, writer); } } else if (indxInfoType == ToolPrnAnalyse.eInfoType.Content) { saveFilename = prnFilename + "_content." + fileExt; OK = ReportCore.docOpen(rptFileFmt, ref saveFilename, ref stream, ref writer); if (OK) { reportSize = table.Rows.Count; ReportCore.docInitialise(rptFileFmt, writer, true, false, 0, null, null, null); reportHeader(indxInfoType, rptFileFmt, writer, prnFilename, fileSize, reportSize); reportBodyContent(rptFileFmt, writer, table, flagOffsetHex); ReportCore.docFinalise(rptFileFmt, writer); ReportCore.docClose(rptFileFmt, stream, writer); } } else if (indxInfoType == ToolPrnAnalyse.eInfoType.Statistics) { saveFilename = prnFilename + "_statistics." + fileExt; OK = ReportCore.docOpen(rptFileFmt, ref saveFilename, ref stream, ref writer); if (OK) { reportSize = table.Rows.Count; ReportCore.docInitialise(rptFileFmt, writer, true, false, 0, null, null, null); reportHeader(indxInfoType, rptFileFmt, writer, prnFilename, fileSize, reportSize); reportBodyStatistics(rptFileFmt, writer, table); ReportCore.docFinalise(rptFileFmt, writer); ReportCore.docClose(rptFileFmt, stream, writer); } } }