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<Tx, Ty>;
|
using DataEntity.Share;
|
namespace XHandler.View.Liquids
|
{
|
/// <summary>
|
/// CalibrationParam.xaml 的交互逻辑
|
/// </summary>
|
public partial class CalibrationParam : UserControl
|
{
|
ObservableCollection<LiquidAccuracy> calibrationList = new ObservableCollection<LiquidAccuracy>();
|
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<DeviceArm> deviceArms = aspirateBll.ProviderDeviceArmListForLiquidAccuracy(softwareInformation.software_device_number);
|
BindingData();
|
|
string userid = UserDB.GetUserInfByUserName(Shared.User.username).id;
|
//所有菜单
|
List<RoleMenu> 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<DeviceArm> 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<Label> listBtn = GetChildObjects<Label>((DependencyObject)a, typeof(Label));
|
if (listBtn.Count > 0)
|
{
|
string grd = (listBtn[0]).Tag.ToString();
|
LiquidAccuracy liquidAccuracy = new LiquidAccuracy();
|
liquidAccuracy.liquidaccuracy_Id = grd;
|
int iResult = liquidAccuracyBll.DeleteLiquidAccuracyIntodb(liquidAccuracy);
|
if (iResult == 1)
|
{
|
calibrationList.Remove(calibrationList.FirstOrDefault(x => x.liquidaccuracy_Id == grd));
|
}
|
else
|
{
|
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
public void saveCalibrationParam()
|
{
|
dg.CommitEdit();
|
}
|
|
#region 查找控件的子控件,并返回子控件对象
|
public List<T> GetChildObjects<T>(DependencyObject obj, Type typename) where T : FrameworkElement
|
{
|
DependencyObject child = null;
|
List<T> childList = new List<T>();
|
|
for (int i = 0; i <= VisualTreeHelper.GetChildrenCount(obj) - 1; i++)
|
{
|
child = VisualTreeHelper.GetChild(obj, i);
|
|
if (child is T && (((T)child).GetType() == typename))
|
{
|
childList.Add((T)child);
|
}
|
childList.AddRange(GetChildObjects<T>(child, typename));
|
}
|
return childList;
|
}
|
#endregion
|
}
|
}
|