Example #1
0
        public FlawForm(int PointIndex)
        {
            InitializeComponent();
            flaws = MapWindowVariable.FlawPieces[MapWindowVariable.CurrentPiece - 1][PointIndex];
            pb = new PictureBox[PxPVariable.JobInfo.NumberOfStations];

            SrcImg = new Image[PxPVariable.JobInfo.NumberOfStations];
            pb_ratio = new double[PxPVariable.JobInfo.NumberOfStations];
        }
        public SingleFlawControl(FlawInfoAddPriority info)
        {
            InitializeComponent();

            flaw = info;
            lbFlawID.Text += info.FlawID.ToString();
            lbCoordinate = new Label();
            lbCoordinate.BackColor = Color.LightSkyBlue;
            lbCoordinate.AutoSize = true;
            lbCoordinate.Visible = false;

            pb = new PictureBox[PxPVariable.JobInfo.NumberOfStations];
            SrcImg = new Image[PxPVariable.JobInfo.NumberOfStations];
            dRatio = new double[PxPVariable.JobInfo.NumberOfStations];

            for (int i = 0; i < PxPVariable.JobInfo.NumberOfStations; i++)
            {
                tabFlawControl.TabPages.Add("S" + ((i + 1).ToString()));
                pb[i] = new PictureBox();
                pb[i].SizeMode = PictureBoxSizeMode.Zoom;
                pb[i].Location = new Point(0, 0);
                pb[i].BackColor = Color.Transparent;
                pb[i].MouseDown += new MouseEventHandler(pb_MouseDown);
                pb[i].MouseMove += new MouseEventHandler(pb_MouseMove);
                pb[i].MouseUp += new MouseEventHandler(pb_MouseUp);
                pb[i].MouseLeave += new EventHandler(pb_MouseLeave);
                pb[i].MouseClick += new MouseEventHandler(pb_Click);
                pb[i].MouseDoubleClick += new MouseEventHandler(pb_MouseDoubleClick);
                tabFlawControl.TabPages[i].AutoScroll = true;
                tabFlawControl.TabPages[i].Controls.Add(pb[i]);
                tabFlawControl.TabPages[i].BackColor = Color.Transparent;
            }

            foreach (IImageInfo image in info.Images)
            {
                SrcImg[image.Station] = image.Image;
                dRatio[image.Station] = Init_Image(image.Image, tabFlawControl.TabPages[image.Station], pb[image.Station]);
            }

            this.Tag = info.FlawID;
        }
Example #3
0
        public void OnFlaws(IList<IFlawInfo> flaws)
        {
            //Debug
            DebugTool.WriteLog("PxPTab.cs", "OnFlaws() entry. ");

            try
            {

                // Deal flaws  extend other data
                IList<FlawInfoAddPriority> temp = new List<FlawInfoAddPriority>();
                double ConverArea = Convert.ToDouble(PxPVariable.UnitsData.Tables["unit"].Rows[PxPVariable.UnitsKeys["Flaw List Area"]].ItemArray[2].ToString());
                double ConverCD = Convert.ToDouble(PxPVariable.UnitsData.Tables["unit"].Rows[PxPVariable.UnitsKeys["Flaw List CD"]].ItemArray[2].ToString());
                double ConverLength = Convert.ToDouble(PxPVariable.UnitsData.Tables["unit"].Rows[PxPVariable.UnitsKeys["Flaw List Height"]].ItemArray[2].ToString());
                double ConverMD = Convert.ToDouble(PxPVariable.UnitsData.Tables["unit"].Rows[PxPVariable.UnitsKeys["Flaw List MD"]].ItemArray[2].ToString());
                double ConverWidth = Convert.ToDouble(PxPVariable.UnitsData.Tables["unit"].Rows[PxPVariable.UnitsKeys["Flaw List Width"]].ItemArray[2].ToString());
                foreach (var i in flaws)
                {
                    FlawInfoAddPriority f = new FlawInfoAddPriority();
                    f.Area = (Convert.ToDouble(i.Area) * ConverArea).ToString("0.######");
                    f.CD = Math.Round(i.CD * ConverCD, 2);
                    f.FlawClass = i.FlawClass;
                    f.FlawID = i.FlawID;
                    f.FlawType = i.FlawType;
                    f.Images = i.Images;
                    f.LeftEdge = i.LeftEdge ;
                    f.Length = i.Length * ConverLength;
                    f.MD = Math.Round(i.MD * ConverMD, 2);
                    f.RMD = Math.Round(i.MD * ConverMD - PxPVariable.CurrentCutPosition, 2);
                    f.RCD = Math.Round(i.CD * ConverCD - PxPVariable.CurrentCutPosition, 2);
                    f.RightEdge = i.RightEdge ;
                    f.Width = Math.Round(i.Width * ConverWidth, 4);

                    //Keep origin value
                    f.ORCD = Math.Round(i.CD - PxPVariable.CurrentCutPosition, 6);
                    f.ORMD = Math.Round(i.MD - PxPVariable.CurrentCutPosition, 6);
                    f.OArea = i.Area.ToString("0.######");
                    f.OCD = i.CD;
                    f.OLength = i.Length;
                    f.OMD =i.MD;
                    f.OWidth =i.Width;
                    //特別處理Priority
                    int opv;
                    if (PxPVariable.SeverityInfo.Count > 0)
                        f.Priority = PxPVariable.SeverityInfo[0].Flaws.TryGetValue(f.FlawType, out opv) ? opv : 0;
                    else
                        f.Priority = 0;

                    //特別處理Image 因為讀取歷史資料
                    //SystemVariable.IsReadHistory = true;
                    if (SystemVariable.IsReadHistory)
                    {
                        bool blnShowImg = false;
                        int intW = 0;
                        int intH = 0;
                        using (SqlConnection cn = new SqlConnection(SystemVariable.DBConnectString))
                        {
                            cn.Open();
                            string QueryStr = "Select iImage From dbo.Jobs T1, dbo.Flaw T2, dbo.Image T3 Where T1.klKey = T2.klJobKey AND T2.pklFlawKey = T3.klFlawKey AND T1.JobID = @JobID AND T2.lFlawId = @FlawID";
                            SqlCommand cmd = new SqlCommand(QueryStr, cn);
                            cmd.Parameters.AddWithValue("@JobID", PxPVariable.JobInfo.JobID);
                            cmd.Parameters.AddWithValue("@FlawID", i.FlawID);
                            SqlDataReader sd = cmd.ExecuteReader();
                            sd.Read();
                            byte[] images = (Byte[])sd["iImage"];
                            //////////////////////////////////////////////////////////////////////////////////
                            intW = images[0] + images[1] * 256;
                            intH = images[4] + images[5] * 256;

                            if (intW == 0 & intH == 0)
                            {
                                intW = 1;
                                intH = 1;
                                blnShowImg = false;
                            }
                            else
                            {
                                blnShowImg = true;
                            }
                            Bitmap bmpShowImg = new Bitmap(intW, intH);
                            ///////
                            if (blnShowImg)
                            {
                                bmpShowImg = ToGrayBitmap(images, intW, intH);
                            }
                            ///////

                            IImageInfo tmpImg = new ImageInfo(bmpShowImg, 0);
                            f.Images.Add(tmpImg);
                        }
                    }
                    else
                    {
                        f.Images = i.Images;
                    }
                    temp.Add(f);
                    /////////////////////////////////////////////////////////////////

                }

                MapWindowVariable.Flaws.AddRange(temp);
            }
            catch (Exception ex)
            {
                MsgLog.Log(e_LogID.MessageLog, e_LogVisibility.GeneralError, "OnFlaws() Error!" + ex.Message, null, 0);
                DebugTool.WriteLog("PxPTab.cs", "*** OnFlaws() Errors:" + ex.Message, MapWindowVariable.FlawPieces.Count.ToString(), MapWindowVariable.CurrentPiece.ToString());
            }
            PxPThreadStatus.IsOnFlaws = true;
            PxPThreadEvent.Set();

            //Debug
            DebugTool.WriteLog("PxPTab.cs", "OnFlaws() complete. ");
        }