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.Input;
|
using System.Windows.Media;
|
using System.Windows.Media.Imaging;
|
using System.Windows.Navigation;
|
using System.Windows.Shapes;
|
using XImagingXhandler.XDAL;
|
using DataEntity.Page;
|
using DataRWDAL;
|
using System.Collections.ObjectModel;
|
using DataEntity;
|
using XCommon.Log;
|
using XHandler.View.BacteriaPickResult;
|
using XHandler.Class;
|
using Microsoft.Win32;
|
using XHandler.View.OperateAudit;
|
|
namespace XHandler.View.MoveLiquidReport
|
{
|
/// <summary>
|
/// MoveLiquidResult.xaml 的交互逻辑
|
/// </summary>
|
public partial class MoveLiquidResult : UserControl
|
{
|
ObservableCollection<ExperimentModel> experimentModelList = new ObservableCollection<ExperimentModel>();
|
//LogInformation logInfo = new LogInformation();
|
public MainWindow mainWindow = null;
|
|
#region 变量
|
// 分页数据
|
private Pagination m_pagination = new Pagination();
|
#endregion
|
|
public MoveLiquidResult()
|
{
|
InitializeComponent();
|
}
|
|
private void UserControl_Loaded(object sender, RoutedEventArgs e)
|
{
|
try
|
{
|
BindingExperimentRunCollection();
|
}
|
catch (Exception ex)
|
{
|
|
}
|
}
|
|
private void btnImportReport_Click(object sender, RoutedEventArgs e)
|
{
|
|
}
|
|
private void btnRunDetail_Click(object sender, RoutedEventArgs e)
|
{
|
try
|
{
|
Button btn = (Button)sender;
|
if (btn != null)
|
{
|
string experimentId = (string)btn.Tag;
|
|
MoveLiquidDetails details = new MoveLiquidDetails(experimentId);
|
details.closeEvent += Details_closeEvent;
|
Window wnd = Application.Current.MainWindow;
|
Grid parent = Utilities.FindVisualChild<Grid>(wnd);
|
parent.Children.Add(details);
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
private void Details_closeEvent(object sender, EventArgs e)
|
{
|
UIElement element = sender as UIElement;
|
Window wnd = Application.Current.MainWindow;
|
Grid parent = Utilities.FindVisualChild<Grid>(wnd);
|
if (parent.Children.Contains(element))
|
parent.Children.Remove(element);
|
//Window wnd = Application.Current.MainWindow;
|
//Grid grid = Utilities.FindVisualChild<Grid>(wnd);
|
|
//UIElement element = sender as UIElement;
|
//grid.Children.Remove(element);
|
}
|
|
private void btnSearch_Click(object sender, RoutedEventArgs e)
|
{
|
dgResult.ItemsSource = null;
|
pagerToolsControl_paging.Current = PaginationDefaultParameter.Current;
|
}
|
|
private void pagerToolsControl_paging_PageCntChanged(object sender, Page.C_EventArgsClass e)
|
{
|
m_pagination.Current = e.CurrentPageNo;
|
DataBinding(m_pagination);
|
}
|
|
private void pagerToolsControl_paging_OnePageRowCntChanged(object sender, Page.C_EventArgsClass e)
|
{
|
m_pagination.Current = e.CurrentPageNo;
|
m_pagination.PageSize = e.PagerNum;
|
DataBinding(m_pagination);
|
|
}
|
|
private void calendar_SelectedDatesChanged(object sender, SelectionChangedEventArgs e)
|
{
|
if (e.AddedItems.Count > 0)
|
{
|
txtStart.Text = calendar.SelectedDates.First().ToString("yyyy/MM/dd");
|
txtEnd.Text = calendar.SelectedDates.Last().ToString("yyyy/MM/dd");
|
}
|
}
|
|
private void DataGridCell_PreviewMouseDoubleClick(object sender, MouseButtonEventArgs e)
|
{
|
|
}
|
|
#region 绑定数据集合到界面
|
private void BindingExperimentRunCollection()
|
{
|
DataBinding(m_pagination);
|
}
|
#endregion
|
|
/// <summary>
|
/// 分页绑定
|
/// </summary>
|
/// <param name="pagination"></param>
|
private void DataBinding(Pagination pagination)
|
{
|
string startTime = this.txtStart.Text;
|
string endTime = this.txtEnd.Text;
|
string sourceBarcode = this.txtSrcBarcode.Text;
|
string targetBarcode = this.txtTarBarcode.Text;
|
experimentModelList=ExperimentDB.GetExperimentCollectionFromdb(startTime, endTime, sourceBarcode, targetBarcode);
|
var resultExperimentInformationList = GetPagedData(experimentModelList, pagination.Current, pagination.PageSize);
|
var result = new Tuple<IEnumerable<ExperimentModel>, int>(resultExperimentInformationList, experimentModelList.Count());
|
if (result != null)
|
{
|
pagerToolsControl_paging.IsTrigger = false;
|
pagerToolsControl_paging.DataCount = result.Item2; // 当前查到数量
|
pagerToolsControl_paging.Current = pagination.Current;
|
pagerToolsControl_paging.IsTrigger = true;
|
dgResult.ItemsSource = result.Item1;
|
}
|
}
|
|
#region 集合数据分页方法
|
private static IEnumerable<T> GetPagedData<T>(IEnumerable<T> source, int currentPageNumber, int pageSize)
|
{
|
if (source == null || !source.Any()) return Enumerable.Empty<T>();
|
|
int startIndex = (currentPageNumber - 1) * pageSize;
|
int endIndex = Math.Min(startIndex + pageSize, source.Count());
|
|
return source.Skip(startIndex).Take(endIndex - startIndex);
|
}
|
#endregion
|
|
private void btnDatePick_Click(object sender, RoutedEventArgs e)
|
{
|
|
}
|
|
/// <summary>
|
/// 导出移液数据
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void btnExportReport_Click(object sender, RoutedEventArgs e)
|
{
|
try
|
{
|
string fileDir = string.Empty;
|
SaveFileDialog dlg = new SaveFileDialog();
|
dlg.Title = "另存为";
|
string filename = DateTime.Now.ToString("yyyyMMddHHmmss");
|
dlg.FileName = $"{filename}.xls"; // 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)
|
{
|
Button btn = (Button)sender;
|
if (btn != null)
|
{
|
string experimentId = (string)btn.Tag;
|
ObservableCollection<ExperimentRunDetailModel> experimentRunDetailModelList = ExperimentRunDetailDB.GetMoveLiquidList(experimentId);
|
ExperimentModel experimentModel = ExperimentDB.GetExperimentModelFromdb(experimentId);
|
|
//把数据转成dataTable
|
System.Data.DataTable dataTable = ExcelAndCsvHelper.ListFormatToDataTable(ExcelAndCsvHelper.ExampleFormatToObject(experimentRunDetailModelList));
|
|
if (dlg.FileName.Substring(dlg.FileName.LastIndexOf('.') + 1, dlg.FileName.Length - dlg.FileName.LastIndexOf('.') - 1) == "xls")
|
{
|
bool result=ExcelAndCsvHelper.WriteDataTableToExcelFile(dataTable, dlg.FileName, experimentModel.ExperimentName);
|
}
|
else
|
{
|
string fileFullName = dlg.FileName.Substring(0, dlg.FileName.LastIndexOf("\\") + 1) + experimentModel.ExperimentName+"_"+ experimentId+"_"+filename+".csv";
|
ExcelAndCsvHelper.WriteDataTableToCSV(dataTable, fileFullName);
|
}
|
//SaveWorkflow(dlg.FileName, true);
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
}
|
}
|