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 { /// /// MoveLiquidResult.xaml 的交互逻辑 /// public partial class MoveLiquidResult : UserControl { ObservableCollection experimentModelList = new ObservableCollection(); //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(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(wnd); if (parent.Children.Contains(element)) parent.Children.Remove(element); //Window wnd = Application.Current.MainWindow; //Grid grid = Utilities.FindVisualChild(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 /// /// 分页绑定 /// /// 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, 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 GetPagedData(IEnumerable source, int currentPageNumber, int pageSize) { if (source == null || !source.Any()) return Enumerable.Empty(); 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) { } /// /// 导出移液数据 /// /// /// 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 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); } } } }