using DataEntity;
|
using DataRWDAL;
|
using Microsoft.Win32;
|
using System;
|
using System.Collections.Generic;
|
using System.Collections.ObjectModel;
|
using System.Configuration;
|
using System.Data;
|
using System.IO;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using System.Windows;
|
using System.Windows.Controls;
|
using System.Windows.Data;
|
using System.Windows.Documents;
|
using System.Windows.Input;
|
using System.Windows.Media;
|
using System.Windows.Media.Imaging;
|
using System.Windows.Navigation;
|
using System.Windows.Shapes;
|
using XCommon.Log;
|
using XCore;
|
using XHandler.Class;
|
using XImagingXhandler.XDAL;
|
using XCoreBLL;
|
using DataEntity.Share;
|
using XHandler.Class.DataEx;
|
using System.Text.RegularExpressions;
|
using HandyControl.Data;
|
using XCommon.Tip;
|
using System.Runtime.Remoting.Channels;
|
using XHandler.Controls;
|
|
namespace XHandler.View.MethodProperty
|
{
|
/// <summary>
|
/// FileMoveLabware.xaml 的交互逻辑
|
/// </summary>
|
public partial class FileMoveLabwareProperty : UserControl
|
{
|
FileMoveLabwareBll fileMoveLabwareBll = new FileMoveLabwareBll();
|
public MethodFileMoveLabware methodFileMoveLabware { get; set; }
|
public MethodFileMoveLabware currmethodFileMoveLabware = null;
|
public MethodEx method = null;
|
private Labware selectedLabware = null;
|
int curArmSelectedIndex = -1;
|
|
#region 全局变量
|
string isrun = "";
|
string status = "";
|
string name = "";
|
string label = "";
|
string armText = "";
|
string armValue = "";
|
|
string filePath = "";
|
int beginLine = 0;
|
DataTable transferDataTable = new DataTable();
|
string pickLattice = "";
|
string pickColumn = "";
|
string pickWell = "";
|
string pickPart = "";
|
string pickDirect = "";
|
string placeLattice = "";
|
string placeColumn = "";
|
string placeWell = "";
|
string placeDirect = "";
|
int transportMode = 0;
|
int transportCount = 0;
|
int mark = 0;
|
string comment = "";
|
#endregion
|
|
#region 构造
|
public FileMoveLabwareProperty()
|
{
|
InitializeComponent();
|
}
|
#endregion
|
|
#region 构造函数带参
|
public FileMoveLabwareProperty(MethodEx method)
|
{
|
try
|
{
|
InitializeComponent();
|
mark = 0;
|
methodFileMoveLabware = new MethodFileMoveLabware();
|
methodFileMoveLabware.label = method.method_name;
|
methodFileMoveLabware.name = method.method_name;
|
methodFileMoveLabware.status = (method.isEnabled == true ? "enable" : "disable");
|
|
List<DeviceArm> armList = DataModule.getInstance().GetDeviceArm();
|
cbArm.ItemsSource = armList;
|
if (armList.Count == 2) //只有一个臂的情况下默认选中该臂
|
{
|
curArmSelectedIndex = 1;
|
}
|
else if (armList.Count == 5)
|
{
|
curArmSelectedIndex = 2;
|
}
|
else
|
{
|
curArmSelectedIndex = 0;
|
}
|
|
methodFileMoveLabware.strIndex = method.strIndex;
|
this.method = method;
|
if (method.tag != null)
|
{
|
methodFileMoveLabware = (MethodFileMoveLabware)method.tag;
|
|
currmethodFileMoveLabware = methodFileMoveLabware;
|
|
isrun = methodFileMoveLabware.isrun;
|
status = methodFileMoveLabware.status;
|
name = methodFileMoveLabware.name;
|
label = methodFileMoveLabware.label;
|
armText = methodFileMoveLabware.armText;
|
armValue = methodFileMoveLabware.armValue;
|
|
filePath = methodFileMoveLabware.filePath;
|
beginLine = methodFileMoveLabware.beginLine;
|
transferDataTable = methodFileMoveLabware.transferDataTable;
|
pickLattice = methodFileMoveLabware.pickLattice;
|
pickColumn = methodFileMoveLabware.pickColumn;
|
pickWell = methodFileMoveLabware.pickWell;
|
pickPart = methodFileMoveLabware.pickPart;
|
pickDirect = methodFileMoveLabware.pickDirect;
|
placeLattice = methodFileMoveLabware.placeLattice;
|
placeColumn = methodFileMoveLabware.placeColumn;
|
placeWell = methodFileMoveLabware.placeWell;
|
placeDirect = methodFileMoveLabware.placeDirect;
|
|
transportMode = methodFileMoveLabware.transportMode;
|
transportCount = methodFileMoveLabware.transportCount;
|
comment = methodFileMoveLabware.comment;
|
}
|
this.DataContext = methodFileMoveLabware;
|
}
|
catch(Exception ex)
|
{
|
LoggerHelper.ErrorLog("FileMoveLabwareProperty ERROR:", ex);
|
}
|
}
|
#endregion
|
|
private void UserControl_Loaded(object sender, RoutedEventArgs e)
|
{
|
mark += 1;
|
try
|
{
|
if (mark > 1)
|
{
|
return;
|
}
|
if (!string.IsNullOrEmpty(armText))
|
{
|
tbxCommandName.Text = name;
|
tbxCommandComment.Text = comment;
|
cbArm.SelectedValue = armValue;
|
|
tbxbeginLine.Text = beginLine.ToString();
|
|
dgTransferFileData.ItemsSource = transferDataTable.DefaultView;
|
tbExcelFile.Text = filePath;
|
|
//更新所有下拉列表
|
List<TransferFileHeader> transferFileHeaders = fileMoveLabwareBll.GetTransferFileHeaders(transferDataTable);
|
cbPickLattice.ItemsSource = transferFileHeaders;
|
cbPickColumn.ItemsSource = transferFileHeaders;
|
cbPickWell.ItemsSource = transferFileHeaders;
|
|
cbPickDirect.ItemsSource = transferFileHeaders;
|
cbPlaceLattice.ItemsSource = transferFileHeaders;
|
cbPlaceColumn.ItemsSource = transferFileHeaders;
|
cbPlaceWell.ItemsSource = transferFileHeaders;
|
cbPlaceDirect.ItemsSource = transferFileHeaders;
|
cbPickPart.ItemsSource = transferFileHeaders;
|
cbPickPart.SelectedValue = pickPart;
|
cbPickLattice.Text = pickLattice;
|
cbPickColumn.Text = pickColumn;
|
cbPickWell.Text = pickWell;
|
cbPickDirect.Text = pickDirect;
|
cbPlaceLattice.Text = placeLattice;
|
cbPlaceColumn.Text = placeColumn;
|
cbPlaceWell.Text = placeWell.ToString();
|
cbPlaceDirect.Text = placeDirect;
|
|
if (transportMode == 0)
|
{
|
rbAll.IsChecked = true;
|
}
|
else if (transportMode == 1)
|
{
|
rbExceptOne.IsChecked = true;
|
}
|
else if (transportMode == 2)
|
{
|
rbCount.IsChecked = true;
|
tbxlevel.Text = transportCount.ToString();
|
}
|
|
if (currmethodFileMoveLabware != null)
|
{
|
methodFileMoveLabware = currmethodFileMoveLabware;
|
}
|
}
|
else
|
{
|
cbArm.SelectedIndex = curArmSelectedIndex;
|
rbAll.IsChecked = true;
|
if (methodFileMoveLabware.transportMode == 0)
|
rbAll.IsChecked = true;
|
else if (methodFileMoveLabware.transportMode == 1)
|
rbExceptOne.IsChecked = true;
|
else if (methodFileMoveLabware.transportMode == 2)
|
rbCount.IsChecked = true;
|
if (currmethodFileMoveLabware != null)
|
{
|
methodFileMoveLabware = currmethodFileMoveLabware;
|
}
|
}
|
|
//ReceiveAndUpdate();
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("UserControl_Loaded ERROR:", ex);
|
}
|
}
|
|
private void cbPickPart_Loaded(object sender, RoutedEventArgs e)
|
{
|
try
|
{
|
List<TransferFileHeader> transferFileHeaders = fileMoveLabwareBll.GetTransferFileHeaders(transferDataTable);
|
|
cbPickPart.ItemsSource = transferFileHeaders;
|
cbPickPart.Text = pickPart;
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("cbPickPart_Loaded ERROR:", ex);
|
}
|
}
|
|
private void cbPickLattice_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
try
|
{
|
if (cbPickLattice.SelectedIndex == -1)
|
return;
|
TransferFileHeader transferFileHeader = cbPickLattice.SelectedItem as TransferFileHeader;
|
if (methodFileMoveLabware != null)
|
{
|
methodFileMoveLabware.pickLattice = transferFileHeader.header_name.ToString();
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("cbPickLattice_SelectionChanged ERROR:", ex);
|
}
|
}
|
|
private void cbPickColumn_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
try
|
{
|
if (cbPickColumn.SelectedIndex == -1)
|
return;
|
TransferFileHeader transferFileHeader = cbPickColumn.SelectedItem as TransferFileHeader;
|
if (methodFileMoveLabware != null)
|
{
|
methodFileMoveLabware.pickColumn = transferFileHeader.header_name.ToString();
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("cbPickColumn_SelectionChanged ERROR:", ex);
|
}
|
}
|
|
private void cbPickWell_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
try
|
{
|
if (cbPickWell.SelectedIndex == -1)
|
return;
|
TransferFileHeader transferFileHeader = cbPickWell.SelectedItem as TransferFileHeader;
|
if (methodFileMoveLabware != null)
|
{
|
methodFileMoveLabware.pickWell = transferFileHeader.header_name.ToString();
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("cbPickWell_SelectionChanged ERROR:", ex);
|
}
|
}
|
|
private void cbPickPart_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
try
|
{
|
if (cbPickPart.SelectedIndex == -1)
|
return;
|
TransferFileHeader transferFileHeader = cbPickPart.SelectedItem as TransferFileHeader;
|
if (methodFileMoveLabware != null)
|
{
|
methodFileMoveLabware.pickPart = transferFileHeader.header_name.ToString();
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("cbPickPart_SelectionChanged ERROR:", ex);
|
}
|
}
|
|
private void cbPickDirect_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
try
|
{
|
if (cbPickDirect.SelectedIndex == -1)
|
return;
|
TransferFileHeader transferFileHeader = cbPickDirect.SelectedItem as TransferFileHeader;
|
if (methodFileMoveLabware != null)
|
{
|
methodFileMoveLabware.pickDirect = transferFileHeader.header_name.ToString();
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("cbPickDirect_SelectionChanged ERROR:", ex);
|
}
|
}
|
|
private void cbPlaceLattice_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
try
|
{
|
if (cbPlaceLattice.SelectedIndex == -1)
|
return;
|
TransferFileHeader transferFileHeader = cbPlaceLattice.SelectedItem as TransferFileHeader;
|
if (methodFileMoveLabware != null)
|
{
|
methodFileMoveLabware.placeLattice = transferFileHeader.header_name.ToString();
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("cbPlaceLattice_SelectionChanged ERROR:", ex);
|
}
|
}
|
|
private void cbPlaceColumn_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
try
|
{
|
if (cbPlaceColumn.SelectedIndex == -1)
|
return;
|
TransferFileHeader transferFileHeader = cbPlaceColumn.SelectedItem as TransferFileHeader;
|
if (methodFileMoveLabware != null)
|
{
|
methodFileMoveLabware.placeColumn = transferFileHeader.header_name.ToString();
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("cbPlaceColumn_SelectionChanged ERROR:", ex);
|
}
|
}
|
|
private void cbPlaceWell_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
try
|
{
|
if (cbPlaceWell.SelectedIndex == -1)
|
return;
|
TransferFileHeader transferFileHeader = cbPlaceWell.SelectedItem as TransferFileHeader;
|
if (methodFileMoveLabware != null)
|
{
|
methodFileMoveLabware.placeWell = transferFileHeader.header_name.ToString();
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("cbPlaceWell_SelectionChanged ERROR:", ex);
|
}
|
}
|
|
private void cbPlaceDirect_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
try
|
{
|
if (cbPlaceDirect.SelectedIndex == -1)
|
return;
|
TransferFileHeader transferFileHeader = cbPlaceDirect.SelectedItem as TransferFileHeader;
|
if (methodFileMoveLabware != null)
|
{
|
methodFileMoveLabware.placeDirect = transferFileHeader.header_name.ToString();
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("cbPlaceDirect_SelectionChanged ERROR:", ex);
|
}
|
}
|
|
private void tbxCommandName_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (string.IsNullOrEmpty(tbxCommandName.Text))
|
{
|
cnError.Text = "命令名称不能为空";
|
return;
|
}
|
if (methodFileMoveLabware != null)
|
{
|
methodFileMoveLabware.name = tbxCommandName.Text;
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("tbxCommandName_TextChanged ERROR:", ex);
|
}
|
}
|
|
private void tbExcelFile_PreviewKeyDown(object sender, KeyEventArgs e)
|
{
|
try
|
{
|
if (e.Key == Key.Enter)
|
{
|
if (!string.IsNullOrEmpty(tbExcelFile.Text.Trim()))
|
{
|
if (System.IO.Path.HasExtension(tbExcelFile.Text.Trim()))
|
{
|
if (System.IO.File.Exists(tbExcelFile.Text.Trim()))
|
{
|
SelectFile(tbExcelFile.Text.Trim());
|
}
|
}
|
}
|
}
|
}
|
catch(Exception ex)
|
{
|
LoggerHelper.ErrorLog("tbExcelFile_PreviewKeyDown ERROR:", ex);
|
}
|
}
|
|
private void SelectFile(string file)
|
{
|
try
|
{
|
string ext = System.IO.Path.GetExtension(file);
|
DataTable transferData = null;
|
if (string.Compare(ext, ".csv", true) == 0)
|
transferData = ExcelAndCsvHelper.GetDataTableFromCsvFile(file);
|
else
|
transferData = ExcelAndCsvHelper.GetDataTableFromExcelFile(file, true);
|
|
if (transferData != null)
|
{
|
if (methodFileMoveLabware != null)
|
{
|
methodFileMoveLabware.transferDataTable = transferData;
|
}
|
dgTransferFileData.ItemsSource = transferData.DefaultView;
|
|
List<TransferFileHeader> transferFileHeaders = fileMoveLabwareBll.GetTransferFileHeaders(transferData);
|
|
cbPickLattice.ItemsSource = transferFileHeaders;
|
cbPickColumn.ItemsSource = transferFileHeaders;
|
cbPickWell.ItemsSource = transferFileHeaders;
|
cbPickPart.ItemsSource = transferFileHeaders;
|
cbPickDirect.ItemsSource = transferFileHeaders;
|
cbPlaceLattice.ItemsSource = transferFileHeaders;
|
cbPlaceColumn.ItemsSource = transferFileHeaders;
|
cbPlaceWell.ItemsSource = transferFileHeaders;
|
cbPlaceDirect.ItemsSource = transferFileHeaders;
|
|
cbPickLattice.SelectedIndex = 1;
|
cbPickColumn.SelectedIndex = 2;
|
cbPickWell.SelectedIndex = 3;
|
cbPickPart.SelectedIndex = 4;
|
cbPickDirect.SelectedIndex = 5;
|
cbPlaceLattice.SelectedIndex = 6;
|
cbPlaceColumn.SelectedIndex = 7;
|
cbPlaceWell.SelectedIndex = 8;
|
cbPlaceDirect.SelectedIndex = 9;
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("SelectFile ERROR:", ex);
|
}
|
}
|
|
private void btnSelectFile_Click(object sender, RoutedEventArgs e)
|
{
|
try
|
{
|
OpenFileDialog dlg = new OpenFileDialog();
|
dlg.Title = "请选择Excel文件";
|
dlg.FileName = string.Empty;
|
dlg.FilterIndex = 1;
|
dlg.Filter = "excel files(*.xls)|*.xls|csv files(*.csv)|*.csv|All files(*.*)|*.*";
|
dlg.Multiselect = false;
|
if (!string.IsNullOrEmpty(tbExcelFile.Text.Trim()))
|
{
|
try
|
{
|
if (System.IO.Path.HasExtension(tbExcelFile.Text.Trim()))
|
dlg.InitialDirectory = System.IO.Path.GetDirectoryName(tbExcelFile.Text.Trim());
|
else
|
dlg.InitialDirectory = tbExcelFile.Text.Trim();
|
}
|
catch (Exception ex)
|
{
|
|
}
|
}
|
if (dlg.ShowDialog((MainWindow)Application.Current.MainWindow) == true)
|
{
|
string fullPath = dlg.FileName;
|
if (methodFileMoveLabware != null)
|
{
|
methodFileMoveLabware.filePath = fullPath;
|
}
|
tbExcelFile.Text = fullPath;
|
|
SelectFile(fullPath);
|
}
|
|
((MainWindow)Application.Current.MainWindow).testDesign.IsIgnore = true; //防止影响到主界面流程中已拖放的单命令顺序
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("btnSelectFile_Click ERROR:", ex);
|
}
|
}
|
|
private void tbxbeginLine_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
|
}
|
|
private void btnNext_Click(object sender, RoutedEventArgs e)
|
{
|
stepBar.Next();
|
gridSelectFile.Visibility = Visibility.Collapsed;
|
gridTipSetting.Visibility = Visibility.Visible;
|
scrollViewer.ScrollToTop();
|
}
|
|
private void cbArm_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
try
|
{
|
if (cbArm.SelectedIndex < 0)
|
{
|
return;
|
}
|
curArmSelectedIndex = cbArm.SelectedIndex;
|
string armName = ((DeviceArm)cbArm.SelectedItem).device_arm_name.ToString();
|
DeviceArm arm = cbArm.SelectedItem as DeviceArm;
|
methodFileMoveLabware.armText = arm.device_arm_name;
|
methodFileMoveLabware.armValue = arm.device_arm_id.ToString();
|
|
//ReceiveAndUpdate();
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("cbArm_SelectionChanged ERROR:", ex);
|
}
|
}
|
|
private void rbAll_Checked(object sender, RoutedEventArgs e)
|
{
|
if (rbAll.IsChecked == true)
|
{
|
if (methodFileMoveLabware != null)
|
{
|
methodFileMoveLabware.transportMode = (int)GripTransportModeEnum.TransportAll;
|
}
|
}
|
}
|
|
private void rbExceptOne_Checked(object sender, RoutedEventArgs e)
|
{
|
if (rbExceptOne.IsChecked == true)
|
{
|
if (methodFileMoveLabware != null)
|
{
|
|
methodFileMoveLabware.transportMode = (int)GripTransportModeEnum.TransportExceptOne;
|
}
|
}
|
}
|
|
private void rbCount_Checked(object sender, RoutedEventArgs e)
|
{
|
if (rbCount.IsChecked == true)
|
{
|
if (methodFileMoveLabware != null)
|
{
|
methodFileMoveLabware.transportMode = (int)GripTransportModeEnum.TransportCount;
|
}
|
}
|
}
|
|
private void tbxlevel_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (methodFileMoveLabware != null)
|
{
|
methodFileMoveLabware.transportCount = Convert.ToInt32(tbxlevel.Text);
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("tbxlevel_TextChanged ERROR:", ex);
|
}
|
}
|
|
private void btnPrev1_Click(object sender, RoutedEventArgs e)
|
{
|
try
|
{
|
if (stepBar.StepIndex > stepBar.Items.Count)
|
{
|
stepBar.Prev();
|
stepBar.Prev();
|
}
|
else
|
stepBar.Prev();
|
gridSelectFile.Visibility = Visibility.Visible;
|
gridTipSetting.Visibility = Visibility.Collapsed;
|
scrollViewer.ScrollToTop();
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("btnPrev1_Click ERROR:", ex);
|
}
|
}
|
|
private void btnFinish_Click(object sender, RoutedEventArgs e)
|
{
|
try
|
{
|
stepBar.Next();
|
scrollViewer.ScrollToTop();
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("btnFinish_Click ERROR:", ex);
|
}
|
}
|
|
#region 下载文件模板
|
private void btnDownloadTemplate_Click(object sender, RoutedEventArgs e)
|
{
|
//弹出保存对话框
|
try
|
{
|
string fileDir = string.Empty;
|
SaveFileDialog dlg = new SaveFileDialog();
|
dlg.Title = "另存为";
|
dlg.FileName = $"{DateTime.Now.ToString("yyyyMMddHHmmss")}.csv"; // Default file name
|
dlg.DefaultExt = ".xls"; // Default file extension
|
dlg.Filter = "excel files(*.xls)|*.xls|csv files(*.csv)|*.csv";// Filter files by extension
|
dlg.InitialDirectory = System.AppDomain.CurrentDomain.BaseDirectory;
|
|
if (dlg.ShowDialog() == true)
|
{
|
string directoryBase = System.AppDomain.CurrentDomain.BaseDirectory;
|
string sourceFilePath = directoryBase + "TempData\\movelabwareHX.csv";
|
File.Copy(sourceFilePath, dlg.FileName, true);
|
ShowTip.ShowNotice(string.Format("{0}成功{1}{2}", "下载保存", Environment.NewLine, dlg.FileName), InfoType.Warning);
|
}
|
}
|
catch (Exception ex)
|
{
|
ShowTip.ShowNotice(string.Format("{0}失败{1}{2}", "下载保存", Environment.NewLine, ""), InfoType.Warning);
|
LoggerHelper.ErrorLog("btnDownloadTemplate_Click ERROR:", ex);
|
}
|
}
|
#endregion
|
|
private void tbxCommandComment_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (methodFileMoveLabware != null)
|
{
|
if (this.method != null)
|
{
|
this.method.method_Tipcontent = tbxCommandComment.Text;
|
}
|
methodFileMoveLabware.comment = tbxCommandComment.Text;
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("tbxCommandComment_TextChanged ERROR:", ex);
|
}
|
}
|
}
|
}
|