using Microsoft.Win32;
|
using System;
|
using System.Collections.Generic;
|
using System.Data;
|
using System.Text.RegularExpressions;
|
using System.Windows;
|
using System.Windows.Controls;
|
using System.Windows.Input;
|
using XCommon.Log;
|
using XCore;
|
using XHandler.Class;
|
using XHandler.Class.DataEx;
|
using XImagingXhandler.XDAL;
|
|
namespace XHandler.View.MethodProperty
|
{
|
/// <summary>
|
/// DataImportProperty.xaml 的交互逻辑
|
/// </summary>
|
public partial class DataImportProperty : UserControl
|
{
|
TransferFileBll transferFileBll = new TransferFileBll();
|
|
public MethodDataImport methodDataImport { get; set; }
|
public MethodDataImport currmethodDataImport = null;
|
|
#region 全局属性变量
|
string isrun = "";
|
string status = "";
|
string name = "";
|
string label = "";
|
|
string filePath = "";
|
int beginLine = 0;
|
DataTable transferDataTable = new DataTable();
|
string sourceLabware = "";
|
string sourceWell = "";
|
string sourceLabwareCode = "";
|
string destVolume = "";
|
|
int mark = 0;
|
#endregion
|
|
public DataImportProperty()
|
{
|
InitializeComponent();
|
}
|
|
public DataImportProperty(MethodEx method)
|
{
|
InitializeComponent();
|
mark = 0;
|
methodDataImport = new MethodDataImport();
|
methodDataImport.name = method.method_name;
|
methodDataImport.label = method.method_name;
|
|
this.DataContext = methodDataImport;
|
if (method.tag != null)
|
{
|
methodDataImport = (MethodDataImport)method.tag;
|
|
currmethodDataImport = methodDataImport;
|
|
isrun = methodDataImport.isrun;
|
status = methodDataImport.status;
|
name = methodDataImport.name;
|
label = methodDataImport.label;
|
|
filePath = methodDataImport.filePath;
|
beginLine = methodDataImport.beginLine;
|
transferDataTable = methodDataImport.transferDataTable;
|
sourceLabware = methodDataImport.sourceLabware;
|
sourceWell = methodDataImport.sourceWell;
|
sourceLabwareCode = methodDataImport.sourceLabwareCode;
|
destVolume = methodDataImport.destVolume;
|
}
|
}
|
#region 选择文件
|
private void btnSelectFile_Click(object sender, RoutedEventArgs e)
|
{
|
OpenFileDialog dlg = new OpenFileDialog();
|
dlg.Title = "请选择Excel文件";
|
dlg.FileName = string.Empty;
|
dlg.FilterIndex = 1;
|
dlg.RestoreDirectory = true;
|
dlg.Filter = "excel files(*.xls)|*.xls|csv files(*.csv)|*.csv|All files(*.*)|*.*";
|
dlg.Multiselect = false;
|
if (!string.IsNullOrEmpty(tbExcelFile.Text.Trim()))
|
{
|
if (System.IO.Path.HasExtension(tbExcelFile.Text.Trim()))
|
dlg.InitialDirectory = System.IO.Path.GetDirectoryName(tbExcelFile.Text.Trim());
|
else
|
dlg.InitialDirectory = tbExcelFile.Text.Trim();
|
}
|
if (dlg.ShowDialog() == true)
|
{
|
string fullPath = dlg.FileName;
|
tbExcelFile.Text = fullPath;
|
if (methodDataImport != null)
|
{
|
methodDataImport.filePath = fullPath;
|
}
|
|
SelectFile(fullPath);
|
}
|
|
}
|
private void tbExcelFile_PreviewKeyDown(object sender, KeyEventArgs e)
|
{
|
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());
|
}
|
}
|
}
|
}
|
}
|
|
private void SelectFile(string file)
|
{
|
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 (methodDataImport != null)
|
{
|
methodDataImport.transferDataTable = transferData;
|
}
|
dgTransferFileData.ItemsSource = transferData.DefaultView;
|
|
List<TransferFileHeader> transferFileHeaders = transferFileBll.GetTransferFileHeaders(transferData);
|
|
cbSourceBoardCode.ItemsSource = transferFileHeaders;
|
cbSourceBoard.ItemsSource = transferFileHeaders;
|
cbSourceWell.ItemsSource = transferFileHeaders;
|
cbVolumn.ItemsSource = transferFileHeaders;
|
}
|
}
|
#endregion
|
|
private void tbxCommandName_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (string.IsNullOrEmpty(tbxCommandName.Text))
|
{
|
xcError.Text = "命令名称不能为空";
|
return;
|
}
|
else
|
{
|
xcError.Text = "";
|
}
|
if (methodDataImport != null)
|
{
|
methodDataImport.name = tbxCommandName.Text;
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
private void tbExcelFile_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (methodDataImport != null)
|
{
|
methodDataImport.filePath = tbExcelFile.Text;
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
private void tbxbeginLine_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (!Regex.IsMatch(tbxbeginLine.Text, @"^[0-9]\d*$"))
|
{
|
blError.Text = "请输入正整数";
|
return;
|
}
|
else
|
{
|
blError.Text = "";
|
}
|
|
if (methodDataImport != null)
|
{
|
methodDataImport.beginLine = Convert.ToInt32(tbxbeginLine.Text);
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
private void cbSourceBoardCode_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
try
|
{
|
if (cbSourceBoardCode.SelectedItem != null)
|
{
|
TransferFileHeader transferFileHeader = cbSourceBoardCode.SelectedItem as TransferFileHeader;
|
if (methodDataImport != null)
|
{
|
methodDataImport.sourceLabwareCode = transferFileHeader.header_name.ToString();
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
private void cbSourceBoard_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
try
|
{
|
if (cbSourceBoard.SelectedItem != null)
|
{
|
TransferFileHeader transferFileHeader = cbSourceBoard.SelectedItem as TransferFileHeader;
|
if (methodDataImport != null)
|
{
|
methodDataImport.sourceLabware = transferFileHeader.header_name.ToString();
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
private void cbSourceWell_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
try
|
{
|
if (cbSourceWell.SelectedItem != null)
|
{
|
TransferFileHeader transferFileHeader = cbSourceWell.SelectedItem as TransferFileHeader;
|
if (methodDataImport != null)
|
{
|
methodDataImport.sourceWell = transferFileHeader.header_name.ToString();
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
private void cbVolumn_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
try
|
{
|
if (cbVolumn.SelectedItem != null)
|
{
|
TransferFileHeader transferFileHeader = cbVolumn.SelectedItem as TransferFileHeader;
|
if (methodDataImport != null)
|
{
|
methodDataImport.destVolume = transferFileHeader.header_name.ToString();
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
private void UserControl_Loaded(object sender, RoutedEventArgs e)
|
{
|
mark += 1;
|
try
|
{
|
if (mark > 1)
|
{
|
return;
|
}
|
|
if (!string.IsNullOrEmpty(filePath))
|
{
|
tbxCommandName.Text = name;
|
|
dgTransferFileData.ItemsSource = transferDataTable.DefaultView;
|
tbExcelFile.Text = filePath;
|
|
//更新所有下拉列表
|
List<TransferFileHeader> transferFileHeaders = transferFileBll.GetTransferFileHeaders(transferDataTable);
|
|
cbSourceBoard.ItemsSource = transferFileHeaders;
|
|
cbSourceWell.ItemsSource = transferFileHeaders;
|
|
cbVolumn.ItemsSource = transferFileHeaders;
|
|
cbSourceBoardCode.ItemsSource = transferFileHeaders;
|
|
//if (methodTransferFile.transferDataTable.Columns.Count >= 5)
|
//{
|
cbSourceBoard.Text = sourceLabware;
|
cbSourceWell.Text = sourceWell;
|
cbVolumn.Text = destVolume.ToString();
|
cbSourceBoardCode.Text = sourceLabwareCode;
|
|
|
if (currmethodDataImport != null)
|
{
|
methodDataImport = currmethodDataImport;
|
}
|
}
|
else
|
{
|
if (currmethodDataImport != null)
|
{
|
methodDataImport = currmethodDataImport;
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
}
|
}
|