コード例 #1
0
ファイル: Report.cs プロジェクト: marlonnn/VPI
        private void GenerateGeneralPdf(GeneralTest generalTest, List<Board> boards, bool isUserReport)
        {
            BaseFont baseFont;
            try
            {
                baseFont = BaseFont.CreateFont(fontFile, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
                PdfReader rdr = new PdfReader(Util.GetBasePath() + generalTempletFile);
                PdfStamper stamper;
                string pdfFile;
                if (isUserReport)
                {
                    pdfFile = GetUsrGeneralPdfName(generalTest.FinishReason,generalTest.Key, boards[0].GeneralTestSN, boards[0].IsGeneralTestPassed);
                }
                else
                    pdfFile = GetDiagnoseGeneralPdfName(generalTest.Key);

                stamper = new PdfStamper(rdr, new System.IO.FileStream(pdfFile, System.IO.FileMode.Create));
                stamper.AcroFields.AddSubstitutionFont(baseFont);

                if (isUserReport)
                {
                    SetHeadFieldValue(stamper, "pageHead", generalUserReportTitle);
                    SetFieldValue(stamper, "Head", generalUserReportTitle);
                }
                else
                {
                    if (generalMessageLogFile.GetFileName(generalTest.Key) != null)
                        SetFieldValue(stamper, "pageHead", Util.GetMD5(generalMessageLogFile.GetFileName(generalTest.Key)));
                    else
                        SetFieldValue(stamper, "pageHead", generalDiagReportTitle);
                    SetHeadFieldValue(stamper, "Head", generalDiagReportTitle);
                }
                stamper.AcroFields.SetFieldProperty("Head", "textsize", 20.0f, null);
                stamper.AcroFields.SetFieldProperty("Head", "textsize", 20.0f, null);

                SetHeadFieldValue(stamper, "ver", string.Format("{0} Build:{1}", version.Ver, version.Build));
                SetHeadFieldValue(stamper, "data", generalTest.Key);
                SetHeadFieldValue(stamper, "gDate", Util.FormateDateTime2(DateTime.Now));

                SetFieldValue(stamper, "tester", generalTest.Tester);
                SetFieldValue(stamper, "startTime", Util.FormateDateTime(generalTest.StartTime));
                SetFieldValue(stamper, "planRunningTime",
                    string.Format("{0}/{1}", Util.FormateDurationSecondsMaxHour(generalTest.PlanRunningTime),
                    Util.FormateDurationSecondsMaxHour(generalTest.RunningTime)));
                SetFieldValue(stamper, "finishReason", generalTest.FinishReason);

                string names = "";
                string sns = "";
                string passes = "";
                bool isPass = true;
                for (int i = 0; i < boards.Count; i++)
                {
                    names += boards[i].EqName + "\n";
                    if (boards[i].GeneralTestSN != "")
                        sns += boards[i].GeneralTestSN + "\n";
                    else
                        sns += "非待测" + "\n";
                    passes += boards[i].IsGeneralTestPassed ? "PASS\n" : "FAIL\n";
                    isPass &= boards[i].IsGeneralTestPassed;
                }
                names += endString;
                sns += endString;
                passes += endString;
                SetFieldValue(stamper, "boardName", names);
                SetFieldValue(stamper, "boardSn", sns);
                SetFieldValue(stamper, "isBoardPass", passes);

                if (isPass)
                {
                    SetFieldValue(stamper, "IsPass", "PASS");
                    stamper.AcroFields.SetFieldProperty("IsPass", "textsize", 38.0f, null);
                    BaseColor bc = new BaseColor(00,64,00);//DarkGreen
                    stamper.AcroFields.SetFieldProperty("IsPass", "textcolor", bc, null);
                }
                else
                {
                    SetFieldValue(stamper, "IsPass", "FAIL");
                    stamper.AcroFields.SetFieldProperty("IsPass", "textsize", 38.0f, null);
                    stamper.AcroFields.SetFieldProperty("IsPass", "textcolor", BaseColor.RED, null);
                }
                stamper.FormFlattening = true;//不允许编辑
                stamper.Close();
                rdr.Close();
            }
            catch (Exception ee)
            {
                LogHelper.GetLogger<Report>().Error(ee.Message);
                LogHelper.GetLogger<Report>().Error(ee.StackTrace);
                //MessageBox.Show(ee.Message);
            }
        }
コード例 #2
0
ファイル: DbADO.cs プロジェクト: marlonnn/VPI
        public void Save2DB(GeneralTest generalTest)
        {
            TMain main = new TMain();
            main.Key = generalTest.Key;
            main.Start = generalTest.StartTime;
            main.RunningTime = generalTest.RunningTime;
            main.Tester = generalTest.Tester;
            main.TestType = TEST_TYPE_GENERAL;
            main.IsPass = generalTest.IsPass() ? TEST_RESULT_PASS : TEST_RESULT_FAIL;
            main.Note = generalTest.FinishReason;
            mainADO.Insert(main);

            List<Board> boards = generalTest.Cabinet.GetGeneralTestBoardsList();
            foreach (var b in boards)
            {
                TBoard board = new TBoard();
                board.Id = Summer.System.Util.DbHelper.GenerateKey();
                board.Key = generalTest.Key;
                board.Name = b.EqName;
                board.Type = b.BoardType;
                board.Component = ""; //综合测试没有组件,所以设置为空
                board.Sn = b.GeneralTestSN;
                board.IsPass = b.IsGeneralTestPassed ? TEST_RESULT_PASS : TEST_RESULT_FAIL;
                boardADO.Insert(board);
            }
        }
コード例 #3
0
ファイル: Report.cs プロジェクト: marlonnn/VPI
 public void GenerateUserPdf(GeneralTest generalTest)
 {
     //生成用户报告
     List<Board> boards = generalTest.Cabinet.GetGeneralTestBoardsList();
     List<Board> allboards = generalTest.Cabinet.GetAllGeneralTestBoardsList();
     foreach (var b in boards)
     {
         List<Board> tmpBoards = new List<Board>();
         tmpBoards.Add(b);
         GenerateGeneralPdf(generalTest, tmpBoards,  true);
     }
     //生成诊断报告(诊断报告不包含log文件,因为log文件比较大,包含后压缩时间太长)
     //GenerateGeneralPdf(generalTest, boards, generalMessageLogFile.GetFileName(generalTest.Key), false);
     GenerateGeneralPdf(generalTest, allboards,  false);
 }