using DevExpress.Utils.Drawing.Helpers; using ICSharpCode.Core; using Mesnac.Action.Base; using Mesnac.Action.ChemicalWeighing.Entity.Report; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Mesnac.Action.ChemicalWeighing.Report.WetMixer { /// /// 湿混机报表导出事件 /// public class ExportAction : ChemicalWeighingAction, Base.IAction { private Control _clientGridControl = null; //报表明细DGV private DbMCControl _dgvWetMixer = null; //报表数据DGV public void Run(RuntimeParameter runtime) { base.RunIni(runtime); //必须要调用的 ICSharpCode.Core.LoggingService.Debug("湿混机报表-导出..."); this._dgvWetMixer = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "Report_WetMixer").FirstOrDefault(); DataGridView _WetMixerGridView = this._dgvWetMixer.BaseControl as DataGridView; if (_WetMixerGridView != null) { WetMixerDevice wetMixerDevice = new WetMixerDevice(); wetMixerDevice.eqNo = ParseToInt(_WetMixerGridView.SelectedRows[0].Cells["eqNo"].Value.ToString()); wetMixerDevice.recordTime = _WetMixerGridView.SelectedRows[0].Cells["recordTime"].Value.ToString(); SaveFileDialog sfd = new SaveFileDialog(); sfd.Filter = "xls files(*.xls)|*.xls"; sfd.FileName = String.Format("湿混机报表_{0:yyyyMMdd}", DateTime.Now); sfd.AddExtension = true; DialogResult result = sfd.ShowDialog(); if (result == DialogResult.OK) { this._clientGridControl = GetAllControls().Where(x => x.Name.Contains("MultiColHeaderDgv")).FirstOrDefault(); if (_clientGridControl == null) { ICSharpCode.Core.LoggingService.Warn("{生产报表} 缺少缺少称量名细MultiColHeaderDgv控件..."); runtime.IsReturn = false; return; } Mesnac.Controls.Default.MultiColHeaderDgv clientGrid = (this._clientGridControl as Mesnac.Controls.Default.MultiColHeaderDgv); System.Data.DataTable dt = clientGrid.DataSource as System.Data.DataTable; string fileName = sfd.FileName; if (!String.IsNullOrEmpty(fileName)) { try { //写入Excle DataTabletoExcel(fileName, dt, wetMixerDevice); string msg1 = "湿混机报表导出成功"; //导出生产报表数据至Excel成功! ICSharpCode.Core.LoggingService.Info(msg1); MessageBox.Show(msg1, Mesnac.Basic.LanguageHelper.Caption, MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { string msg1 = $"湿混机报表导出异常:{ex.Message}"; ICSharpCode.Core.LoggingService.Error(msg1); MessageBox.Show(msg1, Mesnac.Basic.LanguageHelper.WarnCaption, MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } } } /// /// 写入到Excel文件 /// /// /// /// public void DataTabletoExcel(string strFileName, System.Data.DataTable tmpDataTable, WetMixerDevice wetMixerDevice) { } /// /// 字符串转Int /// /// /// private int ParseToInt(string str) { int returnInt = 0; if (str == null || str.Trim().Length < 1) { return returnInt; } if (int.TryParse(str, out returnInt)) { return returnInt; } else { return 0; } } } }