using DataEntity;
|
using DataEntity.Share;
|
using DataRWDAL;
|
using System;
|
using System.Collections.Generic;
|
using System.Collections.ObjectModel;
|
using System.Linq;
|
using System.Windows;
|
using System.Windows.Controls;
|
using System.Windows.Media;
|
using XCommon.Log;
|
using XCore;
|
using XHandler.Class.DataEx;
|
using XHandler.View.Com;
|
using XImagingXhandler.XDAL;
|
|
namespace XHandler.View.MethodProperty
|
{
|
/// <summary>
|
/// 超声探测子页面
|
/// </summary>
|
public partial class UltrasonicChildProperty : System.Windows.Controls.UserControl
|
{
|
#region 变量
|
private AspirateBll aspirateBll = new AspirateBll();
|
private int mark = 0;
|
public MethodUltrasonicChild m_ultrasonicData = null;
|
#endregion
|
|
#region 构造函数
|
public UltrasonicChildProperty(MethodUltrasonicChild ultrasonicData, bool isFromChoice = false)
|
{
|
mark = 0;
|
InitializeComponent();
|
m_ultrasonicData = ultrasonicData;
|
|
#region 台面位置
|
List<string> list = new List<string>();
|
List<Lattice> lattices = DataModule.getInstance().GetLattices();
|
for (int i = 0; i < Shared.SoftwareInformation.columns; i++)
|
{
|
for (int j = 0; j < Shared.SoftwareInformation.rows; j++)
|
{
|
int tmp = i * Shared.SoftwareInformation.rows + j;
|
Lattice latt = lattices[tmp];
|
if (latt.is_trash == 1)
|
continue;
|
list.Add(latt.lattice_num);
|
}
|
}
|
list.Insert(0, Properties.Resources.strPleaseSelect); // 请选择
|
comboboxTablePos.ItemsSource = list;
|
if (isFromChoice)
|
{
|
// 挑选转运
|
comboboxTablePos.IsEnabled = false;
|
}
|
#endregion
|
|
// 获取耗材类型下拉选择数据
|
ObservableCollection<DropdownName> labwareList = GenerateLabwareType();
|
comboboxLabwareType.ItemsSource = labwareList;
|
|
// 圆形皿多探测点位DataGrid
|
dgPointListData.ItemsSource = m_ultrasonicData.pointList;
|
this.DataContext = m_ultrasonicData;
|
}
|
#endregion
|
|
#region 页面初始化
|
private void UserControl_Loaded(object sender, RoutedEventArgs e)
|
{
|
mark += 1;
|
try
|
{
|
if (mark > 1)
|
{
|
return;
|
}
|
|
if (m_ultrasonicData == null)
|
{
|
m_ultrasonicData = new MethodUltrasonicChild();
|
return;
|
}
|
|
// 台面位置
|
if (!string.IsNullOrEmpty(m_ultrasonicData.positionValue))
|
{
|
comboboxTablePos.SelectedItem = m_ultrasonicData.positionText;
|
}
|
else
|
{
|
comboboxTablePos.SelectedIndex = 0;
|
}
|
|
// 耗材名称
|
comboboxLabwareType.SelectedValue = m_ultrasonicData.labwareValue;
|
if (m_ultrasonicData.pointList == null)
|
{
|
// 构建圆形皿默认三个坐标
|
m_ultrasonicData.pointList = GenerateDefaultPointList();
|
}
|
|
tbxXAxis.Text = m_ultrasonicData.xDishAxisVal.ToString();
|
tbxYAxis.Text = m_ultrasonicData.yDishAxisVal.ToString();
|
tbxRowNum.Text = m_ultrasonicData.rowNum.ToString();
|
tbxColumnNum.Text = m_ultrasonicData.columnNum.ToString();
|
tbxCloseTop.Text = m_ultrasonicData.closeTopVal.ToString();
|
tbxCloseLeft.Text = m_ultrasonicData.closeLeftVal.ToString();
|
tbxDistanceOfX.Text = m_ultrasonicData.xAxisVal.ToString();
|
tbxDistanceOfY.Text = m_ultrasonicData.yAxisVal.ToString();
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 台面位置选择变更
|
private void comboboxTablePos_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
try
|
{
|
if (comboboxTablePos.SelectedIndex < 0)
|
{
|
return;
|
}
|
else if (comboboxTablePos.SelectedIndex == 0)
|
{
|
m_ultrasonicData.positionValue = "";
|
m_ultrasonicData.positionText = "";
|
return;
|
}
|
else
|
{
|
// 根据所选的台面加载圆皿中心坐标
|
Lattice lattice = null;
|
TabletopTemplate tabletopTemplate = TabletopTemplateDB.GetCurrentAppTabletopTemplateCollectionFromdb(); //增加台面模板判断
|
if (tabletopTemplate == null)
|
{
|
lattice = LatticeDB.GetLatticeDataByIdFromdb((string)comboboxTablePos.SelectedItem, Convert.ToInt32(Shared.ChanelArmId), Shared.SoftwareInformation.software_device_number);
|
}
|
else
|
{
|
lattice = LatticeDB.GetLatticeDataByLatticeNumAndTempIdFromdb((string)comboboxTablePos.SelectedItem, Convert.ToInt32(Shared.DeviceArmList.SingleOrDefault(x => x.arm_type.Equals(1)).device_arm_id), Shared.SoftwareInformation.software_device_number, tabletopTemplate.tabletopid);
|
}
|
tbxXAxis.Text = ((double)lattice.lattice_X + ((double)lattice.lattice_length / (double)2)).ToString("0.0");
|
tbxYAxis.Text = ((double)lattice.lattice_Y + ((double)lattice.lattice_width / (double)2)).ToString("0.0");
|
|
m_ultrasonicData.positionText = ((string)comboboxTablePos.SelectedItem).ToString();
|
m_ultrasonicData.positionValue = ((string)comboboxTablePos.SelectedItem).ToString();
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 耗材名称选择变更事件
|
private void comboboxLabwareType_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
try
|
{
|
if (comboboxLabwareType.SelectedIndex == 0)
|
{
|
bdDish.Visibility = Visibility.Visible;
|
bdLabware.Visibility = Visibility.Collapsed;
|
}
|
else if (comboboxLabwareType.SelectedIndex == 1)
|
{
|
bdDish.Visibility = Visibility.Collapsed;
|
bdLabware.Visibility = Visibility.Visible;
|
}
|
|
if (m_ultrasonicData != null)
|
{
|
m_ultrasonicData.labwareValue = ((DropdownName)comboboxLabwareType.SelectedItem).dropdown_id.ToString();
|
m_ultrasonicData.labwareText = ((DropdownName)comboboxLabwareType.SelectedItem).dropdown_name.ToString();
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 圆形皿相关
|
#region X轴
|
private void tbxXAxis_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (m_ultrasonicData != null)
|
{
|
m_ultrasonicData.xDishAxisVal = Convert.ToDouble(tbxXAxis.Text);
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region Y轴
|
private void tbxYAxis_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (m_ultrasonicData != null)
|
{
|
m_ultrasonicData.yDishAxisVal = Convert.ToDouble(tbxYAxis.Text);
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 点位设置 新增
|
private void btnAdd_Click(object sender, RoutedEventArgs e)
|
{
|
try
|
{
|
DropdownName dropdownName = new DropdownName();
|
dropdownName.index_id = m_ultrasonicData.pointList.Count + 1;
|
dropdownName.dropdown_id = "0";
|
dropdownName.dropdown_name = "0";
|
m_ultrasonicData.pointList.Add(dropdownName);
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 点位设置 删除
|
private void btnDelete_Click(object sender, RoutedEventArgs e)
|
{
|
try
|
{
|
int SelectedRow = dgPointListData.SelectedIndex;//尝试解析出所选行
|
if (SelectedRow < 0)
|
{
|
return;
|
}
|
var a = dgPointListData.Columns[0].GetCellContent(dgPointListData.Items[SelectedRow]);
|
|
List<System.Windows.Controls.Label> listBtn = ViewCom.GetChildObjects<System.Windows.Controls.Label>((DependencyObject)a, typeof(System.Windows.Controls.Label));
|
if (listBtn.Count > 0)
|
{
|
int grd = Convert.ToInt32(listBtn[0].Tag);
|
|
m_ultrasonicData.pointList.Remove(m_ultrasonicData.pointList.FirstOrDefault(x => x.index_id == grd));
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 点位设置 单元格编辑
|
private void dgPointListData_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
|
{
|
try
|
{
|
// 如果点击了放弃按钮或ESC
|
if (e.EditAction == DataGridEditAction.Cancel)
|
{
|
return;
|
}
|
// 获取编辑模式显示的元素,因为使用了模板,因此这里是ContentPresenter类型
|
ContentPresenter cp = e.EditingElement as ContentPresenter;
|
if (cp != null && VisualTreeHelper.GetChildrenCount(cp) > 0)
|
{
|
// 找到编辑框
|
System.Windows.Controls.TextBox textBox = VisualTreeHelper.GetChild(cp, 0) as System.Windows.Controls.TextBox;
|
// 如果找到
|
if (textBox != null)
|
{
|
#region Del
|
//验证输入值
|
//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))
|
//{
|
// 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;
|
//}
|
#endregion
|
|
int id = Convert.ToInt32(textBox.Tag);
|
var pointItem = m_ultrasonicData.pointList.FirstOrDefault(x => x.index_id == id);
|
|
DropdownName dropdown = new DropdownName();
|
dropdown.index_id = id;
|
if (textBox.Name == "tbXoffset")
|
{
|
dropdown.dropdown_id = textBox.Text;
|
pointItem.dropdown_id = textBox.Text;
|
}
|
else
|
{
|
dropdown.dropdown_name = textBox.Text;
|
pointItem.dropdown_name = textBox.Text;
|
}
|
|
var dataGrid = sender as System.Windows.Controls.DataGrid;
|
dataGrid.BeginEdit();
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
#endregion
|
|
#region 非圆皿相关
|
#region 行数变更事件
|
private void tbxRowNum_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (m_ultrasonicData != null)
|
{
|
m_ultrasonicData.rowNum = Convert.ToInt32(tbxRowNum.Text);
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 列数变更事件
|
private void tbxColumnNum_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (m_ultrasonicData != null)
|
{
|
m_ultrasonicData.columnNum = Convert.ToInt32(tbxColumnNum.Text);
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 距顶边变更事件
|
private void tbxCloseTop_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (m_ultrasonicData != null)
|
{
|
m_ultrasonicData.closeTopVal = Convert.ToDouble(tbxCloseTop.Text);
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 距左边
|
private void tbxCloseLeft_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (m_ultrasonicData != null)
|
{
|
m_ultrasonicData.closeLeftVal = Convert.ToDouble(tbxCloseLeft.Text);
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region X间距
|
private void tbxDistanceOfX_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (m_ultrasonicData != null)
|
{
|
m_ultrasonicData.xAxisVal = Convert.ToDouble(tbxDistanceOfX.Text);
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region Y间距
|
private void tbxDistanceOfY_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (m_ultrasonicData != null)
|
{
|
m_ultrasonicData.yAxisVal = Convert.ToDouble(tbxDistanceOfY.Text);
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
#endregion
|
|
#region 私有方法
|
#region 构建耗材类型下拉选择数据
|
private ObservableCollection<DropdownName> GenerateLabwareType()
|
{
|
ObservableCollection<DropdownName> dropdownNames = new ObservableCollection<DropdownName>();
|
DropdownName dropdownName = new DropdownName();
|
dropdownName.dropdown_id = "1";
|
dropdownName.dropdown_name = "圆形皿";
|
dropdownNames.Add(dropdownName);
|
dropdownName = new DropdownName();
|
dropdownName.dropdown_id = "2";
|
dropdownName.dropdown_name = "非圆形皿";
|
dropdownNames.Add(dropdownName);
|
return dropdownNames;
|
}
|
#endregion
|
|
#region 构建圆形皿默认三个坐标
|
private ObservableCollection<DropdownName> GenerateDefaultPointList()
|
{
|
ObservableCollection<DropdownName> points = new ObservableCollection<DropdownName>();
|
|
DropdownName point1 = new DropdownName();
|
point1.dropdown_id = "-10";
|
point1.dropdown_name = "0";
|
points.Add(point1);
|
|
point1 = new DropdownName();
|
point1.dropdown_id = "0";
|
point1.dropdown_name = "0";
|
points.Add(point1);
|
|
point1 = new DropdownName();
|
point1.dropdown_id = "10";
|
point1.dropdown_name = "0";
|
points.Add(point1);
|
|
return points;
|
}
|
#endregion
|
|
#endregion
|
}
|
}
|