Example #1
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            Button button = sender as Button;

            if (button.Tag.ToString() == "confirm")
            {
                bool rs = CheckProject();
                if (!rs)
                {
                    return;
                }
                (App.Current.Resources["Locator"] as ViewModelLocator).Main.Projects.Add(project);
                SQliteDbContext.AddProject(project);
                string msg = IsModify ? "修改成功!" : "添加成功!";
                MessageBox.Show(msg, "Info", MessageBoxButton.OK, MessageBoxImage.Information);
                this.Close();
            }
            else if (button.Tag.ToString() == "cancel")
            {
                if (!IsModify)
                {
                    foreach (var item in grid.Children)
                    {
                        if (item is TextBox)
                        {
                            (item as TextBox).Text = "";
                        }
                    }
                }
                //project.Author = (App.Current.Resources["Locator"] as ViewModelLocator).Main.User.EmployeeNumbe;
            }
        }
Example #2
0
        private void Ellipse_MouseUp(object sender, MouseButtonEventArgs e)
        {
            Ellipse ep = sender as Ellipse;

            mousedown = false;

            ep.ReleaseMouseCapture();
            if (tempEp != null && (Operator == Operation.Move))
            {
                tempEp.Fill = TempBruhes;
                Operator    = Operation.None;
            }
            if (ep.Name != null && ep.Name.Trim().Length > 0)
            {
                string name = ep.Name.Remove(0, 1);
                Pin    p    = (App.Current.Resources["Locator"] as ViewModelLocator).Paper.Pins.ToList().Find(x => x.PinCode == name);
                if (p == null)
                {
                    return;
                }
                p.PinSX = Canvas.GetLeft(ep);
                p.PinSY = Canvas.GetTop(ep);
                SQliteDbContext.UpdatOnePin(p);
            }
        }
Example #3
0
        /// <summary>
        /// 清空列表
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void MenuItem_Click_1(object sender, RoutedEventArgs e)
        {
            canvas.Children.Clear();
            string pno   = (App.Current.Resources["Locator"] as ViewModelLocator).Paper.Project.ProjectNO;
            string fixno = (App.Current.Resources["Locator"] as ViewModelLocator).Paper.CablePaper.FixtureCode;

            SQliteDbContext.DeleteALLPin(pno, fixno);
            (App.Current.Resources["Locator"] as ViewModelLocator).Paper.Pins.Clear();
        }
        private void MenuItem_Click_Delete(object sender, RoutedEventArgs e)
        {
            if (tempEp.Name != null && tempEp.Name != "")
            {
                canvas.UnregisterName(tempEp.Name);
                this.canvas.Children.Remove(tempEp);

                SQliteDbContext.DeleteOneExPin(tempEp.Name.Substring(1, tempEp.Name.Length - 1), (App.Current.Resources["Locator"] as ViewModelLocator).ExcelPaper.Fixture.FixtureType);
                ExcelPin p = (App.Current.Resources["Locator"] as ViewModelLocator).ExcelPaper.Pins.ToList().Find(x => x.PinNO == tempEp.Name.Substring(1, tempEp.Name.Length - 1));
                (App.Current.Resources["Locator"] as ViewModelLocator).ExcelPaper.Pins.Remove(p);
            }
        }
Example #5
0
        private void MenuItem_Delete(object sender, RoutedEventArgs e)
        {
            int rs = SQliteDbContext.DeleteOnePin(SelectedpinEx.PinCode, SelectedpinEx.ProjectNO);

            if (rs > 0)
            {
                this.canvas.Children.Remove(tempEp);
                (App.Current.Resources["Locator"] as ViewModelLocator).Paper.Pins.Remove(SelectedpinEx);
                tempEp        = null;
                SelectedpinEx = null;
            }
        }
Example #6
0
        private void MenuItem_Update(object sender, RoutedEventArgs e)
        {
            int count = SQliteDbContext.CheckAddressSingle(SelectedpinEx);
            int ct    = SQliteDbContext.GetOnePin(SelectedpinEx.PinCode, SelectedpinEx.ProjectNO).physicalChannel;

            if (count >= 1 && ct != SelectedpinEx.physicalChannel)
            {
                MessageBox.Show("物理地址已经被占用!", "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);

                return;
            }
            int rs = SQliteDbContext.UpdatOnePin(SelectedpinEx);
        }
        private void MenuItem_Click_ON(object sender, RoutedEventArgs e)
        {
            byte[] msg = new byte[] { 0xfe, 0xef, 0x30, 0x0c, 0x00, 0x02, };
            var    pin = paperdata.SelectedItem as ExcelPin;

            if (pin != null)
            {
                short       led   = (short)SQliteDbContext.GetOneFixtureBaseInfo(pin.FixtureType).LEDAddress;
                byte[]      addr  = BitConverter.GetBytes(led).Reverse().ToArray();
                List <byte> datas = new List <byte>();
                datas.AddRange(msg);
                datas.AddRange(addr);
                Messenger.Default.Send <byte[]>(datas.ToArray(), "Send");
            }
        }
Example #8
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            string tag = (sender as Button).Tag.ToString();

            if (tag == "confirm")
            {
                CarProject car = (App.Current.Resources["Locator"] as ViewModelLocator).ExcelPaper.Car;
                if (Operation == WindowOperation.Add)
                {
                    if (QualityCheck())
                    {
                        car.Author = (App.Current.Resources["Locator"] as ViewModelLocator).Main.User.UserID;
                        int r = SQliteDbContext.AddCarType(car);
                        if (r > 0)
                        {
                            MessageBox.Show("添加成功!", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
                            (App.Current.Resources["Locator"] as ViewModelLocator).Main.CarTypes = new System.Collections.ObjectModel.ObservableCollection <CarProject>(SQliteDbContext.GetAllCarTypes());
                        }
                    }
                }
                else if (Operation == WindowOperation.Update)
                {
                    QualityCheck();
                    int r = SQliteDbContext.UpdateCarType(car);
                    if (r > 0)
                    {
                        MessageBox.Show("更新成功!", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
                        (App.Current.Resources["Locator"] as ViewModelLocator).Main.CarTypes = new System.Collections.ObjectModel.ObservableCollection <CarProject>(SQliteDbContext.GetAllCarTypes());
                        this.Close();
                    }
                }
                else if (Operation == WindowOperation.Delete)
                {
                    QualityCheck();
                    int r = SQliteDbContext.DeleteCarType(car);
                    if (r > 0)
                    {
                        MessageBox.Show("删除成功!", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
                        (App.Current.Resources["Locator"] as ViewModelLocator).Main.CarTypes = new System.Collections.ObjectModel.ObservableCollection <CarProject>(SQliteDbContext.GetAllCarTypes());
                        this.Close();
                    }
                }
            }
            else if (tag == "cancel")
            {
                this.Close();
            }
        }
 public bool QualityCheck()
 {
     if (cmbFixtures.SelectedIndex == -1 && txtFixture.Text.Trim().Length == 0)
     {
         MessageBox.Show("请输入一个治具型号!", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
         return(false);
     }
     if (Operation == WindowOperation.Add && SQliteDbContext.CheckFixturetype((App.Current.Resources["Locator"] as ViewModelLocator).ExcelPaper.Fixture.FixtureType))
     {
         MessageBox.Show("治具型号不能重复!", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
         return(false);
     }
     if (imagetxt.Text.Trim().Length == 0)
     {
         MessageBox.Show("请导入图片!", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
         return(false);
     }
     if (this.ledAddr.Text.Trim().Length == 0)
     {
         MessageBox.Show("请输入LED地址!", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
         ledAddr.Focus();
         return(false);
     }
     if (!IsNumber(this.ledAddr.Text.Trim()))
     {
         MessageBox.Show("LED地址只能为整数!", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
         ledAddr.Focus();
         return(false);
     }
     if (Operation == WindowOperation.Add && SQliteDbContext.CheckLEDAddress(ledAddr.Text.Trim()))
     {
         MessageBox.Show("LED地址不能重复!", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
         ledAddr.Focus();
         return(false);
     }
     if (Operation == WindowOperation.Update && templed != ledAddr.Text)
     {
         if (SQliteDbContext.CheckLEDAddress(ledAddr.Text.Trim()))
         {
             MessageBox.Show("LED地址不能重复!", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
             ledAddr.Focus();
             return(false);
         }
     }
     return(true);
 }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            Button btn = sender as Button;
            string tag = btn.Tag.ToString().ToLower();

            switch (tag)
            {
            case "create": Operator = Operation.Create; break;

            case "move": Operator = Operation.Move; break;

            case "modify":
                Operator = Operation.Modify;
                break;

            case "delete": Operator = Operation.Delete; break;

            case "clsall":

                SQliteDbContext.DeleteAllExPin((App.Current.Resources["Locator"] as ViewModelLocator).ExcelPaper.Fixture.FixtureType);
                (App.Current.Resources["Locator"] as ViewModelLocator).ExcelPaper.Pins.Clear();
                foreach (var item in canvas.Children)
                {
                    try
                    {
                        if (item is Ellipse)
                        {
                            var ep = item as Ellipse;
                            canvas.UnregisterName(ep.Name);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                }
                this.canvas.Children.Clear();
                break;

            case "clear":
                (App.Current.Resources["Locator"] as ViewModelLocator).ExcelPaper.Channels.Clear(); break;

            default:
                break;
            }
        }
 private void Btn_Click(object sender, RoutedEventArgs e)
 {
     if (CheckPin())
     {
         if (IsModify)
         {
             SQliteDbContext.UpdatOnePin(pin);
         }
         else
         {
             SQliteDbContext.AddPin(pin);
         }
         string msg = IsModify ? "修改成功!" : "添加成功!";
         MessageBox.Show(msg, "Info", MessageBoxButton.OK, MessageBoxImage.Information);
         Messenger.Default.Send <string>("update", "UpdateCanavs");
         this.Close();
     }
 }
        private bool QualityCheck()
        {
            if (codepart.Text.Trim().Length == 0)
            {
                MessageBox.Show("请输入引脚编号", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
                codepart.Focus();
                return(false);
            }
            if (address.Text.Trim().Length == 0)
            {
                MessageBox.Show("请输入物理地址", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
                address.Focus();
                return(false);
            }
            if (!IsModify && SQliteDbContext.CheckPinNOExist(cmbfixture.Text.Trim(), codepart.Text.Trim()))
            {
                MessageBox.Show("引脚编号已经存在请重新输入", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
                codepart.Focus();
                return(false);
            }
            if (!IsModify && SQliteDbContext.CheckPinAddressExist(address.Text.Trim()))
            {
                MessageBox.Show("物理地址已经存在请重新输入", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
                address.Focus();
                return(false);
            }
            if (IsModify && address.Text.Trim() != tempaddress)
            {
                if (SQliteDbContext.CheckPinAddressExist(address.Text.Trim()))
                {
                    MessageBox.Show("物理地址已经存在请重新输入", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
                    address.Focus();
                    return(false);
                }
                else
                {
                    return(true);
                }
            }

            return(true);
        }
 private bool QualityCheck()
 {
     if (carType.SelectedIndex == -1)
     {
         MessageBox.Show("请选择车型名称", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
         carType.Focus();
         return(false);
     }
     if (wireName.SelectedIndex == -1)
     {
         MessageBox.Show("请输入车型编号", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
         wireName.Focus();
         return(false);
     }
     if (projectName.Text.Trim().Length == 0)
     {
         MessageBox.Show("请输入工程名称", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
         projectName.Focus();
         return(false);
     }
     if (projectNO.Text.Trim().Length == 0)
     {
         MessageBox.Show("请输入工程编号", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
         projectName.Focus();
         return(false);
     }
     if (Operation == WindowOperation.Add && SQliteDbContext.CheckCarNOExist(projectNO.Text.Trim()))
     {
         MessageBox.Show("车型编号已经存在请重新输入", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
         projectName.Focus();
         return(false);
     }
     if (filename.Text.Trim().Length == 0 && Operation == WindowOperation.Add)
     {
         MessageBox.Show("请导入文件路径", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
         projectName.Focus();
         return(false);
     }
     return(true);
 }
        private void MenuItem_Click_Modify(object sender, RoutedEventArgs e)
        {
            ExcelPin p = SQliteDbContext.GetOneExPin((App.Current.Resources["Locator"] as ViewModelLocator).ExcelPaper.Fixture.FixtureType, tempEp.Name.Substring(1, tempEp.Name.Length - 1));

            if (p == null)
            {
                return;
            }
            p.PinEX  = canvas.RenderSize.Width;
            p.PinEY  = canvas.RenderSize.Height;
            p.PinSX  = Canvas.GetLeft(tempEp);
            p.PinSY  = Canvas.GetTop(tempEp);
            p.Radius = tempEp.ActualHeight;
            (App.Current.Resources["Locator"] as ViewModelLocator).ExcelPaper.Pin = p;


            ExcelPinWindow codeWindow = new ExcelPinWindow(true);

            //  SQliteDbContext.UpdatOneExPin(p);
            codeWindow.ShowDialog();
            tempEp.Name = "P" + p.PinNO;
        }
        private bool CheckPaper()
        {
            if (this.cablePaper.FixtureCode.Trim().Length == 0)
            {
                MessageBox.Show("治具编号不能为空!", "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);

                return(false);
            }

            if (cablePaper.FixtureName.Trim().Length == 0)
            {
                MessageBox.Show("治具名称不能为空!", "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);

                return(false);
            }
            if (cablePaper.LEDAddress > 0)
            {
                MessageBox.Show("治具地址不能为空!", "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);

                return(false);
            }
            if (cablePaper.ImagePath.Trim().Length == 0)
            {
                MessageBox.Show("治具图纸不能为空!", "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);

                return(false);
            }
            if (SQliteDbContext.GetPaper(cablePaper) != null)
            {
                MessageBox.Show("治具编号不能重复!", "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);

                return(false);
            }



            return(true);
        }
 private void Button_Click(object sender, RoutedEventArgs e)
 {
     if (!IsModify)
     {
         ExcelPin p = (App.Current.Resources["Locator"] as ViewModelLocator).ExcelPaper.Pin;
         p.PinNO = this.codepart.Text;
         if (QualityCheck())
         {
             int rs = SQliteDbContext.AddExPin(p);
             if (rs > 0)
             {
                 MessageBox.Show("添加成功", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
                 (App.Current.Resources["Locator"] as ViewModelLocator).ExcelPaper.Pins.Add(p);
                 IsAdd = true;
                 this.Close();
             }
         }
     }
     else
     {
         ExcelPin p = (App.Current.Resources["Locator"] as ViewModelLocator).ExcelPaper.Pin;
         p.PinNO = this.codepart.Text;
         if (QualityCheck())
         {
             int rs = SQliteDbContext.UpdatOneExPin(p);
             if (rs > 0)
             {
                 MessageBox.Show("修改成功!", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
                 this.Close();
             }
         }
     }
     (App.Current.Resources["Locator"] as ViewModelLocator).ExcelPaper.Pins =
         new ObservableCollection <ExcelPin>(SQliteDbContext.
                                             GetOneFixtureExcelPins((App.Current.Resources["Locator"] as ViewModelLocator).
                                                                    ExcelPaper.Fixture.FixtureType));
 }
Example #17
0
        private void MenuItem_ON(object sender, RoutedEventArgs e)
        {
            var mi      = sender as MenuItem;
            var cm      = mi.Parent as ContextMenu;
            var lstItem = cm.PlacementTarget as ListViewItem;

            if (lstItem == null)
            {
                return;
            }

            string      tag = lstItem.Content.ToString();
            List <byte> msg = new List <byte> {
                0xfe, 0xef, 0x30, 0x0c
            };
            List <string> leftCodes  = GetCodes(tag.Split('+')[0]);
            List <string> rightCodes = GetCodes(tag.Split('+')[1]);

            List <byte> datas = new List <byte>();

            if (leftCodes[2] != "" && leftCodes[2].Trim().Length != 0)
            {
                short  led  = (short)SQliteDbContext.GetOneFixtureBaseInfo(leftCodes[2]).LEDAddress;
                byte[] addr = BitConverter.GetBytes(led).Reverse().ToArray();
                datas.AddRange(addr);
            }
            if (rightCodes[2] != "" && rightCodes[2].Trim().Length != 0)
            {
                short  led  = (short)SQliteDbContext.GetOneFixtureBaseInfo(rightCodes[2]).LEDAddress;
                byte[] addr = BitConverter.GetBytes(led).Reverse().ToArray();
                datas.AddRange(addr);
            }
            msg.AddRange(BitConverter.GetBytes((short)datas.Count).Reverse());
            msg.AddRange(datas);
            Messenger.Default.Send <byte[]>(msg.ToArray(), "Send");
        }
Example #18
0
        private bool  QualityCheck()
        {
            if (carname.Text.Trim().Length == 0)
            {
                MessageBox.Show("请输入车型名称", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
                carname.Focus();
                return(false);
            }
            if (typeno.Text.Trim().Length == 0)
            {
                MessageBox.Show("请输入车型编号", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
                carname.Focus();
                return(false);
            }
            if (Operation == WindowOperation.Add && SQliteDbContext.CheckCarNOExist(typeno.Text.Trim()))
            {
                MessageBox.Show("车型编号已经存在请重新输入", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
                carname.Focus();
                return(false);
            }
            if (Operation == WindowOperation.Update && tempCarNo.Trim() != typeno.Text.Trim())
            {
                if (SQliteDbContext.CheckCarNOExist(typeno.Text.Trim()))
                {
                    MessageBox.Show("车型编号已经存在请重新输入", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
                    carname.Focus();
                    return(false);
                }
                else
                {
                    return(true);
                }
            }

            return(true);
        }
        /// <summary>
        /// 浏览图片按钮
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            string tag = (sender as Button).Tag.ToString().ToLower();

            if (tag == "scan")
            {
                string filePathName = "";                                                            //定义图像文件的位置(包括路径及文件名)
                System.Windows.Forms.OpenFileDialog ofd = new System.Windows.Forms.OpenFileDialog(); //添加打开对话框
                ofd.Filter = "图像文件|*jpg;*.bmp;*.png,*.tif|所有文件|*.*";                                 //设置过滤器
                if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)                        //如果确定打开图片,则保存文件的路径及文件名到字符串变量filePathName中
                {
                    filePathName = ofd.FileName;                                                     //包括路径和文件名
                }

                try
                {
                    Bitmap bitmap   = new Bitmap(filePathName);
                    string filepath = "";
                    if (folderExist(System.Environment.CurrentDirectory + "\\Image\\" + projectcode))
                    {
                        filepath = System.Environment.CurrentDirectory + "\\Image\\" + projectcode + "\\" + System.IO.Path.GetFileName(ofd.FileName);
                    }
                    else
                    {
                        folderCreate(System.Environment.CurrentDirectory + "\\Image\\" + projectcode);
                        filepath = System.Environment.CurrentDirectory + "\\Image\\" + projectcode + "\\" + System.IO.Path.GetFileName(ofd.FileName);
                    }

                    bitmap.Save(filepath);
                    bitmap.Dispose();
                    cablePaper.ImagePath = filepath;
                }
                catch (Exception ex)
                {
                    System.Windows.MessageBox.Show("工程中已经存在同名的图片,请将图片重命名后再导入", "警告", MessageBoxButton.OK, MessageBoxImage.Warning);
                }
            }
            else if (tag == "confirm")
            {
                if (CheckPaper())
                {
                    (App.Current.Resources["Locator"] as ViewModelLocator).Main.Papers.Add(cablePaper);
                    SQliteDbContext.AddPaper(cablePaper);
                    string msg = IsModify ? "修改成功!" : "添加成功!";
                    MessageBox.Show(msg, "Info", MessageBoxButton.OK, MessageBoxImage.Information);
                    this.Close();
                }
            }
            else if (tag == "cancel")
            {
                if (!IsModify)
                {
                    foreach (var item in grid.Children)
                    {
                        if (item is TextBox)
                        {
                            (item as TextBox).Text = "";
                        }
                    }
                }
            }
        }
        private void Add()
        {
            FixtureBase fixture = (App.Current.Resources["Locator"] as ViewModelLocator).ExcelPaper.Fixture;

            switch (Operation)
            {
            case WindowOperation.Add:
                if (QualityCheck())
                {
                    try
                    {
                        Bitmap bitmap = new Bitmap(filepath);
                        if (folderExist(System.Environment.CurrentDirectory + "\\Image\\" + "ExcelProject"))
                        {
                            filepath = System.Environment.CurrentDirectory + "\\Image\\" + "ExcelProject" + "\\" + System.IO.Path.GetFileName(filepath);
                        }
                        else
                        {
                            folderCreate(System.Environment.CurrentDirectory + "\\Image\\" + "ExcelProject");
                            filepath = System.Environment.CurrentDirectory + "\\Image\\" + "ExcelProject" + "\\" + System.IO.Path.GetFileName(filepath);
                        }
                        bitmap.Save(filepath);
                        bitmap.Dispose();
                    }
                    catch (Exception ex)
                    {
                        System.Windows.MessageBox.Show("工程中已经存在同名的图片,请将图片重命名后再导入", "警告", MessageBoxButton.OK, MessageBoxImage.Warning);
                        return;
                    }
                    int row = SQliteDbContext.AddFixtureBaseInfo(fixture);
                    if (row > 0)
                    {
                        System.Windows.MessageBox.Show("添加成功!", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
                        this.Close();
                    }
                }

                break;

            case WindowOperation.Update:
                if (QualityCheck())
                {
                    int rs = SQliteDbContext.UpdateFixtureBaseInfo(fixture);
                    if (rs > 0)
                    {
                        System.Windows.MessageBox.Show("更新成功!", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
                        this.Close();
                    }
                }
                break;

            case WindowOperation.Delete:
                int rd = SQliteDbContext.DeleteFixtureBaseInfo(fixture);
                if (rd > 0)
                {
                    System.Windows.MessageBox.Show("删除成功!", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
                    this.Close();
                }
                break;

            default:
                break;
            }
            (App.Current.Resources["Locator"] as ViewModelLocator).ExcelPaper.Fixtures = new System.Collections.ObjectModel.ObservableCollection <FixtureBase>(SQliteDbContext.GetAllFixtureBaseInfos());
        }
        private bool CheckPin()
        {
            this.pin = (App.Current.Resources["Locator"] as ViewModelLocator).Paper.Pin;
            if (pin.PinCode.Trim().Length == 0)
            {
                MessageBox.Show("引脚编号不能为空!", "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);

                return(false);
            }
            if (pin.physicalChannel <= 0)
            {
                MessageBox.Show("物理地址必须为大于零的整数!", "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);

                return(false);
            }
            if (pin.IsSafeBox && pin.SafeBoxName.Trim().Length == 0)
            {
                MessageBox.Show("元件名称不能为空!", "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);
                return(false);
            }
            else if (pin.IsSafeBox && !(pin.SafeBoxName.Trim().Contains("F") || pin.SafeBoxName.Trim().Contains("K")))
            {
                MessageBox.Show("请输入正确的元件名称(继电器—K 保险芯—F)!", "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);
                return(false);
            }
            else if (pin.IsSafeBox)
            {
                if (!IsModify && SQliteDbContext.CheckSafeBoxNameSingle(pin) > 0)
                {
                    MessageBox.Show("元器件名称不能重复", "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);
                    return(false);
                }
                else if (IsModify)
                {
                    if (SQliteDbContext.GetOnePin(pin.PinCode, pin.ProjectNO).safeBoxName != pin.safeBoxName && SQliteDbContext.CheckSafeBoxNameSingle(pin) > 0)
                    {
                        MessageBox.Show("元器件名称不能重复", "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);
                        return(false);
                    }
                }
            }

            if (SQliteDbContext.CheckCodeSingle(pin) && !IsModify)
            {
                MessageBox.Show("引脚编号不重复!", "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);

                return(false);
            }
            if (SQliteDbContext.CheckAddressSingle(pin) >= 1)
            {
                MessageBox.Show("物理地址已经被占用!", "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);

                return(false);
            }
            if (SQliteDbContext.CheckAddressSingle(pin) > 1 && SQliteDbContext.GetOnePin(pin.PinCode, pin.ProjectNO).physicalChannel != pin.physicalChannel && IsModify)
            {
                MessageBox.Show("物理地址已经被占用!", "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);

                return(false);
            }
            return(true);
        }
Example #22
0
        private void Ellipse_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            Ellipse ep = sender as Ellipse;

            mousedown = true;
            if (Operator != Operation.Create)
            {
                tempEp     = ep;
                TempBruhes = ep.Fill;
                ep.Fill    = Brushes.LawnGreen;

                ep.CaptureMouse();
            }
            if (Operator == Operation.Delete)
            {
                ep.ReleaseMouseCapture();
                canvas.Children.Remove(ep);
                if (ep.Name != null && ep.Name != "")
                {
                    SQliteDbContext.DeleteOnePin(ep.Name.Substring(1, ep.Name.Length - 1), (App.Current.Resources["Locator"] as ViewModelLocator).Paper.Project.ProjectNO);
                    PinEx p = (App.Current.Resources["Locator"] as ViewModelLocator).Paper.Pins.ToList().Find(x => x.PinCode == ep.Name.Substring(1, ep.Name.Length - 1));
                    (App.Current.Resources["Locator"] as ViewModelLocator).Paper.Pins.Remove(p);
                }
            }
            if (Operator == Operation.Modify)
            {
                if (tempEp != null)
                {
                    int value = 0;
                    int.TryParse(txtDia.Text, out value);
                    if (cbDia.IsChecked.HasValue && cbDia.IsChecked.Value)
                    {
                        tempEp.Height = value;
                        tempEp.Width  = value;
                    }
                    if (cbDia.IsChecked.HasValue && cbColor.IsChecked.Value)
                    {
                        tempEp.Fill = clpk.SelectedBrush;
                    }
                }
                if (tempEp.Name == "")
                {
                    Pin p = new Pin();
                    p.PinEX  = canvas.RenderSize.Width;
                    p.PinEY  = canvas.RenderSize.Height;
                    p.PinSX  = Canvas.GetLeft(tempEp);
                    p.PinSY  = Canvas.GetTop(tempEp);
                    p.Radius = tempEp.ActualHeight;
                    if (tempEp.Fill.ToString().Trim().Length > 0 && tempEp.Fill.ToString() != "0")
                    {
                        p.DrawColor = tempEp.Fill.ToString();
                    }
                    else
                    {
                        p.DrawColor = "#FF0000";
                    }
                    bool isrelay = (App.Current.Resources["Locator"] as ViewModelLocator).Paper.CablePaper.IsSafeBox == 1;
                    p.ProjectNO   = (App.Current.Resources["Locator"] as ViewModelLocator).Paper.Project.ProjectNO;
                    p.FixtureCode = (App.Current.Resources["Locator"] as ViewModelLocator).Paper.CablePaper.FixtureCode;
                    (App.Current.Resources["Locator"] as ViewModelLocator).Paper.Pin = p;
                    CodeWindow codeWindow = new CodeWindow(isrelay);
                    codeWindow.ShowDialog();
                    tempEp.Name = "P" + p.PinCode;
                    //canvas.RegisterName(tempEp.Name, tempEp);
                    tempEp.Fill = TempBruhes;
                }
                else
                {
                    string projectno = (App.Current.Resources["Locator"] as ViewModelLocator).Paper.Project.ProjectNO;
                    Pin    p         = SQliteDbContext.GetOnePin(tempEp.Name.Substring(1, tempEp.Name.Length - 1), projectno);
                    if (p == null)
                    {
                        return;
                    }
                    p.PinEX = canvas.RenderSize.Width;
                    p.PinEY = canvas.RenderSize.Height;

                    p.PinSX = Canvas.GetLeft(tempEp);
                    p.PinSY = Canvas.GetTop(tempEp);

                    p.Radius = tempEp.ActualHeight;
                    (App.Current.Resources["Locator"] as ViewModelLocator).Paper.Pin = p;
                    bool       isrelay    = (App.Current.Resources["Locator"] as ViewModelLocator).Paper.CablePaper.IsSafeBox == 1;
                    CodeWindow codeWindow = new CodeWindow(isrelay);
                    codeWindow.IsModify = true;
                    codeWindow.ShowDialog();
                    // tempEp.Name ="P"+ p.PinCode;
                }
            }
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            string tag = (sender as System.Windows.Controls.Button).Tag.ToString().ToLower();

            if (tag == "scan")
            {
                string filePathName = "";                                                            //定义图像文件的位置(包括路径及文件名)
                System.Windows.Forms.OpenFileDialog ofd = new System.Windows.Forms.OpenFileDialog(); //添加打开对话框
                ofd.Filter = "Excel文件|*.xls;*.xlsx";                                                 //设置过滤器
                if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)                        //如果确定打开图片,则保存文件的路径及文件名到字符串变量filePathName中
                {
                    filePathName       = ofd.FileName;                                               //包括路径和文件名                                              // filepath =
                    this.filename.Text = ofd.FileName;
                    filepath           = ofd.FileName;
                }
            }
            else if (tag == "confirm")
            {
                ExcelProject project = (App.Current.Resources["Locator"] as ViewModelLocator).ExcelPaper.Project;
                if (Operation == WindowOperation.Add)
                {
                    if (QualityCheck())
                    {
                        project.Author = (App.Current.Resources["Locator"] as ViewModelLocator).Main.User.UserID;
                        bool rs = ImportExcel(project.ProjectNO, project.ProjectName, filepath);
                        if (SQliteDbContext.GetAllExcelProject().Exists(x => x.ProjectNO == project.ProjectNO))
                        {
                            MessageBox.Show("工程编号已经存在!", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
                            this.projectNO.Focus();
                            return;
                        }
                        if (rs)
                        {
                            int r = SQliteDbContext.AddExcelProject(project);
                            if (r > 0 && rs)
                            {
                                MessageBox.Show("添加成功!", "提示", MessageBoxButton.OK, MessageBoxImage.Information);

                                this.Close();
                            }
                        }
                    }
                }
                else if (Operation == WindowOperation.Update)
                {
                    QualityCheck();
                    int r = SQliteDbContext.UpdateExcelProject(project);
                    if (r > 0)
                    {
                        MessageBox.Show("更新成功!", "提示", MessageBoxButton.OK, MessageBoxImage.Information);

                        this.Close();
                    }
                }
                else if (Operation == WindowOperation.Delete)
                {
                    QualityCheck();
                    int r = SQliteDbContext.DeleteExcelProject(project);
                    if (r > 0)
                    {
                        MessageBox.Show("删除成功!", "提示", MessageBoxButton.OK, MessageBoxImage.Information);

                        this.Close();
                    }
                }
                (App.Current.Resources["Locator"] as ViewModelLocator).Main.ExProjects = new System.Collections.ObjectModel.ObservableCollection <ExcelProject>(SQliteDbContext.GetAllExcelProject());
            }
            else if (tag == "cancel")
            {
                this.Close();
            }
        }
        /// <summary>
        /// 导入Excel
        /// </summary>
        private bool ImportExcel(string projectNO, string ProjectName, string path)
        {
            DataSet ds = null;

            System.Data.DataTable dt = null;

            try
            {
                {
                    #region Part
                    string          strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties='Excel 12.0;HDR=Yes;IMEX=1;'";
                    OleDbConnection myConn  = new OleDbConnection(strConn);
                    myConn.Open();
                    OleDbDataAdapter myCommand = null;
                    string           strExcel  = "select * from [sheet1$]";//这里sheet1对应excel的工作表名称,一定要注意。
                    myCommand = new OleDbDataAdapter(strExcel, strConn);
                    ds        = new DataSet();
                    myCommand.Fill(ds, "table1");
                    dt = ds.Tables[0];
                    List <Part> projects = new List <Part>();
                    foreach (DataRow dr in dt.Rows)
                    {
                        for (int i = 1; i < dt.Columns.Count - 1; i++)
                        {
                            if (dr[i].ToString().Trim().Length > 0 && dr[i].ToString().Trim().Length > 0)
                            {
                                Part part = new Part()
                                {
                                    PartType = dr[0].ToString().Trim(), ProjectNO = projectNO, Circuit = dt.Columns[i].ToString().Trim()
                                };
                                projects.Add(part);
                            }
                        }
                    }
                    var names = projects.Select(x => x.PartType).Distinct().ToList();
                    foreach (var item in names)
                    {
                        if (SQliteDbContext.CheckPartNameExist(item))
                        {
                            System.Windows.MessageBox.Show($"{item}型号已经存在,请删除该零件新后再导入", "警告", MessageBoxButton.OK, MessageBoxImage.Warning);
                            return(false);
                        }
                    }



                    #endregion

                    #region Fixture
                    string sql2 = "select * from [sheet3$]";//这里sheet1对应excel的工作表名称,一定要注意。
                    myCommand = new OleDbDataAdapter(sql2, strConn);
                    ds        = new DataSet();
                    myCommand.Fill(ds, "table1");
                    dt = ds.Tables[0];
                    if (dt.Columns.Count < 5)
                    {
                        System.Windows.MessageBox.Show($"Sheet3缺少列,列数必须为6列,包括第一列的空白列,请检测列信息是否完成", "警告", MessageBoxButton.OK, MessageBoxImage.Warning);
                        return(false);
                    }

                    bool IsChecked = true;
                    int  index3    = 0;
                    dt.Rows.Cast <DataRow>().Where(x => x.ItemArray[1].ToString().Trim().Length > 0).ToList().ForEach(r =>
                    {
                        index3++;
                        if (r[2].ToString().Trim().Length == 0)
                        {
                            IsChecked = false;
                            MessageBox.Show($"模型编号不能为空,在sheet3中{index3+1}行", "错误", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                        int pinindex = 0;
                        if (!int.TryParse(r[2].ToString().Trim(), out pinindex))
                        {
                            IsChecked = false;
                            MessageBox.Show($"模型编号必须为数字,在sheet3中{index3 + 1}行", "错误", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                        if (r[4].ToString().Trim().Length == 0)
                        {
                            IsChecked = false;
                            MessageBox.Show($"插接件编号不能为空,在sheet3中{index3 + 1}行", "错误", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                        if (r[5].ToString().Trim().Length == 0)
                        {
                            IsChecked = false;
                            MessageBox.Show($"Pin编号不能为空,在sheet3中{index3 + 1}行", "错误", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                        if (!int.TryParse(r[5].ToString().Trim(), out pinindex))
                        {
                            IsChecked = false;
                            MessageBox.Show($"Pin编号必须为数字,在sheet3中{index3 + 1}行", "错误", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                    });
                    if (!IsChecked)
                    {
                        MessageBox.Show($"导入数据出错!", "错误", MessageBoxButton.OK, MessageBoxImage.Error);
                        return(false);
                    }
                    var fixtures = dt.Rows.Cast <DataRow>().Where(x => x.ItemArray[1].ToString().Trim().Length > 0).Select(r => new FixtureInfo
                    {
                        ProjectNO   = projectNO,
                        FixtureType = r[1].ToString().Trim(),
                        PinNO       = r[2].ToString().Trim(),
                        FixtureNO   = r[4].ToString().Trim(),
                        // PhysicalChannel = r[2].ToString().Trim().Length == 0 ? 0 : Convert.ToInt32(r[1].ToString()),
                        PinIndex = Convert.ToInt32(r[5].ToString()),
                    }
                                                                                                                           ).ToList();


                    #endregion
                    //
                    #region Connect
                    string Sql3 = "select * from [sheet2$]";//这里sheet1对应excel的工作表名称,一定要注意。
                    myCommand = new OleDbDataAdapter(Sql3, strConn);
                    ds        = new DataSet();
                    myCommand.Fill(ds, "table1");
                    dt = ds.Tables[0];

                    if (dt.Columns.Count < 7)
                    {
                        System.Windows.MessageBox.Show($"Sheet2缺少列,列数必须为7列,包括第一列的序号列,请检测列信息是否完成", "警告", MessageBoxButton.OK, MessageBoxImage.Warning);
                        return(false);
                    }
                    int index2 = 0;
                    dt.AsEnumerable().Where(x => x[0].ToString().Trim().Length > 0).ToList().ForEach(r =>
                    {
                        index2++;
                        if (r[1].ToString().Trim().Length == 0)
                        {
                            IsChecked = false;
                            MessageBox.Show($"Wire不能为空,在sheet2中{index2+1}行", "错误", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                        int pinindex = 0;
                        if (r[2].ToString().Trim().Length == 0)
                        {
                            IsChecked = false;
                            MessageBox.Show($"Option不能为空,在sheet2中{index2+1}行", "错误", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                        if (r[3].ToString().Trim().Length == 0)
                        {
                            IsChecked = false;
                            MessageBox.Show($"From不能为空,在sheet2中{index2 + 1}行", "错误", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                        if (r[4].ToString().Trim().Length == 0)
                        {
                            IsChecked = false;
                            MessageBox.Show($"From-Pin不能为空,在sheet2中{index2 + 1}行", "错误", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                        if (!int.TryParse(r[4].ToString().Trim(), out pinindex))
                        {
                            IsChecked = false;
                            MessageBox.Show("FromPin编号必须为数字", "错误", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                        if (r[5].ToString().Trim().Length == 0)
                        {
                            IsChecked = false;
                            MessageBox.Show($"To不能为空,在sheet2中{index2 + 1}行", "错误", MessageBoxButton.OK, MessageBoxImage.Error);
                        }

                        if (r[6].ToString().Trim().Length == 0)
                        {
                            IsChecked = false;
                            MessageBox.Show($"To-Pin不能为空,在sheet2中{index2 + 1}行", "错误", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                        if (!int.TryParse(r[6].ToString().Trim(), out pinindex))
                        {
                            IsChecked = false;
                            MessageBox.Show("ToPin编号必须为数字", "错误", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                    });
                    if (!IsChecked)
                    {
                        MessageBox.Show($"导入数据出错!", "错误", MessageBoxButton.OK, MessageBoxImage.Error);
                        return(false);
                    }
                    var data = dt.AsEnumerable().Where(x => x[0].ToString().Trim().Length > 0).ToList().Select(x => new WireConnect()
                    {
                        Wire    = x[1].ToString().Trim(),
                        Option  = x[2].ToString().Trim(),
                        From    = x[3].ToString().Trim(),
                        FromPin = x[4].ToString().Trim(),
                        To      = x[5].ToString().Trim(),
                        ToPin   = x[6].ToString().Trim(),
                    }).ToList();
                    List <HashSet <WireConnect> > wireConnects = new List <HashSet <WireConnect> >();
                    for (int i = 0; i < data.Count; i++)
                    {
                        List <WireConnect> wires = new List <WireConnect>();
                        if (data[i].IsDeal)
                        {
                            continue;
                        }
                        wires.AddRange(data.FindAll(x => x.Equals(data[i])));
                        data[i].IsDeal = true;
                        if (wires.Count > 0)
                        {
                            for (int j = 0; j < wires.Count; j++)
                            {
                                if (wires[j].IsDeal)
                                {
                                    continue;
                                }
                                wires.AddRange(data.FindAll(x => x.Equals(wires[j])));
                                wires[j].IsDeal = true;
                            }
                            wires.ForEach(x => x.Num = data[i].Wire);
                            wireConnects.Add(new HashSet <WireConnect>(wires));
                        }
                    }

                    List <ConnectInfoEx> ctlst = new List <ConnectInfoEx>();
                    foreach (var item in wireConnects)
                    {
                        foreach (var subitem in item)
                        {
                            ctlst.Add(new ConnectInfoEx
                            {
                                ProjectNO   = projectNO,
                                WireNum     = subitem.Num.Trim(),
                                CirCuitName = subitem.Option.Trim(),
                                Pins        = new List <BasePin>()
                                {
                                    new BasePin()
                                    {
                                        PinIndex = Convert.ToInt32(subitem.FromPin.ToString().Trim()), FixtureNO = subitem.From.ToString().Trim()
                                    },
                                    new BasePin()
                                    {
                                        PinIndex = Convert.ToInt32(subitem.ToPin.ToString().Trim()), FixtureNO = subitem.To.ToString().Trim()
                                    },
                                }
                            });
                        }
                    }
                    ////将From to 拆分成单个的两个归属到治具里
                    //var ctlst = wireConnects.Select(r => new ConnectInfoEx
                    //{
                    //    ProjectNO = projectNO,
                    //    WireNum = r.Num.Trim(),
                    //    CirCuitName=r.Option.Trim(),
                    //    Pins=new List<BasePin>()
                    //    {
                    //        new BasePin() { PinIndex = Convert.ToInt32(r.FromPin.ToString().Trim()), FixtureNO = r.From.ToString().Trim()},
                    //        new BasePin() { PinIndex = Convert.ToInt32(r.ToPin.ToString().Trim()), FixtureNO = r.To.ToString().Trim()},
                    //    }
                    //});

                    //筛选出合并点的信息
                    List <ConnectionInfo> result = new List <ConnectionInfo>();
                    if (!rd.IsChecked.Value)
                    {
                        result = ctlst.SelectMany(p => p.Pins, (p, r) => new ConnectionInfo
                        {
                            CirCuitName = p.CirCuitName,
                            ProjectNO   = p.ProjectNO,
                            WireNum     = p.WireNum,
                            FixtureNO   = r.FixtureNO,
                            PinIndex    = r.PinIndex,
                        }).Where(n => !System.Text.RegularExpressions.Regex.IsMatch(n.FixtureNO, @"^[a-zA-Z]{3}")).ToList();
                    }
                    else if (rd.IsChecked.Value && rd.IsChecked.HasValue)
                    {
                        if (patter.Text.Trim().Length == 0)
                        {
                            MessageBox.Show("请输入需要匹配的合点字母", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
                            return(false);
                        }
                        result = ctlst.SelectMany(p => p.Pins, (p, r) => new ConnectionInfo
                        {
                            CirCuitName = p.CirCuitName,
                            ProjectNO   = p.ProjectNO,
                            WireNum     = p.WireNum,
                            FixtureNO   = r.FixtureNO,
                            PinIndex    = r.PinIndex,
                        }).Where(n => !n.FixtureNO.StartsWith(patter.Text.Trim())).ToList();
                    }
                    //给每个点赋与物理地址
                    result.ForEach(x =>
                    {
                        var rs = fixtures.ToList().Find(r => r.FixtureNO == x.FixtureNO && r.PinIndex == x.PinIndex);
                        if (rs != null)
                        {
                            x.PhysicalChannel = rs.PhysicalChannel;
                            x.FixtureType     = rs.FixtureType;
                            x.PinNO           = rs.PinNO;
                        }
                        else
                        {
                            MessageBox.Show($"导入数据出错:{x.FixtureNO}-{x.PinIndex}在表3中不存在!", "错误", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                    }
                                   );

                    #region
                    ////将From to 拆分成单个的两个归属到治具里
                    //var ctlst = dt.Rows.Cast<DataRow>().Where(x => x.ItemArray[1].ToString() != "").Select(r => new ConnectInfoEx
                    //{
                    //    ProjectNO = projectNO,
                    //    WireNum = r[1].ToString().Trim(),
                    //    CirCuitName = r[2].ToString().Trim(),

                    //    Pins = new List<BasePin>() { new BasePin() { PinIndex = Convert.ToInt32(r[4].ToString().Trim()), FixtureNO = r[3].ToString().Trim()},
                    // new BasePin() { PinIndex = Convert.ToInt32(r[6].ToString().Trim()), FixtureNO = r[5].ToString().Trim()},}
                    //}).ToList();



                    #endregion

                    #endregion


                    Dictionary <string, object> dict = new Dictionary <string, object>();

                    //实体线束(零件图号)
                    string sql = "Insert into ExcelPart(ProjectNO,PartType,Circuit)Values(@ProjectNO,@PartType,@Circuit)";
                    dict.Add(sql, projects);

                    int row1 = SQliteDbContext.MultiInsert <Part>(sql, projects);
                    if (row1 == 0)
                    {
                        MessageBox.Show($"导入数据出错,插入数据库失败!", "错误", MessageBoxButton.OK, MessageBoxImage.Error);
                        return(false);
                    }
                    //治具信息
                    string sqlFixtureAdd = "Insert into ExcelFixturePinInfo(ProjectNO,FixtureType,FixtureNO,PinNO, PinIndex)Values(@ProjectNO,@FixtureType,@FixtureNO,@PinNO,@PinIndex)";
                    int    row2          = SQliteDbContext.MultiInsert <FixtureInfo>(sqlFixtureAdd, fixtures);
                    if (row2 == 0)
                    {
                        MessageBox.Show($"导入数据出错,插入数据库失败!", "错误", MessageBoxButton.OK, MessageBoxImage.Error);
                        return(false);
                    }
                    //连接点
                    string sqlconn = "Insert into ExcelConnect(WireNum,CirCuitName,ProjectNO,FixtureNO,FixtureType,PinIndex,PinNO)Values(@WireNum,@CirCuitName,@ProjectNO,@FixtureNO,@FixtureType,@PinIndex,@PinNO)";
                    int    row3    = SQliteDbContext.MultiInsert <ConnectionInfo>(sqlconn, result);
                    if (row3 == 0)
                    {
                        MessageBox.Show($"导入数据出错,插入数据库失败!", "错误", MessageBoxButton.OK, MessageBoxImage.Error);
                        return(false);
                    }
                }

                return(true);
            }


            catch (Exception ex)
            {
                MessageBox.Show($"导入数据出错:{ex.Message}", "错误", MessageBoxButton.OK, MessageBoxImage.Error);
                return(false);
            }
        }
        private void Ellipse_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            Ellipse ep = sender as Ellipse;

            mousedown = true;
            if (Operator != Operation.Create)
            {
                if (tempEp != null)
                {
                    tempEp.Fill = TempBruhes;
                }
                tempEp     = ep;
                TempBruhes = ep.Fill;
                ep.Fill    = Brushes.LawnGreen;

                ep.CaptureMouse();
            }
            if (Operator == Operation.Delete)
            {
                ep.ReleaseMouseCapture();
                canvas.UnregisterName(ep.Name);
                canvas.Children.Remove(ep);

                if (ep.Name != null && ep.Name != "")
                {
                    SQliteDbContext.DeleteOneExPin(ep.Name.Substring(1, ep.Name.Length - 1), (App.Current.Resources["Locator"] as ViewModelLocator).ExcelPaper.Fixture.FixtureType);
                    ExcelPin p = (App.Current.Resources["Locator"] as ViewModelLocator).ExcelPaper.Pins.ToList().Find(x => x.PinNO == ep.Name.Substring(1, ep.Name.Length - 1));
                    (App.Current.Resources["Locator"] as ViewModelLocator).ExcelPaper.Pins.Remove(p);
                }
            }
            if (Operator == Operation.Modify)
            {
                if (tempEp != null)
                {
                    int value = 0;
                    int.TryParse(txtDia.Text, out value);
                    if (cbDia.IsChecked.HasValue && cbDia.IsChecked.Value)
                    {
                        tempEp.Height = value;
                        tempEp.Width  = value;
                    }
                    if (cbDia.IsChecked.HasValue && cbColor.IsChecked.Value)
                    {
                        tempEp.Fill = clpk.SelectedBrush;
                    }
                }
                if (tempEp.Name == "")
                {
                    ExcelPin p = new ExcelPin();
                    p.PinEX  = canvas.RenderSize.Width;
                    p.PinEY  = canvas.RenderSize.Height;
                    p.PinSX  = Canvas.GetLeft(tempEp);
                    p.PinSY  = Canvas.GetTop(tempEp);
                    p.Radius = tempEp.ActualHeight;
                    if (tempEp.Fill.ToString().Trim().Length > 0 && tempEp.Fill.ToString() != "0")
                    {
                        p.DrawColor = tempEp.Fill.ToString();
                    }
                    else
                    {
                        p.DrawColor = "#FF0000";
                    }

                    if ((App.Current.Resources["Locator"] as ViewModelLocator).ExcelPaper.Fixture == null)
                    {
                        MessageBox.Show("请选择一个治具型号后再创建!", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
                        return;
                    }
                    p.FixtureType = (App.Current.Resources["Locator"] as ViewModelLocator).ExcelPaper.Fixture.FixtureType;
                    (App.Current.Resources["Locator"] as ViewModelLocator).ExcelPaper.Pin = p;
                    ExcelPinWindow codeWindow = new ExcelPinWindow(false);
                    codeWindow.ShowDialog();
                    // tempEp.Name = "P" + p.PinNO;
                    //canvas.RegisterName(tempEp.Name, tempEp);
                    tempEp.Fill = TempBruhes;
                }
                else
                {
                    ExcelPin p = SQliteDbContext.GetOneExPin((App.Current.Resources["Locator"] as ViewModelLocator).ExcelPaper.Fixture.FixtureType, tempEp.Name.Substring(1, tempEp.Name.Length - 1));
                    if (p == null)
                    {
                        return;
                    }
                    p.PinEX  = canvas.RenderSize.Width;
                    p.PinEY  = canvas.RenderSize.Height;
                    p.PinSX  = Canvas.GetLeft(tempEp);
                    p.PinSY  = Canvas.GetTop(tempEp);
                    p.Radius = tempEp.ActualHeight;
                    (App.Current.Resources["Locator"] as ViewModelLocator).ExcelPaper.Pin = p;


                    ExcelPinWindow codeWindow = new ExcelPinWindow(true);

                    //  SQliteDbContext.UpdatOneExPin(p);
                    codeWindow.ShowDialog();
                    tempEp.Name = "P" + p.PinNO;
                }
            }
        }
        private void Ellipse_MouseUp(object sender, MouseButtonEventArgs e)
        {
            Ellipse ep = sender as Ellipse;

            mousedown = false;

            ep.ReleaseMouseCapture();
            if (tempEp != null && (Operator == Operation.Move))
            {
                tempEp.Fill = TempBruhes;
                Operator    = Operation.None;
            }
            if (ep.Name != null && ep.Name.Trim().Length > 0)
            {
                string name = ep.Name.Remove(0, 1);

                ExcelPin p = (App.Current.Resources["Locator"] as ViewModelLocator).ExcelPaper.Pins.ToList().Find(x => x.PinNO == name);
                if (p == null)
                {
                    return;
                }
                p.PinSX = Canvas.GetLeft(ep);
                p.PinSY = Canvas.GetTop(ep);
                SQliteDbContext.UpdatOneExPin(p);
            }
            if (ep.Name == "" && Operator == Operation.Create)
            {
                ExcelPin p = new ExcelPin();
                p.PinEX  = canvas.RenderSize.Width;
                p.PinEY  = canvas.RenderSize.Height;
                p.PinSX  = Canvas.GetLeft(ep);
                p.PinSY  = Canvas.GetTop(ep);
                p.Radius = ep.ActualHeight;

                if (ep.Fill.ToString().Trim().Length > 0 && ep.Fill.ToString() != "0")
                {
                    p.DrawColor = ep.Fill.ToString();
                }
                else
                {
                    p.DrawColor = "#FF0000";
                }

                if ((App.Current.Resources["Locator"] as ViewModelLocator).ExcelPaper.Fixture == null)
                {
                    MessageBox.Show("请选择一个治具型号后再创建!", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
                    return;
                }
                p.FixtureType = (App.Current.Resources["Locator"] as ViewModelLocator).ExcelPaper.Fixture.FixtureType;
                var pnm = (App.Current.Resources["Locator"] as ViewModelLocator).ExcelPaper.Pins.OrderBy(x => Convert.ToInt16(x.PinNO)).LastOrDefault();
                int pn  = 0;
                if (pnm != null)
                {
                    string pno = pnm.PinNO;
                    int.TryParse(pno, out pn);
                }


                p.PinNO           = (pn + 1).ToString();
                p.PhysicalChannel = (App.Current.Resources["Locator"] as ViewModelLocator).ExcelPaper.Channels.FirstOrDefault();
                (App.Current.Resources["Locator"] as ViewModelLocator).ExcelPaper.Pin = p;
                ExcelPinWindow codeWindow = new ExcelPinWindow(false);
                codeWindow.ShowDialog();
                // tempEp.Name = "P" + p.PinNO;
                //canvas.RegisterName(tempEp.Name, tempEp);
                if (codeWindow.IsAdd)
                {
                    tempEp  = ep;
                    ep.Name = "P" + p.PinNO;

                    canvas.RegisterName(ep.Name, ep);
                }
                else
                {
                    ep.Fill = null;
                }
            }
        }