| | |
| | | using System.IO; |
| | | using HMI.Base; |
| | | using HMI.Core.Entity; |
| | | using HMI.Core.Manager; |
| | | using HMI.Core.Util; |
| | | using HMI.ParameterManage.Model; |
| | | using HMI.UI.Util; |
| | | using NPOI.POIFS.NIO; |
| | | using NPOI.SS.Formula.Functions; |
| | | using System.Linq; |
| | | using System.Text.RegularExpressions; |
| | | using System.Windows; |
| | | using System.Windows.Controls; |
| | | using HMI.Base; |
| | | using HMI.Core.Util; |
| | | using HMI.ParameterManage.Entity; |
| | | using HMI.UI.Util; |
| | | using System.Windows.Markup; |
| | | |
| | | namespace HMI.ParameterManage |
| | | { |
| | |
| | | /// </summary> |
| | | public partial class ParameterManage : PluginControl |
| | | { |
| | | private ControlModel Model; |
| | | private SqliteHelper SqliteHelper; |
| | | private XmlModel Model; |
| | | |
| | | public ParameterManage() |
| | | { |
| | |
| | | |
| | | public override void InitFinish() |
| | | { |
| | | string dbpath = Path.Combine(BaseFolder, "ParameterManage.db"); |
| | | if (!File.Exists(dbpath)) |
| | | { |
| | | SqliteHelper.CreateDatabase(dbpath); |
| | | } |
| | | SqliteHelper = new SqliteHelper(dbpath); |
| | | SqliteHelper.ExecuteSql(@"CREATE TABLE IF NOT EXISTS product ( |
| | | id INTEGER PRIMARY KEY AUTOINCREMENT, |
| | | name TEXT NOT NULL, |
| | | isMaster INTEGER, |
| | | parentId INTEGER, |
| | | UNIQUE(name) |
| | | ); |
| | | CREATE TABLE IF NOT EXISTS parameter ( |
| | | id INTEGER PRIMARY KEY AUTOINCREMENT, |
| | | name TEXT NOT NULL, |
| | | value TEXT, |
| | | unit TEXT, |
| | | description TEXT, |
| | | pGroup TEXT, |
| | | productName TEXT, |
| | | UNIQUE(productName,name) |
| | | ); |
| | | "); |
| | | Model = new ControlModel(SqliteHelper); |
| | | Model = new XmlModel(BaseFolder); |
| | | DataContext = Model; |
| | | } |
| | | |
| | | private void UserControl_Loaded(object sender, RoutedEventArgs e) |
| | | { |
| | | Model.LoadProducts(); |
| | | Model.LoadParameters(); |
| | | Loaded -= UserControl_Loaded; |
| | | } |
| | | |
| | |
| | | switch (btn.Name) |
| | | { |
| | | case "addBtn": |
| | | OpenAddDialog(); |
| | | OpenProductDialog(null); |
| | | break; |
| | | case "refreshBtn": |
| | | Model.LoadProducts(); |
| | | break; |
| | | case "editProductBtn": |
| | | OpenProductDialog((ProductData)btn.DataContext); |
| | | break; |
| | | case "delProductBtn": |
| | | TryDeleteProduct((ProductData)btn.DataContext); |
| | | break; |
| | | case "delBatchBtn": |
| | | TryDeleteProducts(); |
| | | break; |
| | | case "refrshBtn": |
| | | Model.LoadProducts(); |
| | |
| | | case "editParameterBtn": |
| | | OpenAddParameterDialog((ParameterData)btn.DataContext); |
| | | break; |
| | | case "delParameterBtn": |
| | | TryDeleteParameter((ParameterData)btn.DataContext); |
| | | break; |
| | | case "deleteBatchParameterBtn": |
| | | TryDeleteParameters(); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | } |
| | | |
| | | private void OpenAddDialog() |
| | | private void OpenProductDialog(ProductData data) |
| | | { |
| | | var win = new ProductModal |
| | | var win = new ProductModal(Model) |
| | | { |
| | | Title = "新增产品", |
| | | Title = data == null ? this.lang("Pm.Product.Add") : this.lang("Pm.Product.Edit"), |
| | | Owner = Window.GetWindow(this), |
| | | sqliteHelper = SqliteHelper |
| | | }; |
| | | if (win.Open(new ProductData()) == true) |
| | | if (win.Open(data ?? new ProductData(), data != null) == true) |
| | | { |
| | | Model.LoadProducts(); |
| | | } |
| | |
| | | { |
| | | if (Model.SelectedProduct == null) |
| | | { |
| | | ToastHelper.Warning(Window.GetWindow(this), "请先选择一项产品"); |
| | | ToastHelper.Warning(Window.GetWindow(this), this.lang("Pm.PleaseSelectProduct")); |
| | | return; |
| | | } |
| | | var win = new ParameterModal |
| | | //var win = new ParameterModal(Model) |
| | | //{ |
| | | // Title = data == null ? this.lang("Pm.Parameter.Add") : this.lang("Pm.Parameter.Edit"), |
| | | // Owner = Window.GetWindow(this), |
| | | //}; |
| | | //if (win.Open(Model.SelectedProduct.Name, data ?? new ParameterData { ProductName = Model.SelectedProduct.Name }, Model.groups) == true) |
| | | //{ |
| | | // Model.LoadParameters(); |
| | | //} |
| | | |
| | | SettingModal modal = new SettingModal() |
| | | { |
| | | Title = data == null ? "新增参数" : "编辑参数", |
| | | Owner = Window.GetWindow(this), |
| | | sqliteHelper = SqliteHelper |
| | | Title = data == null ? this.lang("Pm.Parameter.Add") : this.lang("Pm.Parameter.Edit"), |
| | | Owner = Window.GetWindow(this) |
| | | }; |
| | | if (win.Open(data ?? new ParameterData { ProductName = Model.SelectedProduct.Name }) == true) |
| | | var target = data ?? new ParameterData(); |
| | | if (modal.Open(target, Model.Parameters, Model.groups, Model.SelectedProduct.Name) == true) |
| | | { |
| | | //if (index == -1) |
| | | //{ |
| | | // Datasource.Add(modal.Data); |
| | | // ParameterManager.SaveCommonParameter(Datasource); |
| | | //} |
| | | //else |
| | | //{ |
| | | // ParameterManager.SaveCommonParameter(Datasource); |
| | | //} |
| | | Model.SaveOrUpdateParameter(target); |
| | | Model.LoadParameters(); |
| | | } |
| | | } |
| | | |
| | | private void TryDeleteProduct(ProductData data) |
| | | { |
| | | if (MsgBoxHelper.WarnMessage(Window.GetWindow(this), this.lang("HMI.MakeSureDeleteSingle", data.Name)) |
| | | == MessageBoxResult.OK) |
| | | { |
| | | Model.DeleteProduct(data); |
| | | Model.LoadProducts(); |
| | | } |
| | | } |
| | | |
| | | private void TryDeleteProducts() |
| | | { |
| | | var temp = Model.Products.Where(p => p.IsSelected).Count(); |
| | | if (temp <= 0) |
| | | { |
| | | this.Warning(this.lang("HMI.NoDeleteData")); |
| | | return; |
| | | } |
| | | if (MsgBoxHelper.WarnMessage(Window.GetWindow(this), this.lang("HMI.MakeSureDeletes", temp)) |
| | | == MessageBoxResult.OK) |
| | | { |
| | | Model.DeleteProducts(); |
| | | Model.LoadProducts(); |
| | | } |
| | | } |
| | | |
| | | private void TryDeleteParameter(ParameterData data) |
| | | { |
| | | if (MsgBoxHelper.WarnMessage(Window.GetWindow(this), this.lang("HMI.MakeSureDeleteSingle", data.Name)) == MessageBoxResult.OK) |
| | | { |
| | | Model.DeleteParameter(data); |
| | | Model.LoadParameters(); |
| | | } |
| | | } |
| | | |
| | | private void TryDeleteParameters() |
| | | { |
| | | var temp = Model.Parameters.Where(p => p.IsSelected).Count(); |
| | | if (temp <= 0) |
| | | { |
| | | this.Warning(this.lang("HMI.NoDeleteData")); |
| | | return; |
| | | } |
| | | if (MsgBoxHelper.WarnMessage(Window.GetWindow(this), this.lang("HMI.MakeSureDeletes", temp)) |
| | | == MessageBoxResult.OK) |
| | | { |
| | | Model.DeleteParameters(); |
| | | Model.LoadParameters(); |
| | | } |
| | | } |
| | | } |
| | | } |