Пример #1
0
        //========================================================================
        private void CheckerDone(object sender, RunWorkerCompletedEventArgs e)
        {
            if (e.Result != null)
            {
                session.Disconnect();
                MessageBox.Show("Error Running File\n" + (string)e.Result, "Run Report", MessageBoxButtons.OK, MessageBoxIcon.Error);
                Close();
                return;
            }

            StatusUpdate(10, "Report Finished\nReading Results");
            int repSeq = session.GetReportSequence(specfile.name, time);

            if (repSeq == -1)
            {
                MessageBox.Show("Couldn't Find Finished Report Sequence!");
                Close();
                return;
            }

            List <SymFile> reports  = new List <SymFile>();
            List <string>  contents = new List <string>();

            reports.Add(new SymFile(session.server, session.sym, repSeq.ToString(), DateTime.Now, 0, SymFile.Type.REPORT));
            string listing = session.FileRead(reports[0]);

            reports[0].sequence = repSeq;
            reports[0].pages    = 1;
            reports[0].title    = "Batch Output for REPWRITER";
            contents.Add(listing.Replace("\n", "\r\n"));

            Regex repReg = new Regex(@"Seq:\s+([0-9]{6})\s+Pages:\s+([0-9]+)\s+Title:\s+([^\n]+)\n");
            Match match  = repReg.Match(listing);

            while (match.Success)
            {
                listing = listing.Replace(match.Value, "");
                SymFile currRep = new SymFile(session.server, session.sym, (int.Parse(match.Groups[1].Value)).ToString(), DateTime.Now, 0, SymFile.Type.REPORT);
                currRep.sequence = int.Parse(match.Groups[1].Value);
                currRep.pages    = int.Parse(match.Groups[2].Value);
                currRep.title    = match.Groups[3].Value;
                reports.Add(currRep);
                contents.Add(session.FileRead(currRep).Replace("\n", "\r\n"));
                //MessageBox.Show('\"' + match.Groups[1].Value + "\"\n\"" + match.Groups[2].Value + "\"\n\"" + match.Groups[3].Value + '\"');
                match = repReg.Match(listing);
            }
            session.Disconnect();

            frmReport viewer = new frmReport(specfile.sym, specfile.name, reports, contents, server, originalInst, false);

            viewer.Show();
            Close();
        }