示例#1
0
        // 載入 /CPxP/conf/setup.xml 或自訂的設定檔
        // 如果該變數會受 Conf 檔影響, 請記得在此補上
        internal static void LoadConfig()
        {
            //Debug
            DebugTool.WriteLog("SystemVariable.cs", "LoadConfig() # 載入 /CPxP/conf/setup.xml ");

            XDocument XConf = GetConfig();
            XElement MapVariable = XConf.Element("Config").Element("MapVariable");
            try
            {
                PxPVariable.ImgRowsSet = int.Parse(MapVariable.Element("ImgRowsSet").Value);
                PxPVariable.ImgColsSet = int.Parse(MapVariable.Element("ImgColsSet").Value);
                MapWindowVariable.MapProportion = int.Parse(MapVariable.Element("MapProportion").Value);
                MapWindowVariable.ShowGridSet = (int.Parse(MapVariable.Element("ShowGridSet").Value) == 1) ? true : false;
                MapWindowVariable.MapGridSet = int.Parse(MapVariable.Element("MapGridSet").Value);
                MapWindowVariable.MapMDSet = double.Parse(MapVariable.Element("MapMDSet").Value);
                MapWindowVariable.MapCDSet = double.Parse(MapVariable.Element("MapCDSet").Value);
                MapWindowVariable.SeriesSet = int.Parse(MapVariable.Element("SeriesSet").Value);
                MapWindowVariable.BottomAxe = int.Parse(MapVariable.Element("BottomAxe").Value);
                MapWindowVariable.MDInver = int.Parse(MapVariable.Element("MDInver").Value);
                MapWindowVariable.CDInver = int.Parse(MapVariable.Element("CDInver").Value);
                MapWindowVariable.ShowFlag = int.Parse(MapVariable.Element("ShowFlag").Value);
                MapWindowVariable.LastMapCDConvertion = double.Parse(MapVariable.Element("LastMapCDConvertion").Value);
                MapWindowVariable.LastMapMDConvertion = double.Parse(MapVariable.Element("LastMapMDConvertion").Value);

                PxPVariable.PageSize = PxPVariable.ImgRowsSet * PxPVariable.ImgColsSet;
            }
            catch (Exception ex)
            {
                PxPVariable.ImgRowsSet = 2;
                PxPVariable.ImgColsSet = 2;
                MapWindowVariable.MapProportion = 0;
                MapWindowVariable.ShowGridSet = true;
                MapWindowVariable.MapGridSet = 1;
                MapWindowVariable.MapMDSet = 3;
                MapWindowVariable.MapCDSet = 3;
                MapWindowVariable.SeriesSet = 0;
                MapWindowVariable.BottomAxe = 0;
                MapWindowVariable.MDInver = 0;
                MapWindowVariable.CDInver = 0;
                MapWindowVariable.LastMapCDConvertion = 1.00;
                MapWindowVariable.LastMapMDConvertion = 1.00;

                //Debug
                DebugTool.WriteLog("SystemVariable.cs", "*** LoadConfig() # 載入 /CPxP/conf/setup.xml 錯誤 ");
            }

            IEnumerable<XElement> xMapFlawTypeName = XConf.Element("Config").Element("MapVariable").Elements("FlawTypeName");
            try
            {
                PxPVariable.FlawTypeName.Clear();
                foreach (XElement el in xMapFlawTypeName)
                {
                    FlawTypeNameExtend tmp = new FlawTypeNameExtend();
                    tmp.Display = (int.Parse(el.Element("Display").Value) == 1) ? true : false;
                    tmp.Color = el.Element("Color").Value.ToString();
                    tmp.Name = el.Element("Name").Value.ToString();
                    tmp.Shape = ((Shape)Enum.Parse(typeof(Shape), el.Element("Shape").Value.ToString(), false)).ToGraphic();

                    tmp.FlawType = int.Parse(el.Element("FlawType").Value.ToString());
                    PxPVariable.FlawTypeName.Add(tmp);
                }
            }
            catch (Exception ex)
            {
                DebugTool.WriteLog("SystemVariable.cs", "*** Load Roi mode Error:" + ex.Message, MapWindowVariable.FlawPieces.Count.ToString(), MapWindowVariable.CurrentPiece.ToString());
            }
            //Debug
            DebugTool.WriteLog("SystemVariable.cs", "LoadConfig() # 載入 /CPxP/conf/setup.xml 完畢 ");
        }
示例#2
0
        // 載入所有物件預設值
        void InitAllObject()
        {
            // 組態檔繫結
            bsConfList.DataSource = GetConfList();
            cboxConfList.DataSource = bsConfList.DataSource;
            cboxConfList.SelectedItem = SystemVariable.ConfigFileName.ToString().Substring(0, SystemVariable.ConfigFileName.ToString().LastIndexOf("."));

            ndImgCols.Value = PxPVariable.ImgColsSet;
            ndImgRows.Value = PxPVariable.ImgRowsSet;

            cboxMapSize.SelectedIndex = MapWindowVariable.MapProportion;  // 紀錄 Map 比例 0->1:1, 2->2:1, 2->4:3, 3->3:4, 4->16:9

            rbMapGridOff.Checked = !MapWindowVariable.ShowGridSet;
            rbMapGridOn.Checked = MapWindowVariable.ShowGridSet;
            switch (MapWindowVariable.SeriesSet)
            {
                case 0:  // 形伏
                    rbSharp.Checked = true;
                    break;
                case 1:  // 字母
                    rbLetter.Checked = true;
                    break;
            }

            switch (MapWindowVariable.MapGridSet)
            {
                case 0:  // EachCellSize
                    rbFixCellSize.Checked = true;
                    tboxFixSizeCD.Text = MapWindowVariable.MapCDSet.ToString();
                    tboxFixSizeMD.Text = MapWindowVariable.MapMDSet.ToString();
                    tboxCountSizeCD.Text = "";
                    tboxCountSizeMD.Text = "";
                    break;

                case 1:  // EachCellCount
                    rbCountSize.Checked = true;
                    tboxFixSizeCD.Text = "";
                    tboxFixSizeMD.Text = "";
                    tboxCountSizeCD.Text = MapWindowVariable.MapCDSet.ToString();
                    tboxCountSizeMD.Text = MapWindowVariable.MapMDSet.ToString();
                    break;
            }

            tboxFixSizeCD.Enabled = rbFixCellSize.Checked;
            tboxFixSizeMD.Enabled = rbFixCellSize.Checked;
            tboxCountSizeCD.Enabled = rbCountSize.Checked;
            tboxCountSizeMD.Enabled = rbCountSize.Checked;

            cboxButtomAxe.SelectedIndex = MapWindowVariable.BottomAxe;

            cbCDInverse.Checked = (MapWindowVariable.CDInver == 1) ? true : false;
            cbMDInverse.Checked = (MapWindowVariable.MDInver == 1) ? true : false;

            // Change Specify Cell Size Unit Label
            lbSCCD.Text = PxPVariable.UnitsData.Tables["unit"].Rows[PxPVariable.UnitsKeys["Flaw Map CD"]].ItemArray[1].ToString();
            lbSCMD.Text = PxPVariable.UnitsData.Tables["unit"].Rows[PxPVariable.UnitsKeys["Flaw Map MD"]].ItemArray[1].ToString();

            // Add List here and binding to datagridvew
            if (PxPVariable.FlawTypeName != null && PxPVariable.FlawTypeName.Count > 0)
            {
                TmpFlawTypeName = new List<FlawTypeNameExtend>();
                foreach (FlawTypeNameExtend ft in PxPVariable.FlawTypeName)
                {
                    FlawTypeNameExtend tmp = new FlawTypeNameExtend();
                    tmp.Color = ft.Color;
                    tmp.FlawType = ft.FlawType;
                    tmp.Name = ft.Name;
                    tmp.Shape = ft.Shape;
                    tmp.Display = ft.Display;
                    tmp.Count = ft.Count;
                    tmp.JobNum = ft.JobNum;
                    tmp.DoffNum = ft.DoffNum;
                    TmpFlawTypeName.Add(tmp);
                }

                bsFlawTypeName.DataSource = TmpFlawTypeName;
                gvSeries.DataSource = bsFlawTypeName;
                gvSeries.AutoGenerateColumns = false;

                foreach (DoffGridColumns column in MapWindowVariable.DoffTypeGridSetup)
                {
                    gvSeries.Columns[column.ColumnName].SortMode = DataGridViewColumnSortMode.Automatic;
                    gvSeries.Columns[column.ColumnName].HeaderText = column.HeaderText;
                    gvSeries.Columns[column.ColumnName].DisplayIndex = column.Index;
                    gvSeries.Columns[column.ColumnName].Width = column.Width;

                    if (column.ColumnName == "Shape")
                    {
                        DataGridViewComboBoxColumn cboxShape = new DataGridViewComboBoxColumn();
                        cboxShape.DataPropertyName = "Shape";
                        cboxShape.HeaderText = column.HeaderText;
                        cboxShape.DisplayIndex = column.Index;
                        cboxShape.Width = column.Width;
                        cboxShape.DataSource = EnumHelper.ToList(typeof(Shape));
                        cboxShape.DisplayMember = "Value";
                        cboxShape.ValueMember = "Value";

                        this.gvSeries.Columns.Add(cboxShape);
                     }
                }
                // Display and Change Order
                gvSeries.Columns["FlawType"].DisplayIndex = 0;
                gvSeries.Columns["Display"].Visible = false;
                gvSeries.Columns["Count"].Visible = false;
                gvSeries.Columns["DoffNum"].Visible = false;
                gvSeries.Columns["Shape"].Visible = false;
                gvSeries.Columns["JobNum"].Visible = false;
            }
        }
        // 載入 /CPxP/conf/setup.xml 或自訂的設定檔
        // 如果該變數會受 Conf 檔影響, 請記得在此補上
        internal static void LoadConfig()
        {
            XDocument XConf = GetConfig();
            XElement MapVariable = XConf.Element("Config").Element("MapVariable");
            try
            {
                PxPVariable.ImgRowsSet = int.Parse(MapVariable.Element("ImgRowsSet").Value);
                PxPVariable.ImgColsSet = int.Parse(MapVariable.Element("ImgColsSet").Value);
                MapWindowVariable.MapProportion = int.Parse(MapVariable.Element("MapProportion").Value);
                MapWindowVariable.ShowGridSet = (int.Parse(MapVariable.Element("ShowGridSet").Value) == 1) ? true : false;
                MapWindowVariable.MapGridSet = int.Parse(MapVariable.Element("MapGridSet").Value);
                MapWindowVariable.MapMDSet = double.Parse(MapVariable.Element("MapMDSet").Value);
                MapWindowVariable.MapCDSet = double.Parse(MapVariable.Element("MapCDSet").Value);
                MapWindowVariable.SeriesSet = int.Parse(MapVariable.Element("SeriesSet").Value);
                MapWindowVariable.BottomAxe = int.Parse(MapVariable.Element("BottomAxe").Value);
                MapWindowVariable.MDInver = int.Parse(MapVariable.Element("MDInver").Value);
                MapWindowVariable.CDInver = int.Parse(MapVariable.Element("CDInver").Value);
                MapWindowVariable.ShowFlag = int.Parse(MapVariable.Element("ShowFlag").Value);
                MapWindowVariable.LastMapCDConvertion = double.Parse(MapVariable.Element("LastMapCDConvertion").Value);
                MapWindowVariable.LastMapMDConvertion = double.Parse(MapVariable.Element("LastMapMDConvertion").Value);

                PxPVariable.PageSize = PxPVariable.ImgRowsSet * PxPVariable.ImgColsSet;
            }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show("Initialize Load Config Fail : \n" + ex.Message);
                PxPVariable.ImgRowsSet = 2;
                PxPVariable.ImgColsSet = 2;
                MapWindowVariable.MapProportion = 0;
                MapWindowVariable.ShowGridSet = true;
                MapWindowVariable.MapGridSet = 1;
                MapWindowVariable.MapMDSet = 3;
                MapWindowVariable.MapCDSet = 3;
                MapWindowVariable.SeriesSet = 0;
                MapWindowVariable.BottomAxe = 0;
                MapWindowVariable.MDInver = 0;
                MapWindowVariable.CDInver = 0;
                MapWindowVariable.LastMapCDConvertion = 1.00;
                MapWindowVariable.LastMapMDConvertion = 1.00;
            }

            IEnumerable<XElement> xMapFlawTypeName = XConf.Element("Config").Element("MapVariable").Elements("FlawTypeName");
            try
            {
                PxPVariable.FlawTypeName.Clear();
                foreach (XElement el in xMapFlawTypeName)
                {
                    FlawTypeNameExtend tmp = new FlawTypeNameExtend();
                    tmp.Display = (int.Parse(el.Element("Display").Value) == 1) ? true : false;
                    tmp.Color = el.Element("Color").Value.ToString();
                    tmp.Name = el.Element("Name").Value.ToString();
                    tmp.Shape = ((Shape)Enum.Parse(typeof(Shape), el.Element("Shape").Value.ToString(), false)).ToGraphic();

                    tmp.FlawType = int.Parse(el.Element("FlawType").Value.ToString());
                    PxPVariable.FlawTypeName.Add(tmp);
                }
            }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show("Initialize Load Config Fail :  MapDoffTypeGrid \n" + ex.Message);
            }
        }
示例#4
0
        public void OnJobLoaded(IList<IFlawTypeName> flawTypes, IList<ILaneInfo> lanes, IList<ISeverityInfo> severityInfo, IJobInfo jobInfo)
        {
            #region 註解
            /*
             * 1. 使用Model來存取介面取得之參數.
             * 2. 啟動並回復執行緒
             */
            #endregion
            //MessageBox.Show("OnJobLoaded");
            //DebugTool.WriteLog("PxPTab.cs", "OnJobLoaded");
            //PxPVariable.FlawTypeName.Clear();
            //PxPVariable.FlawTypeName = flawTypes;

            //Clear Some relative data
            MapWindowVariable.Flaws.Clear();
            MapWindowVariable.FlawPiece.Clear();
            MapWindowVariable.FlawPieces.Clear();
            GradeVariable.SplitPiecesContainer.Clear();
            MapWindowVariable.CurrentPiece = 0;
            MapWindowVariable.MapWindowController.InitLabel();
            PxPVariable.CurrentCutPosition = 0;
            //Reload Grade config useing mcs value
            SystemVariable.LoadGradeConfig();

            //開啟歷史資料時重新計算 P/F
            PxPVariable.DoffNum = 0;
            PxPVariable.FailNum = 0;
            PxPVariable.PassNum = 0;
            foreach (var ft in PxPVariable.FlawTypeName)
            {
                ft.DoffNum = 0;
                ft.JobNum = 0;
            }
            //完整處理完tmpList在丟到PxPVariable.FlawTypeName
            List<FlawTypeNameExtend> tmpList = new List<FlawTypeNameExtend>();
            tmpList.AddRange(PxPVariable.FlawTypeName); // 一開始Conf會載入儲存Config中所有的設定到PxPVariable.FlawTypeName
            //把flawTypes沒有的項目先從tmp移除
            var DifferencesConfigList = PxPVariable.FlawTypeName.Where(x => !flawTypes.Any(x1 => x1.Name == x.Name && x1.FlawType == x.FlawType));
            foreach (var r in DifferencesConfigList)
            {
                tmpList.Remove(r);
            }
            //差異比對 補上conf沒有 但是flawTypes有的 一樣的就跳過不處理
            var DifferencesList = flawTypes.Where(x => !tmpList.Any(x1 => x1.Name == x.Name && x1.FlawType == x.FlawType ));
            foreach (var i in DifferencesList)
            {
                //Default

                FlawTypeNameExtend tmp = new FlawTypeNameExtend();
                tmp.FlawType = i.FlawType;
                tmp.Name = i.Name;
                tmp.Display = true;
                foreach (var f in PxPVariable.FlawLegend)
                {
                    if (f.Name.Trim() == tmp.Name.Trim())
                    {
                        //tmp.Color = String.Format("#{0:X6}", Convert.ToString(f.Color, 16).PadRight(6,'0'));
                        tmp.Color = String.Format("#{0:X2}{1:X2}{2:X2}", ColorTranslator.FromWin32((int)f.Color).R,
                                                        ColorTranslator.FromWin32((int)f.Color).G,
                                                        ColorTranslator.FromWin32((int)f.Color).B);
                        //tmp.Color = String.Format("#{0:X6}", Reverse((f.Color).ToString("X6").PadRight(6, '0')));
                        break;
                    }
                    else
                    {
                        tmp.Color = "#000000";
                    }
                }

                tmp.Shape = Shape.Cone.ToGraphic();
                tmpList.Add(tmp);
            }

            //var random = new Random();
            //foreach (var i in flawTypes)
            //{
            //    FlawTypeNameExtend tmp = new FlawTypeNameExtend();

            //    foreach (var f in PxPVariable.FlawTypeName)
            //    {

            //        if (i.Name != f.Name)
            //        {
            //            //Default
            //            tmp.FlawType = i.FlawType;
            //            tmp.Name = i.Name;
            //            tmp.Display = true;
            //            //tmp.Color =String.Format("#{0:X6}", random.Next(0x1000000));
            //            //tmp.Shape = Shape.Cross.ToGraphic();
            //            tmp.Color = "#000000";
            //            tmp.Shape = Shape.Cone.ToGraphic();
            //            tmpList.Add(tmp);
            //        }
            //    }

            //}

            PxPVariable.FlawTypeName.Clear();
            PxPVariable.FlawTypeName.AddRange(tmpList);

            PxPVariable.FlawTypeName.Sort(delegate(FlawTypeNameExtend f1, FlawTypeNameExtend f2) { return f1.FlawType.CompareTo(f2.FlawType); });
            //Copy a temp for setup gridview display. Not save to global variable just for display.
            PxPVariable.TmpFlawTypeNameForSetup.Clear();
            foreach (var ft in PxPVariable.FlawTypeName)
            {
                FlawTypeNameExtend tmp = new FlawTypeNameExtend();
                tmp.FlawType = ft.FlawType;
                tmp.Name = ft.Name;
                tmp.Display = ft.Display;
                tmp.Count = ft.Count;
                tmp.Color = ft.Color;
                tmp.Shape = ft.Shape;
                PxPVariable.TmpFlawTypeNameForSetup.Add(tmp);
            }
            PxPVariable.JobInfo = jobInfo;
            PxPVariable.SeverityInfo = severityInfo;
            PxPThreadStatus.IsOnJobLoaded = true;

            //Disable MapSetup Button
            MapWindowVariable.MapWindowController.btnMapSetup.Enabled = true;
            MapWindowVariable.MapWindowController.SetJobInfo();
            MapWindowVariable.MapWindowController.SetMapAxis();
            MapWindowVariable.MapWindowController.bsFlawType.ResetBindings(false);
            MapWindowVariable.MapWindowController.InitSubPiece();
            PxPThreadEvent.Set();
        }