UtilUltraGrid.cs 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Windows.Forms;
  8. using System.Collections;
  9. using Infragistics.Win;
  10. using Infragistics.Win.UltraWinTabControl;
  11. using Infragistics.Win.UltraWinGrid;
  12. using Infragistics.Win.UltraWinDataSource;
  13. using System.IO;
  14. using System.Diagnostics;
  15. using Infragistics.Win.UltraWinGrid.ExcelExport;
  16. using System.Runtime.InteropServices;
  17. namespace Core.StlMes.Client.Sale.Util
  18. {
  19. public class UtilUltraGrid
  20. {
  21. private static ArrayList GetStaticsInfoIntegerColumn()
  22. {
  23. ArrayList list = new ArrayList();
  24. list.Add("QUANTITY");
  25. return list;
  26. }
  27. private static ArrayList GetStaticsMoneyColumn()
  28. {
  29. ArrayList list = new ArrayList();
  30. list.Add("MONEY");
  31. list.Add("MONEY_ORG");
  32. return list;
  33. }
  34. /// <summary>
  35. /// 设置Grid合计值
  36. /// </summary>
  37. /// <param name="ultraGrid"></param>
  38. /// <param name="alistColumns"></param>
  39. public static void SetStaticsInfoSum(ref UltraGrid ultraGrid, ArrayList alistColumns)
  40. {
  41. ArrayList listt = GetStaticsInfoIntegerColumn();
  42. ArrayList listtmny = GetStaticsMoneyColumn();
  43. try
  44. {
  45. UltraGridBand band = ultraGrid.DisplayLayout.Bands[0];
  46. for (int i = 0; i < alistColumns.Count; i++)
  47. {
  48. SummarySettings summary1 = null;
  49. try
  50. {
  51. try
  52. {
  53. summary1 = band.Summaries.Add(SummaryType.Sum, band.Columns[alistColumns[i].ToString()]);
  54. }
  55. catch
  56. {
  57. }
  58. if (summary1 != null)
  59. {
  60. band.Summaries.Remove(summary1);
  61. SummarySettings summary = band.Summaries.Add(SummaryType.Sum, band.Columns[alistColumns[i].ToString()]);
  62. summary.SummaryDisplayArea = SummaryDisplayAreas.BottomFixed;
  63. summary.SummaryPosition = SummaryPosition.UseSummaryPositionColumn;
  64. // summary.DisplayFormat = " {0:############0.000}";
  65. // summary.DisplayFormat = " {0}";
  66. // summary.DisplayFormat = "{0:0,0.000}";
  67. summary.DisplayFormat = "{0:N3}";
  68. if (listt.Contains(alistColumns[i].ToString()))
  69. {
  70. // summary.DisplayFormat = "{0:0,0}";
  71. // summary.DisplayFormat = " {0:###,###,###,###0}";
  72. summary.DisplayFormat = " {0:N0}";
  73. }
  74. else if (listtmny.Contains(alistColumns[i].ToString()))
  75. {
  76. //summary.DisplayFormat = "{0:0,0.0000}";
  77. summary.DisplayFormat = "{0:N5}";
  78. }
  79. //summary.Appearance.TextHAlign = Infragistics.Win.HAlign.Right;
  80. //summary.Appearance.TextVAlign = Infragistics.Win.VAlign.Middle;
  81. //summary.Appearance.FontData.Bold = DefaultableBoolean.True;
  82. //summary.Appearance.ForeColor = Color.DarkBlue;
  83. //summary.Appearance.BackColor = Color.White;
  84. }
  85. }
  86. catch { }
  87. }
  88. band.Override.SummaryFooterCaptionVisible = Infragistics.Win.DefaultableBoolean.False;
  89. }
  90. catch { }
  91. }
  92. /// <summary>
  93. /// 设置Grid平均值
  94. /// </summary>
  95. /// <param name="ultraGrid"></param>
  96. /// <param name="alistColumns"></param>
  97. public static void SetStaticsInfoAvg(ref UltraGrid ultraGrid, ArrayList alistColumns)
  98. {
  99. try
  100. {
  101. UltraGridBand band = null;
  102. // UltraGridBand band = ultraGrid.DisplayLayout.Bands[0];
  103. for (int k = 0; k < ultraGrid.DisplayLayout.Bands.Count;k++ )
  104. {
  105. band = ultraGrid.DisplayLayout.Bands[k];
  106. for (int i = 0; i < alistColumns.Count; i++)
  107. {
  108. try
  109. {
  110. if (!band.Columns.Contains(alistColumns[i].ToString()))
  111. continue;
  112. SummarySettings summary = band.Summaries.Add(SummaryType.Average, band.Columns[alistColumns[i].ToString()]);
  113. summary.SummaryDisplayArea = SummaryDisplayAreas.BottomFixed;
  114. summary.SummaryPosition = SummaryPosition.UseSummaryPositionColumn;
  115. summary.DisplayFormat = " {0:############0.00}";
  116. summary.Appearance.TextHAlign = Infragistics.Win.HAlign.Right;
  117. summary.Appearance.TextVAlign = Infragistics.Win.VAlign.Middle;
  118. summary.Appearance.FontData.Bold = DefaultableBoolean.True;
  119. summary.Appearance.ForeColor = Color.DarkBlue;
  120. summary.Appearance.BackColor = Color.White;
  121. }
  122. catch { }
  123. }
  124. }
  125. band.Override.SummaryFooterCaptionVisible = Infragistics.Win.DefaultableBoolean.False;
  126. }
  127. catch { }
  128. }
  129. public static void ExportGridDataToExcel(string fileName, UltraGrid grid)
  130. {
  131. try
  132. {
  133. Infragistics.Win.UltraWinGrid.ExcelExport.UltraGridExcelExporter ex = new Infragistics.Win.UltraWinGrid.ExcelExport.UltraGridExcelExporter();
  134. string strFileName = @"c:\" + fileName + System.DateTime.Today.ToString("yyMMdd") + ".xls";
  135. if (CommonExportExcel(ref strFileName))
  136. ex.Export(grid, strFileName);
  137. }
  138. catch
  139. {
  140. }
  141. }
  142. private static bool CommonExportExcel(ref string strFileName)
  143. {
  144. System.Windows.Forms.SaveFileDialog sfd = new SaveFileDialog();
  145. sfd.Filter = "Microsoft Office Excel 工作簿 (*.xls)|*.xls";
  146. sfd.Title = "导出到Excel文件";
  147. sfd.FileName = strFileName;
  148. if (sfd.ShowDialog() == DialogResult.OK)
  149. {
  150. strFileName = sfd.FileName;
  151. return sfd.FileName != "";
  152. }
  153. return false;
  154. }
  155. }
  156. }