using System;
|
using System.Collections.Generic;
|
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.Forms;
|
using System.Windows.Input;
|
using System.Windows.Media;
|
using System.Windows.Media.Imaging;
|
using System.Windows.Navigation;
|
using System.Windows.Shapes;
|
using XHandler.Class.DataEx;
|
using XImagingXhandler.XDAL;
|
using XCore;
|
using XCommon.Log;
|
|
namespace XHandler.View.BacteriaProperty
|
{
|
/// <summary>
|
/// CoatingFileExportProperty.xaml 的交互逻辑
|
/// </summary>
|
public partial class CoatingFileExportProperty : System.Windows.Controls.UserControl
|
{
|
public MethodCoatingReport methodCoatingReport { get; set; }
|
public MethodCoatingReport currmethodCoatingReport = null;
|
|
List<DropdownName> dropdownNames = new List<DropdownName>();
|
|
#region 变量
|
string isrun = "";
|
string status = "";
|
string name = "";
|
string label = "";
|
string filePath = "";
|
List<ReportColumn> reportColumns = new List<ReportColumn>();
|
string filePostfix = "";
|
string filename = "";
|
|
static int mark = 0;
|
#endregion
|
|
public CoatingFileExportProperty()
|
{
|
InitializeComponent();
|
}
|
|
public CoatingFileExportProperty(MethodEx method)
|
{
|
InitializeComponent();
|
mark = 0;
|
|
CoatingReportBll coatingReportBll = new CoatingReportBll();
|
dropdownNames = coatingReportBll.GenerateReportColumn();
|
BindReportColumn();
|
|
methodCoatingReport = new MethodCoatingReport();
|
methodCoatingReport.name = method.method_name;
|
methodCoatingReport.label = method.method_name;
|
methodCoatingReport.status = (method.isEnabled == true ? "enable" : "disable");
|
methodCoatingReport.strIndex = method.strIndex;
|
methodCoatingReport.reportColumns = new List<ReportColumn>();
|
foreach (DropdownName d in dropdownNames)
|
{
|
ReportColumn r = new ReportColumn();
|
r.reportcolumn_id = d.dropdown_id;
|
r.reportcolumn_name = d.dropdown_name;
|
r.reportcolumn_sname = d.dropdown_name;
|
methodCoatingReport.reportColumns.Add(r);
|
}
|
|
DataContext = methodCoatingReport;
|
if (method.tag != null)
|
{
|
|
methodCoatingReport = (MethodCoatingReport)method.tag;
|
|
currmethodCoatingReport = methodCoatingReport;
|
isrun = methodCoatingReport.isrun;
|
status = methodCoatingReport.status;
|
name = methodCoatingReport.name;
|
label = methodCoatingReport.label;
|
filePath = methodCoatingReport.filePath;
|
reportColumns = methodCoatingReport.reportColumns;
|
filePostfix = methodCoatingReport.filePostfix;
|
filename = methodCoatingReport.fileName;
|
}
|
}
|
|
System.Windows.Controls.CheckBox[] checkBoxes;
|
System.Windows.Controls.TextBox[] tboxs;
|
private void BindReportColumn()
|
{
|
//dropdownNames = DataExportBll.GenerateReportColumn();
|
gdReportColList.Children.Clear();
|
|
gdReportColList.RowDefinitions.Clear();
|
gdReportColList.ColumnDefinitions.Clear();
|
|
ColumnDefinition cd = new ColumnDefinition();
|
cd.Width = new GridLength(50);
|
gdReportColList.ColumnDefinitions.Add(cd);
|
|
cd = new ColumnDefinition();
|
cd.Width = new GridLength(50);
|
gdReportColList.ColumnDefinitions.Add(cd);
|
|
cd = new ColumnDefinition();
|
cd.Width = new GridLength(120);
|
gdReportColList.ColumnDefinitions.Add(cd);
|
|
cd = new ColumnDefinition();
|
cd.Width = new GridLength(120);
|
gdReportColList.ColumnDefinitions.Add(cd);
|
|
RowDefinition rd = new RowDefinition();
|
rd.Height = new GridLength(30);
|
gdReportColList.RowDefinitions.Add(rd);
|
|
TextBlock tb = new TextBlock();
|
tb.Text = "";
|
gdReportColList.Children.Add(tb);
|
tb.SetValue(Grid.RowProperty, 0);
|
tb.SetValue(Grid.ColumnProperty, 0);
|
|
tb = new TextBlock();
|
tb.Text = "序号";
|
gdReportColList.Children.Add(tb);
|
tb.SetValue(Grid.RowProperty, 0);
|
tb.SetValue(Grid.ColumnProperty, 1);
|
|
tb = new TextBlock();
|
tb.Text = "字段名";
|
gdReportColList.Children.Add(tb);
|
tb.SetValue(Grid.RowProperty, 0);
|
tb.SetValue(Grid.ColumnProperty, 2);
|
|
tb = new TextBlock();
|
tb.Text = "列名";
|
gdReportColList.Children.Add(tb);
|
tb.SetValue(Grid.RowProperty, 0);
|
tb.SetValue(Grid.ColumnProperty, 3);
|
|
checkBoxes = new System.Windows.Controls.CheckBox[dropdownNames.Count];
|
tboxs = new System.Windows.Controls.TextBox[dropdownNames.Count];
|
|
for (int i = 0; i < dropdownNames.Count; i++)
|
{
|
rd = new RowDefinition();
|
rd.Height = new GridLength(30);
|
gdReportColList.RowDefinitions.Add(rd);
|
checkBoxes[i] = new System.Windows.Controls.CheckBox();
|
checkBoxes[i].IsChecked = true;
|
checkBoxes[i].Tag = i;
|
gdReportColList.Children.Add(checkBoxes[i]);
|
checkBoxes[i].SetValue(Grid.RowProperty, i + 1);
|
checkBoxes[i].SetValue(Grid.ColumnProperty, 0);
|
checkBoxes[i].AddHandler(System.Windows.Controls.CheckBox.ClickEvent, new RoutedEventHandler(check_Click));
|
|
TextBlock tbk = new TextBlock();
|
tbk.Text = dropdownNames[i].dropdown_id;
|
tbk.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
|
gdReportColList.Children.Add(tbk);
|
tbk.SetValue(Grid.RowProperty, i + 1);
|
tbk.SetValue(Grid.ColumnProperty, 1);
|
|
tbk = new TextBlock();
|
tbk.Text = dropdownNames[i].dropdown_name;
|
tbk.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
|
gdReportColList.Children.Add(tbk);
|
tbk.SetValue(Grid.RowProperty, i + 1);
|
tbk.SetValue(Grid.ColumnProperty, 2);
|
|
tboxs[i] = new System.Windows.Controls.TextBox();
|
tboxs[i].Text = dropdownNames[i].dropdown_name;
|
tboxs[i].AddHandler(System.Windows.Controls.TextBox.TextChangedEvent, new TextChangedEventHandler(tbx_TextBoxChanged));
|
tboxs[i].Tag = i;
|
tboxs[i].HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
|
tboxs[i].VerticalAlignment = VerticalAlignment.Top;
|
tboxs[i].Width = 120;
|
tboxs[i].Height = 30;
|
tboxs[i].Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FFF2F3F5"));
|
gdReportColList.Children.Add(tboxs[i]);
|
tboxs[i].SetValue(Grid.RowProperty, i + 1);
|
tboxs[i].SetValue(Grid.ColumnProperty, 3);
|
}
|
}
|
|
private void tbx_TextBoxChanged(object sender, TextChangedEventArgs e)
|
{
|
System.Windows.Controls.TextBox tb = (System.Windows.Controls.TextBox)sender;
|
if (checkBoxes[(int)tb.Tag].IsChecked.Equals(true))
|
{
|
int a = methodCoatingReport.reportColumns.FindLastIndex(x => x.reportcolumn_id == ((int)tb.Tag).ToString());
|
methodCoatingReport.reportColumns[a].reportcolumn_sname = tb.Text;
|
}
|
}
|
|
private void btnSelectFile_Click(object sender, RoutedEventArgs e)
|
{
|
var dialog = new FolderBrowserDialog();
|
var result = dialog.ShowDialog();
|
if (result == DialogResult.OK)
|
{
|
methodCoatingReport.filePath = dialog.SelectedPath;
|
textboxDestPath.Text = dialog.SelectedPath;
|
}
|
}
|
|
private void radioBtnXls_Checked(object sender, RoutedEventArgs e)
|
{
|
if (methodCoatingReport == null)
|
return;
|
methodCoatingReport.filePostfix = ".xls";
|
}
|
|
private void radioBtnCsv_Checked(object sender, RoutedEventArgs e)
|
{
|
if (methodCoatingReport == null)
|
return;
|
|
methodCoatingReport.filePostfix = ".csv";
|
}
|
|
private void textboxDestPath_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (methodCoatingReport != null)
|
{
|
methodCoatingReport.filePath = textboxDestPath.Text;
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
private void tbxFileName_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (methodCoatingReport != null)
|
{
|
methodCoatingReport.fileName = tbxFileName.Text;
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
private void tbxCommandName_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (methodCoatingReport != null)
|
{
|
methodCoatingReport.name = tbxCommandName.Text;
|
}
|
}
|
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(filePostfix))
|
{
|
tbxCommandName.Text = name;
|
tbxFileName.Text = filename;
|
textboxDestPath.Text = filePath;
|
if (filePostfix == ".xls")
|
{
|
radioBtnXls.IsChecked = true;
|
}
|
else if (filePostfix == ".csv")
|
{
|
radioBtnCsv.IsChecked = true;
|
}
|
List<ReportColumn> reportColumns = methodCoatingReport.reportColumns;
|
if (reportColumns != null)
|
{
|
for (int j = 0; j < checkBoxes.Length; j++)
|
{
|
var a = reportColumns.SingleOrDefault(x => x.reportcolumn_id.Equals((j).ToString()));
|
if (a != null)
|
{
|
checkBoxes[j].IsChecked = true;
|
tboxs[j].Text = a.reportcolumn_sname;
|
}
|
else
|
{
|
checkBoxes[j].IsChecked = false;
|
}
|
}
|
}
|
|
checkedHeaderByClickResult();
|
|
if (currmethodCoatingReport != null)
|
{
|
methodCoatingReport = currmethodCoatingReport;
|
}
|
}
|
else
|
{
|
if (methodCoatingReport == null)
|
return;
|
|
if (string.Compare(methodCoatingReport.filePostfix, ".csv", true) == 0)
|
radioBtnCsv.IsChecked = true;
|
else
|
radioBtnXls.IsChecked = true;
|
|
if (currmethodCoatingReport != null)
|
{
|
methodCoatingReport = currmethodCoatingReport;
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
#region 单个选中
|
private void check_Click(object sender, RoutedEventArgs e)
|
{
|
System.Windows.Controls.CheckBox cbx = (System.Windows.Controls.CheckBox)sender;
|
if (cbx.IsChecked.Equals(true))
|
{
|
if (methodCoatingReport.reportColumns != null)
|
{
|
var a = methodCoatingReport.reportColumns.SingleOrDefault(x => x.reportcolumn_id == ((int)cbx.Tag).ToString());
|
if (a == null)
|
{
|
ReportColumn reportColumn = new ReportColumn();
|
reportColumn.reportcolumn_id = ((int)cbx.Tag).ToString();
|
reportColumn.reportcolumn_name = dropdownNames[(int)cbx.Tag].dropdown_name;
|
reportColumn.reportcolumn_sname = tboxs[(int)cbx.Tag].Text;
|
methodCoatingReport.reportColumns.Add(reportColumn);
|
}
|
}
|
}
|
else
|
{
|
if (methodCoatingReport.reportColumns != null)
|
{
|
var a = methodCoatingReport.reportColumns.SingleOrDefault(x => x.reportcolumn_id == ((int)cbx.Tag).ToString());
|
if (a != null)
|
{
|
methodCoatingReport.reportColumns.Remove(a);
|
}
|
}
|
}
|
|
checkedHeaderByClickResult();
|
}
|
#endregion
|
|
#region 检查当前是否已经全部勾选,如果是则把表头的也勾选;否则不勾选
|
private void checkedHeaderByClickResult()
|
{
|
int total = 0;
|
for (int i = 0; i < checkBoxes.Count(); i++)
|
{
|
if (checkBoxes[i].IsChecked == true)
|
{
|
total++;
|
}
|
else
|
{
|
}
|
|
}
|
|
if (total == 11)
|
{
|
ckbSelectedAll.IsChecked = true;
|
}
|
else
|
{
|
ckbSelectedAll.IsChecked = false;
|
}
|
}
|
#endregion
|
|
private void ckbSelectedAll_Click(object sender, RoutedEventArgs e)
|
{
|
for (int i = 0; i < checkBoxes.Count(); i++)
|
{
|
if (ckbSelectedAll.IsChecked == true)
|
{
|
checkBoxes[i].IsChecked = true;
|
|
}
|
else
|
{
|
checkBoxes[i].IsChecked = false;
|
}
|
|
}
|
}
|
}
|
}
|