private void btnExport_Click(object sender, EventArgs e) { DateTime asOfDate, asOfDate2; if (!IsValidToExport(out asOfDate, out asOfDate2)) { return; } var exporter = new Exporter(); if (this.currentReport == XEnum.ReportType.C_DQDKQK_M) { if (this.SelectedColumns1.Count == 0) { this.SelectedColumns1.AddRange(TableMapping.GetFrozenColumnNames("ImportPublic")); this.SelectedColumns1.AddRange(new string[] { "彻底从我行退出", "倒贷", "逾期", "化解方案" }); } if (this.SelectedColumns2.Count == 0) { this.SelectedColumns2.AddRange(TableMapping.GetFrozenColumnNames("ImportPrivate")); this.SelectedColumns2.AddRange(new string[] { "彻底从我行退出", "倒贷", "展期", "逾期", "化解方案" }); } } else if (this.currentReport == XEnum.ReportType.C_XZDKMX_D) { if (this.SelectedColumns.Count == 0) { this.SelectedColumns.AddRange(TableMapping.GetFrozenColumns(Consts.C_XZDKMX_D)); } exporter.AsOfDate2 = asOfDate2; exporter.Columns = this.SelectedColumns; } else if (this.currentReport == XEnum.ReportType.C_JQDKMX_D) { if (this.SelectedColumns.Count == 0) { this.SelectedColumns.AddRange(TableMapping.GetFrozenColumns(Consts.C_JQDKMX_D)); } exporter.AsOfDate2 = asOfDate2; exporter.Columns = this.SelectedColumns; } this.Cursor = Cursors.WaitCursor; try { var startTime = DateTime.Now; // Use to count time cost var result = exporter.ExportData(this.currentReport, asOfDate, asOfDate2, this.SelectedColumns1, this.SelectedColumns2); this.Cursor = Cursors.Default; if (string.IsNullOrEmpty(result)) { var seconds = Math.Round((DateTime.Now - startTime).TotalSeconds); var timeSpan = seconds > 3 ? string.Format("({0}秒)", seconds) : ""; // Show time cost if longer than 3s ShowInfo(string.Format("报表导出完毕。{0}", timeSpan)); } else { ShowError(result); } } catch (IOException ex) { if (ex.Message.IndexOf("it is being used by another process") > 0) { ShowError("报表文件已经被打开,请先从Excel里关闭该报表然后再导出。"); } else { ShowError("导出发生错误"); } logger.Error(ex); } catch (Exception ex) { logger.Error(ex); ShowError("导出发生错误"); } finally { this.Cursor = Cursors.Default; } }