using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Collections; using Infragistics.Win; using Infragistics.Win.UltraWinTabControl; using Infragistics.Win.UltraWinGrid; using Infragistics.Win.UltraWinDataSource; using System.IO; using System.Diagnostics; using Infragistics.Win.UltraWinGrid.ExcelExport; using System.Runtime.InteropServices; namespace Core.StlMes.Client.Sale.Util { public class UtilUltraGrid { private static ArrayList GetStaticsInfoIntegerColumn() { ArrayList list = new ArrayList(); list.Add("QUANTITY"); return list; } private static ArrayList GetStaticsMoneyColumn() { ArrayList list = new ArrayList(); list.Add("MONEY"); list.Add("MONEY_ORG"); return list; } /// /// 设置Grid合计值 /// /// /// public static void SetStaticsInfoSum(ref UltraGrid ultraGrid, ArrayList alistColumns) { ArrayList listt = GetStaticsInfoIntegerColumn(); ArrayList listtmny = GetStaticsMoneyColumn(); try { UltraGridBand band = ultraGrid.DisplayLayout.Bands[0]; for (int i = 0; i < alistColumns.Count; i++) { SummarySettings summary1 = null; try { try { summary1 = band.Summaries.Add(SummaryType.Sum, band.Columns[alistColumns[i].ToString()]); } catch { } if (summary1 != null) { band.Summaries.Remove(summary1); SummarySettings summary = band.Summaries.Add(SummaryType.Sum, band.Columns[alistColumns[i].ToString()]); summary.SummaryDisplayArea = SummaryDisplayAreas.BottomFixed; summary.SummaryPosition = SummaryPosition.UseSummaryPositionColumn; // summary.DisplayFormat = " {0:############0.000}"; // summary.DisplayFormat = " {0}"; // summary.DisplayFormat = "{0:0,0.000}"; summary.DisplayFormat = "{0:N3}"; if (listt.Contains(alistColumns[i].ToString())) { // summary.DisplayFormat = "{0:0,0}"; // summary.DisplayFormat = " {0:###,###,###,###0}"; summary.DisplayFormat = " {0:N0}"; } else if (listtmny.Contains(alistColumns[i].ToString())) { //summary.DisplayFormat = "{0:0,0.0000}"; summary.DisplayFormat = "{0:N5}"; } //summary.Appearance.TextHAlign = Infragistics.Win.HAlign.Right; //summary.Appearance.TextVAlign = Infragistics.Win.VAlign.Middle; //summary.Appearance.FontData.Bold = DefaultableBoolean.True; //summary.Appearance.ForeColor = Color.DarkBlue; //summary.Appearance.BackColor = Color.White; } } catch { } } band.Override.SummaryFooterCaptionVisible = Infragistics.Win.DefaultableBoolean.False; } catch { } } /// /// 设置Grid平均值 /// /// /// public static void SetStaticsInfoAvg(ref UltraGrid ultraGrid, ArrayList alistColumns) { try { UltraGridBand band = null; // UltraGridBand band = ultraGrid.DisplayLayout.Bands[0]; for (int k = 0; k < ultraGrid.DisplayLayout.Bands.Count;k++ ) { band = ultraGrid.DisplayLayout.Bands[k]; for (int i = 0; i < alistColumns.Count; i++) { try { if (!band.Columns.Contains(alistColumns[i].ToString())) continue; SummarySettings summary = band.Summaries.Add(SummaryType.Average, band.Columns[alistColumns[i].ToString()]); summary.SummaryDisplayArea = SummaryDisplayAreas.BottomFixed; summary.SummaryPosition = SummaryPosition.UseSummaryPositionColumn; summary.DisplayFormat = " {0:############0.00}"; summary.Appearance.TextHAlign = Infragistics.Win.HAlign.Right; summary.Appearance.TextVAlign = Infragistics.Win.VAlign.Middle; summary.Appearance.FontData.Bold = DefaultableBoolean.True; summary.Appearance.ForeColor = Color.DarkBlue; summary.Appearance.BackColor = Color.White; } catch { } } } band.Override.SummaryFooterCaptionVisible = Infragistics.Win.DefaultableBoolean.False; } catch { } } public static void ExportGridDataToExcel(string fileName, UltraGrid grid) { try { Infragistics.Win.UltraWinGrid.ExcelExport.UltraGridExcelExporter ex = new Infragistics.Win.UltraWinGrid.ExcelExport.UltraGridExcelExporter(); string strFileName = @"c:\" + fileName + System.DateTime.Today.ToString("yyMMdd") + ".xls"; if (CommonExportExcel(ref strFileName)) ex.Export(grid, strFileName); } catch { } } private static bool CommonExportExcel(ref string strFileName) { System.Windows.Forms.SaveFileDialog sfd = new SaveFileDialog(); sfd.Filter = "Microsoft Office Excel 工作簿 (*.xls)|*.xls"; sfd.Title = "导出到Excel文件"; sfd.FileName = strFileName; if (sfd.ShowDialog() == DialogResult.OK) { strFileName = sfd.FileName; return sfd.FileName != ""; } return false; } } }