using System;
|
using System.Collections.Generic;
|
using System.Data;
|
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 XImagingXhandler.XDAL;
|
using Microsoft.Win32;
|
using XCore;
|
using XHandler.Class;
|
using HandyControl.Data;
|
using XCommon.Tip;
|
using System.CodeDom.Compiler;
|
using System.IO;
|
|
namespace XHandler.View.MethodProperty
|
{
|
/// <summary>
|
/// VariableImportProperty.xaml 的交互逻辑
|
/// </summary>
|
public partial class VariableImportProperty : UserControl
|
{
|
public MethodVariableImport methodVariableImport { get; set; }
|
public MethodVariableImport currmethodVariableImport = null;
|
|
#region 全局属性变量
|
string isrun = "";
|
string status = "";
|
string name = "";
|
string label = "";
|
|
string filePath = "";
|
DataTable transferDataTable = new DataTable();
|
|
int mark = 0;
|
#endregion
|
|
public VariableImportProperty()
|
{
|
InitializeComponent();
|
}
|
|
public VariableImportProperty(MethodEx method)
|
{
|
InitializeComponent();
|
mark = 0;
|
methodVariableImport = new MethodVariableImport();
|
methodVariableImport.name = method.method_name;
|
methodVariableImport.label = method.method_name;
|
|
this.DataContext = methodVariableImport;
|
if (method.tag != null)
|
{
|
methodVariableImport = (MethodVariableImport)method.tag;
|
|
currmethodVariableImport = methodVariableImport;
|
|
isrun = methodVariableImport.isrun;
|
status = methodVariableImport.status;
|
name = methodVariableImport.name;
|
label = methodVariableImport.label;
|
|
filePath = methodVariableImport.filePath;
|
transferDataTable = methodVariableImport.transferDataTable;
|
}
|
}
|
|
private void tbxCommandName_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (string.IsNullOrEmpty(tbxCommandName.Text))
|
{
|
xcError.Text = "命令名称不能为空";
|
return;
|
}
|
else
|
{
|
xcError.Text = "";
|
}
|
if (methodVariableImport != null)
|
{
|
methodVariableImport.name = tbxCommandName.Text;
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
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()))
|
{
|
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() == true)
|
{
|
string fullPath = dlg.FileName;
|
tbExcelFile.Text = fullPath;
|
if (methodVariableImport != null)
|
{
|
methodVariableImport.filePath = fullPath;
|
}
|
|
SelectFile(fullPath);
|
}
|
}
|
|
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(transferData.Columns.Contains("paraName")&& transferData.Columns.Contains("paraValue"))
|
{
|
CodeDomProvider provider = CodeDomProvider.CreateProvider("C#");
|
foreach (DataRow dataRow in transferData.Rows)
|
{
|
if (provider.IsValidIdentifier(dataRow["paraName"].ToString()))
|
{
|
|
}
|
else
|
{
|
ShowTip.ShowNotice(string.Format("{0}{1}{2}", "提醒", Environment.NewLine, "表格内容列'" + dataRow["paraName"].ToString() + "'不符合规范,未能加载"), InfoType.Warning);
|
dgTransferFileData.ItemsSource = null;
|
return;
|
}
|
}
|
|
if (methodVariableImport != null)
|
{
|
methodVariableImport.transferDataTable = transferData;
|
}
|
dgTransferFileData.ItemsSource = transferData.DefaultView;
|
|
List<TransferFileHeader> transferFileHeaders = new TransferFileBll().GetTransferFileHeaders(transferData);
|
}
|
else
|
{
|
ShowTip.ShowNotice(string.Format("{0}{1}{2}", "提醒", Environment.NewLine, "表格头不符合规范,未能加载"), InfoType.Warning);
|
dgTransferFileData.ItemsSource = null;
|
}
|
|
|
}
|
}
|
|
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;
|
|
if (currmethodVariableImport != null)
|
{
|
methodVariableImport = currmethodVariableImport;
|
}
|
}
|
else
|
{
|
if (currmethodVariableImport != null)
|
{
|
methodVariableImport = currmethodVariableImport;
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
private void tbExcelFile_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (methodVariableImport != null)
|
{
|
methodVariableImport.filePath = tbExcelFile.Text;
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
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 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\\variableImport.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);
|
}
|
}
|
}
|
}
|