using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; //using System.Web.UI.WebControls; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Markup; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using System.Xml.Linq; using XCommon.Log; using XCore; using XHandler.Class; using XHandler.Controls; using XImagingXhandler.XDAL; //using static NPOI.XSSF.UserModel.Charts.XSSFLineChartData; using DataEntity.Share; namespace XHandler.View.Liquids { /// /// CalibrationParam.xaml 的交互逻辑 /// public partial class CalibrationParam : UserControl { ObservableCollection calibrationList = new ObservableCollection(); Liquid liquid; public string liquidRangeId = ""; public string liquidtypeId = ""; public string deviceArmId = ""; LiquidAccuracyBll liquidAccuracyBll = new LiquidAccuracyBll(); SoftwareInformation softwareInformation = new SoftwareInformation(); AspirateBll aspirateBll = new AspirateBll(); VerificationTextBox verificationTextBox = new VerificationTextBox(); public CalibrationParam() { InitializeComponent(); LiquidAccuracy data = new LiquidAccuracy(); data.liquid_target_volume = 0; data.liquid_Real_volume = 0; calibrationList.Add(data); data = new LiquidAccuracy(); data.liquid_target_volume = 1; data.liquid_Real_volume = 1; calibrationList.Add(data); data = new LiquidAccuracy(); data.liquid_target_volume = 2; data.liquid_Real_volume = 2; calibrationList.Add(data); dg.ItemsSource = calibrationList; } public void BindingData() { calibrationList = liquidAccuracyBll.GetLiquidAccuracyFromdb(Convert.ToInt32(liquidRangeId), Convert.ToInt32(deviceArmId), liquidtypeId); dg.ItemsSource = calibrationList; } public CalibrationParam(Liquid l) { InitializeComponent(); if (l == null) { return; } liquid = l; liquidRangeId = liquid.liquid_range_id; liquidtypeId = liquid.liquid_type_id; deviceArmId = liquid.device_arm_id; //softwareInformation = softwareInformationBll.GetSoftwareInformationData(1); //ObservableCollection deviceArms = aspirateBll.ProviderDeviceArmListForLiquidAccuracy(softwareInformation.software_device_number); BindingData(); string userid = UserDB.GetUserInfByUserName(Shared.User.username).id; //所有菜单 List roleMenuAllList = UserDB.GetWholeRoleMenuByUserId(userid); //权限控制 var MenuLiquidManage = roleMenuAllList.FirstOrDefault(x => x.rolemenuname.Equals(MenuName.MenuLiquidManage)); if (MenuLiquidManage != null) { var MenuLiquidEdit = MenuLiquidManage.rolemenuchildren.FirstOrDefault(x => x.rolemenuname.Equals(MenuName.SubMenuEdit)); if (MenuLiquidEdit != null) { gdContent.IsEnabled = true; } else { gdContent.IsEnabled = false; } } } public void SetLiquid(Liquid l) { liquid = l; if (l == null) { return; } liquid = l; liquidRangeId = liquid.liquid_range_id; liquidtypeId = liquid.liquid_type_id; deviceArmId = liquid.device_arm_id; //softwareInformation = softwareInformationBll.GetSoftwareInformationData(1); //ObservableCollection deviceArms = aspirateBll.ProviderDeviceArmListForLiquidAccuracy(softwareInformation.software_device_number); BindingData(); } private void dg_BeginningEdit(object sender, DataGridBeginningEditEventArgs e) { } private void dg_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) { //如果点击了放弃按钮或ESC if (e.EditAction == DataGridEditAction.Cancel) { return; } //获取编辑模式显示的元素,因为使用了模板,因此这里是ContentPresenter类型 ContentPresenter cp = e.EditingElement as ContentPresenter; if (cp != null && VisualTreeHelper.GetChildrenCount(cp) > 0) { //找到编辑框 TextBox textBox = VisualTreeHelper.GetChild(cp, 0) as TextBox; //如果找到 if (textBox != null) { //验证输入值 if (!Consumables.ConsumablesValidationRule.IsPositiveNumber(textBox.Text, out string message)) { textBox.Text = "0"; lnError.Text = message; return; } else if (!Consumables.ConsumablesValidationRule.IsRange(textBox.Text, 0.0, 1000.0, false, out message)) { if (Convert.ToInt32(deviceArmId) == (Shared.DeviceArmList.FirstOrDefault(x => x.head_type.Equals("1ml-10ml")).device_arm_id)) { if (!Consumables.ConsumablesValidationRule.IsRange(textBox.Text, 0.0, 10000.0, false, out message)) { textBox.Text = "0"; lnError.Text = message; return; } } else { textBox.Text = "0"; lnError.Text = message; return; } } else { lnError.Text = ""; } if (!verificationTextBox.VerificateTextBox(textBox, 11)) { textBox.BorderThickness = new Thickness(2); textBox.BorderBrush = Brushes.Red; return; } string id = Convert.ToString(textBox.Tag); var a = calibrationList.FirstOrDefault(x => x.liquidaccuracy_Id == id); LiquidAccuracy liquidAccuracy = new LiquidAccuracy(); liquidAccuracy.liquidaccuracy_Id = id; if (textBox.Name == "tbTarget") { liquidAccuracy.liquid_target_volume = Convert.ToDouble(textBox.Text); liquidAccuracy.liquid_Real_volume = Convert.ToDouble(a.liquid_Real_volume); a.liquid_target_volume = Convert.ToDouble(textBox.Text); a.liquid_Real_volume = a.liquid_Real_volume; } else { liquidAccuracy.liquid_target_volume = Convert.ToDouble(a.liquid_target_volume); liquidAccuracy.liquid_Real_volume = Convert.ToDouble(textBox.Text); a.liquid_target_volume = a.liquid_target_volume; a.liquid_Real_volume = Convert.ToDouble(textBox.Text); } liquidAccuracy.liquid_accuracy_k = 1.0d; liquidAccuracy.liquid_accuracy_b = 0.0d; liquidAccuracy.liquid_range_id = Convert.ToDouble(liquidRangeId); liquidAccuracy.device_arm_id = Convert.ToInt32(deviceArmId); liquidAccuracy.liquidtype_Id = a.liquidtype_Id; int result = liquidAccuracyBll.UpdateLiquidAccuracyIntodb(liquidAccuracy); a.liquid_accuracy_k = 1.0d; a.liquid_accuracy_b = 0.0d; //if (result == 1) //{ // MessageBox.Show("update a liquid accuracy is succes!"); //} //else //{ // MessageBox.Show("update a liquid accuracy is fail!"); //} var dataGrid = sender as DataGrid; dataGrid.BeginEdit(); } } } private void btnAdd_Click(object sender, RoutedEventArgs e) { LiquidAccuracy data = new LiquidAccuracy(); data.liquid_range_id = Convert.ToInt32(liquid.liquid_range_id); data.liquidtype_Id = liquid.liquid_type_id; data.liquid_target_volume = 0; data.liquid_Real_volume = 0; data.device_arm_id = Convert.ToInt32(liquid.device_arm_id); data.liquid_accuracy_k = 1.0d; data.liquid_accuracy_b = 0.0d; data.liquidaccuracy_Id = ""; calibrationList.Add(data); LiquidAccuracy liquidAccuracy = new LiquidAccuracy(); liquidAccuracy.liquid_target_volume = Convert.ToDouble(data.liquid_target_volume); liquidAccuracy.liquid_Real_volume = Convert.ToDouble(data.liquid_Real_volume); liquidAccuracy.liquid_accuracy_k = 1.0d; liquidAccuracy.liquid_accuracy_b = 0.0d; liquidAccuracy.liquid_range_id = data.liquid_range_id; liquidAccuracy.liquidaccuracy_Id = ""; liquidAccuracy.device_arm_id = Convert.ToInt32(data.device_arm_id); liquidAccuracy.liquidtype_Id = data.liquidtype_Id; string sid = ""; int result = liquidAccuracyBll.AddLiquidAccuracyIntodb(liquidAccuracy, out sid); data.liquidaccuracy_Id = sid; } private void btnDelete_Click(object sender, RoutedEventArgs e) { try { int SelectedRow = dg.SelectedIndex;//尝试解析出所选行 if (SelectedRow < 0) { return; } var a = dg.Columns[0].GetCellContent(dg.Items[SelectedRow]); List