UltraGridUtil.cs 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778
  1. using System;
  2. using System.Reflection;
  3. using System.Collections;
  4. using System.Resources;
  5. using System.Windows.Forms;
  6. using System.Data;
  7. using System.Collections.Generic;
  8. using Infragistics.Win.UltraWinGrid;
  9. using System.Drawing;
  10. using System.Text;
  11. using Infragistics.Win;
  12. namespace Core.StlMes.Client.Sale.SaleFundMgt.Util
  13. {
  14. public class UltraGridUtil
  15. {
  16. public static void InitUltraGridValueList(ref UltraGrid grid)
  17. {
  18. if (grid.DisplayLayout.Bands.Count == 0)
  19. return;
  20. UltraGridBand band = grid.DisplayLayout.Bands[0];
  21. InitUltraGridValueList(ref band);
  22. }
  23. public static void InitUltraGridValueList(ref UltraGrid grid,int bandIndex)
  24. {
  25. if (grid.DisplayLayout.Bands.Count == 0)
  26. return;
  27. if (grid.DisplayLayout.Bands.Count < bandIndex)
  28. return;
  29. UltraGridBand band = grid.DisplayLayout.Bands[bandIndex];
  30. InitUltraGridValueList(ref band);
  31. }
  32. public static void InitUltraGridValueList(ref UltraGridBand band)
  33. {
  34. }
  35. #region 初始化Grid 标题和宽度
  36. /// <summary>
  37. /// 初始化Grid 标题和宽度,需保证三个数组的长度是一致的
  38. /// </summary>
  39. /// <param name="grid"></param>
  40. /// <param name="columnName"></param>
  41. /// <param name="headerName"></param>
  42. /// <param name="columnWidht"></param>
  43. public static void SetGridHeaderAndWidth(ref UltraGrid grid, string[] columnName, string[] headerName, int[] columnWidht, out string strMsg)
  44. {
  45. strMsg = "";
  46. // 参数检查
  47. if (columnName == null || columnName.Length == 0
  48. || headerName == null || headerName.Length == 0
  49. || columnWidht == null || columnWidht.Length == 0)
  50. {
  51. strMsg = "输入参数错误";
  52. return;
  53. }
  54. // 长度判断
  55. if (columnName.Length != headerName.Length || columnName.Length != columnWidht.Length)
  56. {
  57. strMsg = "输入数组长度错误";
  58. return;
  59. }
  60. if (grid.DisplayLayout.Bands == null || grid.DisplayLayout.Bands.Count == 0)
  61. {
  62. strMsg = "Grid 未绑定数据源";
  63. return;
  64. }
  65. for (int i = 0; i < columnName.Length; i++)
  66. {
  67. try
  68. {
  69. grid.DisplayLayout.Bands[0].Columns[columnName[i]].Header.Caption = headerName[i];
  70. grid.DisplayLayout.Bands[0].Columns[columnName[i]].Width = columnWidht[i];
  71. }
  72. catch
  73. {
  74. }
  75. }
  76. }
  77. public static void SetGridHeaderAndWidth(ref UltraGridBand band, string[] columnName, string[] headerName, int[] columnWidht, out string strMsg)
  78. {
  79. strMsg = "";
  80. // 参数检查
  81. if (columnName == null || columnName.Length == 0
  82. || headerName == null || headerName.Length == 0
  83. || columnWidht == null || columnWidht.Length == 0)
  84. {
  85. strMsg = "输入参数错误";
  86. return;
  87. }
  88. // 长度判断
  89. if (columnName.Length != headerName.Length || columnName.Length != columnWidht.Length)
  90. {
  91. strMsg = "输入数组长度错误";
  92. return;
  93. }
  94. if (band == null)
  95. {
  96. strMsg = "band null";
  97. return;
  98. }
  99. for (int i = 0; i < columnName.Length; i++)
  100. {
  101. try
  102. {
  103. band.Columns[columnName[i]].Header.Caption = headerName[i];
  104. band.Columns[columnName[i]].Width = columnWidht[i];
  105. }
  106. catch
  107. {
  108. }
  109. }
  110. }
  111. public static void SetGridHeaderAndWidth(ref UltraGrid grid, string[] columnName, string[] headerName, out string strMsg)
  112. {
  113. strMsg = "";
  114. // 参数检查
  115. if (columnName == null || columnName.Length == 0
  116. || headerName == null || headerName.Length == 0
  117. )
  118. {
  119. strMsg = "输入参数错误";
  120. return;
  121. }
  122. // 长度判断
  123. if (columnName.Length != headerName.Length)
  124. {
  125. strMsg = "输入数组长度错误";
  126. return;
  127. }
  128. if (grid.DisplayLayout.Bands == null || grid.DisplayLayout.Bands.Count == 0)
  129. {
  130. strMsg = "Grid 未绑定数据源";
  131. return;
  132. }
  133. for (int i = 0; i < columnName.Length; i++)
  134. {
  135. try
  136. {
  137. grid.DisplayLayout.Bands[0].Columns[columnName[i]].Header.Caption = headerName[i];
  138. }
  139. catch
  140. {
  141. }
  142. }
  143. }
  144. public static void SetGridWidth(ref UltraGrid grid, int[] columnWidth, out string strMsg)
  145. {
  146. strMsg = "";
  147. // 参数检查
  148. if (columnWidth == null || columnWidth.Length == 0
  149. )
  150. {
  151. strMsg = "输入参数错误";
  152. return;
  153. }
  154. for (int i = 0; i < columnWidth.Length; i++)
  155. {
  156. try
  157. {
  158. grid.DisplayLayout.Bands[0].Columns[i].Width = columnWidth[i];
  159. }
  160. catch
  161. {
  162. }
  163. }
  164. }
  165. /// <summary>
  166. ///
  167. /// </summary>
  168. /// <param name="grid"></param>
  169. /// <param name="hs"> 带列名称和宽度hs表</param>
  170. /// <param name="strMsg"></param>
  171. public static void SetGridWidth(ref UltraGrid grid, System.Collections.Hashtable hs)
  172. {
  173. try
  174. {
  175. if (hs == null)
  176. return;
  177. if (hs.Count == 0)
  178. return;
  179. foreach (string s in hs.Keys)
  180. {
  181. try
  182. {
  183. grid.DisplayLayout.Bands[0].Columns[s].Width = Convert.ToInt16(hs[s]);
  184. }
  185. catch
  186. {
  187. }
  188. }
  189. }
  190. catch
  191. {
  192. }
  193. }
  194. public static void SetGridWidth(ref UltraGrid grid, int[] columnWidth)
  195. {
  196. string strMsg = "";
  197. SetGridWidth(ref grid, columnWidth, out strMsg);
  198. }
  199. public static void SetGridColumnHidden(ref UltraGrid grid, string[] columnName)
  200. {
  201. if (columnName == null || columnName.Length == 0)
  202. return;
  203. if (grid.DisplayLayout.Bands.Count == 0)
  204. return;
  205. foreach (string s in columnName)
  206. {
  207. try
  208. {
  209. grid.DisplayLayout.Bands[0].Columns[s].Hidden = true;
  210. }
  211. catch
  212. {
  213. }
  214. }
  215. }
  216. /// <summary>
  217. /// 隐藏指定列,isColumnNameHIddle 指定columnname作用,为
  218. /// true 则是隐藏指定列,false 则是除columnname 列,其他都隐藏
  219. /// </summary>
  220. /// <param name="grid"></param>
  221. /// <param name="columnName"></param>
  222. /// <param name="isColumnNameHIddle"></param>
  223. public static void SetGridColumnHidden(ref UltraGrid grid, string[] columnName,Boolean isColumnNameHIddle)
  224. {
  225. if (isColumnNameHIddle)
  226. {
  227. SetGridColumnHidden(ref grid, columnName);
  228. return;
  229. }
  230. if (columnName == null || columnName.Length == 0)
  231. return;
  232. if (grid.DisplayLayout.Bands.Count == 0)
  233. return;
  234. foreach (UltraGridColumn column in grid.DisplayLayout.Bands[0].Columns)
  235. {
  236. column.Hidden = true;
  237. }
  238. foreach (string s in columnName)
  239. {
  240. try
  241. {
  242. grid.DisplayLayout.Bands[0].Columns[s].Hidden = false;
  243. }
  244. catch
  245. {
  246. }
  247. }
  248. }
  249. #endregion
  250. #region 设置grid
  251. /// <summary>
  252. /// 设置是否可以过滤
  253. /// </summary>
  254. /// <param name="ultGrid"></param>
  255. /// <param name="bAllowFilter"></param>
  256. ///
  257. public static void SetGridRowFilter(ref UltraGrid ultGrid)
  258. {
  259. try
  260. {
  261. ultGrid.DisplayLayout.Bands[0].ColumnFilters.ClearAllFilters();
  262. ultGrid.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.True;
  263. }
  264. catch { }
  265. }
  266. /// <summary>
  267. /// 设置是否允许列移动
  268. /// </summary>
  269. /// <param name="ultGrid"></param>
  270. /// <param name="isAllowGroupBy"></param>
  271. public static void SetGridRowAllowColMoving(ref UltraGrid ultGrid, Boolean isAllowGroupBy)
  272. {
  273. try
  274. {
  275. if (isAllowGroupBy)
  276. {
  277. ultGrid.DisplayLayout.Override.AllowColMoving = AllowColMoving.WithinBand;
  278. }
  279. }
  280. catch { }
  281. }
  282. /// <summary>
  283. ///
  284. /// </summary>
  285. /// <param name="ultGrid"></param>
  286. /// <param name="isAllowColSwapping"></param>
  287. public static void SetGridRowAllowColSwapping(ref UltraGrid ultGrid, Boolean isAllowColSwapping)
  288. {
  289. try
  290. {
  291. if (isAllowColSwapping)
  292. {
  293. ultGrid.DisplayLayout.Override.AllowColSwapping = AllowColSwapping.WithinBand;
  294. }
  295. else
  296. ultGrid.DisplayLayout.Override.AllowColSwapping = AllowColSwapping.NotAllowed;
  297. ultGrid.DisplayLayout.Override.AllowColSwapping = AllowColSwapping.WithinBand;
  298. ultGrid.DisplayLayout.ViewStyleBand = ViewStyleBand.OutlookGroupBy;
  299. }
  300. catch { }
  301. }
  302. /// <summary>
  303. /// 设置分组
  304. /// </summary>
  305. /// <param name="ultGrid"></param>
  306. /// <param name="isOutLookGroupBy"></param>
  307. public static void SetGridRowAllowOutLookGroupBy(ref UltraGrid ultGrid, Boolean isOutLookGroupBy)
  308. {
  309. try
  310. {
  311. if (isOutLookGroupBy)
  312. {
  313. ultGrid.DisplayLayout.ViewStyleBand = ViewStyleBand.OutlookGroupBy;
  314. }
  315. }
  316. catch { }
  317. }
  318. /// <summary>
  319. /// 设置grid,默认允许过滤,移动列等
  320. /// </summary>
  321. /// <param name="ultGrid"></param>
  322. public static void SetGridRowStyle(ref UltraGrid ultGrid)
  323. {
  324. SetGridRowFilter(ref ultGrid);
  325. SetGridRowAllowColMoving(ref ultGrid, true);
  326. SetGridRowAllowColSwapping(ref ultGrid, true);
  327. SetGridRowAllowOutLookGroupBy(ref ultGrid, true);
  328. }
  329. /// <summary>
  330. /// 设置grid 样式,包括颜色,字体等等
  331. /// </summary>
  332. /// <param name="ugr"></param>
  333. public static void SetGridDefaultStyle(ref UltraGrid ugr)
  334. {
  335. try
  336. {
  337. Infragistics.Win.Appearance appearance35 = new Infragistics.Win.Appearance();
  338. Infragistics.Win.Appearance appearance36 = new Infragistics.Win.Appearance();
  339. Infragistics.Win.Appearance appearance37 = new Infragistics.Win.Appearance();
  340. Infragistics.Win.Appearance appearance38 = new Infragistics.Win.Appearance();
  341. Infragistics.Win.Appearance appearance39 = new Infragistics.Win.Appearance();
  342. Infragistics.Win.Appearance appearance40 = new Infragistics.Win.Appearance();
  343. Infragistics.Win.Appearance appearance41 = new Infragistics.Win.Appearance();
  344. Infragistics.Win.Appearance appearance42 = new Infragistics.Win.Appearance();
  345. Infragistics.Win.Appearance appearance43 = new Infragistics.Win.Appearance();
  346. Infragistics.Win.Appearance appearance44 = new Infragistics.Win.Appearance();
  347. Infragistics.Win.UltraWinGrid.UltraGridLayout ultraGridLayout3 = new Infragistics.Win.UltraWinGrid.UltraGridLayout();
  348. Infragistics.Win.Appearance appearance45 = new Infragistics.Win.Appearance();
  349. Infragistics.Win.Appearance appearance46 = new Infragistics.Win.Appearance();
  350. Infragistics.Win.Appearance appearance47 = new Infragistics.Win.Appearance();
  351. Infragistics.Win.Appearance appearance48 = new Infragistics.Win.Appearance();
  352. Infragistics.Win.Appearance appearance49 = new Infragistics.Win.Appearance();
  353. Infragistics.Win.Appearance appearance50 = new Infragistics.Win.Appearance();
  354. Infragistics.Win.Appearance appearance51 = new Infragistics.Win.Appearance();
  355. ugr.DisplayLayout.BorderStyle = Infragistics.Win.UIElementBorderStyle.None;
  356. ugr.DisplayLayout.CaptionVisible = Infragistics.Win.DefaultableBoolean.False;
  357. ugr.DisplayLayout.GroupByBox.Hidden = true;
  358. ugr.DisplayLayout.GroupByBox.Prompt = "将要分组的列拖至该区域";
  359. ugr.DisplayLayout.MaxColScrollRegions = 1;
  360. ugr.DisplayLayout.MaxRowScrollRegions = 1;
  361. appearance47.BackColor = System.Drawing.Color.Lavender;
  362. ugr.DisplayLayout.Override.ActiveRowAppearance = appearance47;
  363. ugr.DisplayLayout.Override.AllowUpdate = Infragistics.Win.DefaultableBoolean.False;
  364. ugr.DisplayLayout.Override.GroupByRowDescriptionMask = "[caption]:[value] ([count]条记录)";
  365. appearance48.BackColor = System.Drawing.Color.LightSteelBlue;
  366. appearance48.TextHAlign = Infragistics.Win.HAlign.Center;
  367. ugr.DisplayLayout.Override.HeaderAppearance = appearance48;
  368. ugr.DisplayLayout.Override.HeaderClickAction = Infragistics.Win.UltraWinGrid.HeaderClickAction.SortMulti;
  369. ugr.DisplayLayout.Override.HeaderStyle = Infragistics.Win.HeaderStyle.Standard;
  370. ugr.DisplayLayout.Override.MinRowHeight = 21;
  371. appearance49.BackColor = System.Drawing.Color.LightSteelBlue;
  372. ugr.DisplayLayout.Override.RowSelectorAppearance = appearance49;
  373. ugr.DisplayLayout.Override.RowSelectorHeaderStyle = Infragistics.Win.UltraWinGrid.RowSelectorHeaderStyle.SeparateElement;
  374. ugr.DisplayLayout.Override.RowSelectorNumberStyle = Infragistics.Win.UltraWinGrid.RowSelectorNumberStyle.RowIndex;
  375. ugr.DisplayLayout.Override.RowSelectors = Infragistics.Win.DefaultableBoolean.True;
  376. appearance50.BackColor = System.Drawing.Color.Lavender;
  377. appearance50.ForeColor = System.Drawing.Color.Black;
  378. ugr.DisplayLayout.Override.SelectedRowAppearance = appearance50;
  379. ugr.DisplayLayout.Override.SummaryFooterCaptionVisible = Infragistics.Win.DefaultableBoolean.False;
  380. ugr.DisplayLayout.Override.SummaryFooterSpacingBefore = 0;
  381. appearance51.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(220)))), ((int)(((byte)(255)))));
  382. ugr.DisplayLayout.Override.SummaryValueAppearance = appearance51;
  383. ugr.DisplayLayout.Override.WrapHeaderText = Infragistics.Win.DefaultableBoolean.True;
  384. ugr.DisplayLayout.ScrollBounds = Infragistics.Win.UltraWinGrid.ScrollBounds.ScrollToFill;
  385. ugr.DisplayLayout.ScrollStyle = Infragistics.Win.UltraWinGrid.ScrollStyle.Immediate;
  386. ugr.DisplayLayout.ViewStyleBand = Infragistics.Win.UltraWinGrid.ViewStyleBand.OutlookGroupBy;
  387. ugr.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
  388. ugr.Location = new System.Drawing.Point(0, 69);
  389. ugr.Name = "";
  390. ugr.Size = new System.Drawing.Size(1140, 360);
  391. ugr.TabIndex = 65;
  392. ugr.Tag = "";
  393. ugr.Text = "";
  394. SetGridRowStyle(ref ugr);
  395. }
  396. catch
  397. {
  398. }
  399. }
  400. /// <summary>
  401. /// 设置grid 样式,默认过滤,拖动,统一样色等
  402. /// </summary>
  403. /// <param name="ultGrid"></param>
  404. public static void SetGridOverrideStyle(ref UltraGrid ultGrid)
  405. {
  406. SetGridDefaultStyle(ref ultGrid);
  407. SetGridRowStyle(ref ultGrid);
  408. }
  409. #endregion
  410. #region 设置grid 的sum 值
  411. /// <summary>
  412. /// 设置grid 的sum 值
  413. /// </summary>
  414. /// <param name="ultraGrid"> grid </param>
  415. /// <param name="alistColumns"> 待设置列名</param>
  416. public static void SetStaticsInfoSum(ref UltraGrid ultraGrid, ArrayList alistColumns, bool isClearExists)
  417. {
  418. try
  419. {
  420. if (alistColumns == null)
  421. {
  422. return;
  423. }
  424. UltraGridBand band = ultraGrid.DisplayLayout.Bands[0];
  425. if (isClearExists)
  426. {
  427. band.Summaries.Clear();
  428. }
  429. SummarySettings summary = null;
  430. UltraGridColumn cl = null;
  431. foreach (UltraGridColumn column in ultraGrid.DisplayLayout.Bands[0].Columns)
  432. {
  433. if (column.RowLayoutColumnInfo.OriginX == 0)
  434. {
  435. cl = column;
  436. break;
  437. }
  438. }
  439. if (cl == null)
  440. cl = ultraGrid.DisplayLayout.Bands[0].Columns[0];
  441. summary = band.Summaries.Add(SummaryType.Count, cl);
  442. summary.SummaryDisplayArea = SummaryDisplayAreas.BottomFixed;
  443. summary.SummaryPosition = SummaryPosition.UseSummaryPositionColumn;
  444. summary.DisplayFormat = "合计:";
  445. summary.Appearance.TextHAlign = Infragistics.Win.HAlign.Center;
  446. summary.Appearance.TextVAlign = Infragistics.Win.VAlign.Middle;
  447. summary.Appearance.FontData.Bold = DefaultableBoolean.True;
  448. string strFormat = " {0:############0.00}";
  449. for (int i = 0; i < alistColumns.Count; i++)
  450. {
  451. try
  452. {
  453. summary = band.Summaries.Add(SummaryType.Sum, band.Columns[alistColumns[i].ToString()]);
  454. summary.SummaryDisplayArea = SummaryDisplayAreas.BottomFixed;
  455. summary.SummaryPosition = SummaryPosition.UseSummaryPositionColumn;
  456. summary.DisplayFormat = strFormat;
  457. summary.Appearance.TextHAlign = Infragistics.Win.HAlign.Right;
  458. summary.Appearance.TextVAlign = Infragistics.Win.VAlign.Middle;
  459. summary.Appearance.FontData.Bold = DefaultableBoolean.True;
  460. summary.Appearance.ForeColor = Color.DarkBlue;
  461. summary.Appearance.BackColor = Color.White;
  462. }
  463. catch { }
  464. }
  465. band.Override.SummaryFooterCaptionVisible = Infragistics.Win.DefaultableBoolean.False;
  466. }
  467. catch (Exception ex) { }
  468. }
  469. public static void SetStaticsInfoSum(ref UltraGrid ultraGrid, string[] alistColumns, bool isClearExists)
  470. {
  471. try
  472. {
  473. if (alistColumns == null)
  474. {
  475. return;
  476. }
  477. ArrayList list = new ArrayList();
  478. foreach (string s in alistColumns)
  479. {
  480. if (!list.Contains(s))
  481. {
  482. list.Add(s);
  483. }
  484. }
  485. SetStaticsInfoSum(ref ultraGrid, list, isClearExists);
  486. }
  487. catch (Exception ex) { }
  488. }
  489. #endregion
  490. #region 设置Grid平均值
  491. /// <summary>
  492. /// 设置grid平均值
  493. /// </summary>
  494. /// <param name="ultraGrid">grid</param>
  495. /// <param name="alistColumns">要设置的列名</param>
  496. /// <param name="clearExists">是否清除统计</param>
  497. /// <param name="alistFormat">显示格式</param>
  498. public static void SetStaticsInfoAvg(ref UltraGrid ultraGrid, ArrayList alistColumns, bool clearExists, ArrayList alistFormat)
  499. {
  500. try
  501. {
  502. if (alistColumns == null)
  503. {
  504. return;
  505. }
  506. UltraGridBand band = ultraGrid.DisplayLayout.Bands[0];
  507. if (clearExists)
  508. band.Summaries.Clear();
  509. SummarySettings summary = null;
  510. UltraGridColumn cl = null;
  511. foreach (UltraGridColumn column in ultraGrid.DisplayLayout.Bands[0].Columns)
  512. {
  513. if (column.RowLayoutColumnInfo.OriginX == 0)
  514. {
  515. cl = column;
  516. break;
  517. }
  518. }
  519. if (cl == null)
  520. cl = ultraGrid.DisplayLayout.Bands[0].Columns[0];
  521. summary = band.Summaries.Add(SummaryType.Count, cl);
  522. summary.SummaryDisplayArea = SummaryDisplayAreas.BottomFixed;
  523. summary.SummaryPosition = SummaryPosition.UseSummaryPositionColumn;
  524. summary.DisplayFormat = "平均:";
  525. summary.Appearance.TextHAlign = Infragistics.Win.HAlign.Center;
  526. summary.Appearance.TextVAlign = Infragistics.Win.VAlign.Middle;
  527. summary.Appearance.FontData.Bold = DefaultableBoolean.True;
  528. string strFormat = "";
  529. for (int i = 0; i < alistColumns.Count; i++)
  530. {
  531. try
  532. {
  533. try
  534. {
  535. strFormat = alistFormat[i].ToString();
  536. }
  537. catch
  538. {
  539. strFormat = " {0:############0.00}";
  540. }
  541. summary = band.Summaries.Add(SummaryType.Average, band.Columns[alistColumns[i].ToString()]);
  542. summary.SummaryDisplayArea = SummaryDisplayAreas.BottomFixed;
  543. summary.SummaryPosition = SummaryPosition.UseSummaryPositionColumn;
  544. summary.DisplayFormat = strFormat;
  545. summary.Appearance.TextHAlign = Infragistics.Win.HAlign.Right;
  546. summary.Appearance.TextVAlign = Infragistics.Win.VAlign.Middle;
  547. summary.Appearance.FontData.Bold = DefaultableBoolean.True;
  548. summary.Appearance.ForeColor = Color.DarkBlue;
  549. summary.Appearance.BackColor = Color.White;
  550. }
  551. catch { }
  552. }
  553. band.Override.SummaryFooterCaptionVisible = Infragistics.Win.DefaultableBoolean.False;
  554. }
  555. catch { }
  556. }
  557. public static void SetStaticsInfoAvg(ref UltraGrid ultraGrid, ArrayList alistColumns, bool clearExists)
  558. {
  559. try
  560. {
  561. if (alistColumns == null)
  562. {
  563. return;
  564. }
  565. UltraGridBand band = ultraGrid.DisplayLayout.Bands[0];
  566. if (clearExists)
  567. band.Summaries.Clear();
  568. SummarySettings summary = null;
  569. UltraGridColumn cl = null;
  570. foreach (UltraGridColumn column in ultraGrid.DisplayLayout.Bands[0].Columns)
  571. {
  572. if (column.RowLayoutColumnInfo.OriginX == 0)
  573. {
  574. cl = column;
  575. break;
  576. }
  577. }
  578. if (cl == null)
  579. cl = ultraGrid.DisplayLayout.Bands[0].Columns[0];
  580. summary = band.Summaries.Add(SummaryType.Count, cl);
  581. summary.SummaryDisplayArea = SummaryDisplayAreas.BottomFixed;
  582. summary.SummaryPosition = SummaryPosition.UseSummaryPositionColumn;
  583. summary.DisplayFormat = "平均:";
  584. summary.Appearance.TextHAlign = Infragistics.Win.HAlign.Center;
  585. summary.Appearance.TextVAlign = Infragistics.Win.VAlign.Middle;
  586. summary.Appearance.FontData.Bold = DefaultableBoolean.True;
  587. string strFormat = "";
  588. for (int i = 0; i < alistColumns.Count; i++)
  589. {
  590. try
  591. {
  592. strFormat = " {0:############0.00}";
  593. summary = band.Summaries.Add(SummaryType.Average, band.Columns[alistColumns[i].ToString()]);
  594. summary.SummaryDisplayArea = SummaryDisplayAreas.BottomFixed;
  595. summary.SummaryPosition = SummaryPosition.UseSummaryPositionColumn;
  596. summary.DisplayFormat = strFormat;
  597. summary.Appearance.TextHAlign = Infragistics.Win.HAlign.Right;
  598. summary.Appearance.TextVAlign = Infragistics.Win.VAlign.Middle;
  599. summary.Appearance.FontData.Bold = DefaultableBoolean.True;
  600. summary.Appearance.ForeColor = Color.DarkBlue;
  601. summary.Appearance.BackColor = Color.White;
  602. }
  603. catch { }
  604. }
  605. band.Override.SummaryFooterCaptionVisible = Infragistics.Win.DefaultableBoolean.False;
  606. }
  607. catch { }
  608. }
  609. public static void SetStaticsInfoAvg(ref UltraGrid ultraGrid, string[] alistColumns, bool clearExists)
  610. {
  611. try
  612. {
  613. if (alistColumns == null || alistColumns.Length == 0)
  614. {
  615. return;
  616. }
  617. ArrayList list = new ArrayList();
  618. foreach (string s in alistColumns)
  619. {
  620. list.Add(s);
  621. }
  622. SetStaticsInfoAvg(ref ultraGrid, list, clearExists);
  623. }
  624. catch
  625. {
  626. }
  627. }
  628. #endregion
  629. #region 导出excel
  630. /// <summary>
  631. /// 导出excel,带导出文件名
  632. /// </summary>
  633. /// <param name="fileName"></param>
  634. /// <param name="grid"></param>
  635. public static void ExportGridDataToExcel(string fileName, UltraGrid grid)
  636. {
  637. try
  638. {
  639. Infragistics.Win.UltraWinGrid.ExcelExport.UltraGridExcelExporter ex = new Infragistics.Win.UltraWinGrid.ExcelExport.UltraGridExcelExporter();
  640. string strFileName = @"c:\" + fileName + System.DateTime.Today.ToString("yyMMdd") + ".xls";
  641. if (CommonExportExcel(ref strFileName))
  642. ex.Export(grid, strFileName);
  643. }
  644. catch
  645. {
  646. }
  647. }
  648. private static bool CommonExportExcel(ref string strFileName)
  649. {
  650. System.Windows.Forms.SaveFileDialog sfd = new SaveFileDialog();
  651. sfd.Filter = "Microsoft Office Excel 工作簿 (*.xls)|*.xls";
  652. sfd.Title = "导出到Excel文件";
  653. sfd.FileName = strFileName;
  654. if (sfd.ShowDialog() == DialogResult.OK)
  655. {
  656. strFileName = sfd.FileName;
  657. return sfd.FileName != "";
  658. }
  659. return false;
  660. }
  661. /// <summary>
  662. /// 不带文件名导出
  663. /// </summary>
  664. /// <param name="grid"></param>
  665. public static void ExportGridDataToExcel(UltraGrid grid)
  666. {
  667. ExportGridDataToExcel("", grid);
  668. }
  669. #endregion
  670. }
  671. }