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; }
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. "); }