Пример #1
0
        //--------------------------------------------------------------------//
        //                                                        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);
        }
Пример #2
0
        //--------------------------------------------------------------------//
        //                                                        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);
                }
            }
        }