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;
}
}
}