| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231 |
- /*******************************************************************************
- * Copyright(c) 2012 dongke All rights reserved. / Confidential
- * 类的信息:
- * 1.程序名称:GridSettingManager.cs
- * 2.功能描述:提供DataGridView控件相关设定的保存和取得的管理
- * 编辑履历:
- * 作者 日期 版本 修改内容
- * 欧阳涛 2012/06/07 1.00 新建
- *******************************************************************************/
- using System;
- using System.Data;
- using System.IO;
- using System.Windows.Forms;
- namespace Dongke.IBOSS.PRD.Basics.Library
- {
- /// <summary>
- /// 提供DataGridView控件相关设定的保存和取得的管理
- /// </summary>
- public static class GridSettingManager
- {
- #region 常量定义
- private static DataTable _gridSetting = new DataTable();
- #endregion
- #region 属性
- /// <summary>
- /// 帐套代码
- /// </summary>
- public static string AccountCode
- {
- get;
- set;
- }
- /// <summary>
- /// 用户
- /// </summary>
- public static string UserCode
- {
- get;
- set;
- }
- #endregion
- #region 构造函数
- static GridSettingManager()
- {
- _gridSetting.TableName = "GridSetting";
- DataColumn[] gridColumns = new DataColumn[]
- {
- new DataColumn("ItemName", typeof(string)),
- new DataColumn("DispWidth", typeof(int)),
- new DataColumn("DispNo", typeof(int))
- };
- _gridSetting.Columns.AddRange(gridColumns);
- }
- #endregion
- #region 公开方法/属性
- /// <summary>
- /// 从文件中恢复DataGridView的设定
- /// </summary>
- /// <param name="grid"></param>
- /// <param name="gridName"></param>
- /// <returns></returns>
- public static bool InitializeGridSetting(DataGridView grid, string gridName)
- {
- try
- {
- if (grid == null || string.IsNullOrEmpty(gridName))
- {
- return false;
- }
- lock (_gridSetting)
- {
- if (!GetGridSettingData(gridName))
- {
- return false;
- }
- if (_gridSetting == null
- || _gridSetting.Rows.Count == 0
- //|| _gridSetting.Rows.Count != grid.Columns.Count
- )
- {
- return false;
- }
- string columnName = string.Empty;
- //foreach (DataRow row in _gridSetting.Rows)
- //{
- // columnName = (string)row["ItemName"];
- // if (string.IsNullOrEmpty(columnName))
- // {
- // return false;
- // }
- // if (!grid.Columns.Contains(columnName))
- // {
- // return false;
- // }
- //}
- int gridColumnDispNo = 0;
- DataGridViewColumn gridColumn = null;
- _gridSetting.DefaultView.Sort = "DispNo";
- //_gridSetting = _gridSetting.DefaultView.ToTable();
- //foreach (DataRow row in _gridSetting.Rows)
- foreach (DataRowView row in _gridSetting.DefaultView)
- {
- columnName = (string)row["ItemName"];
- if (string.IsNullOrEmpty(columnName) || !grid.Columns.Contains(columnName))
- {
- continue;
- }
- gridColumn = grid.Columns[columnName];
- //gridColumnDispNo = (int)row["DispNo"];
- if (gridColumn.DisplayIndex != gridColumnDispNo)
- {
- gridColumn.DisplayIndex = gridColumnDispNo;
- }
- gridColumn.Width = (int)row["DispWidth"];
- gridColumnDispNo++;
- }
- }
- return true;
- }
- catch (Exception ex)
- {
- OutputLog.Trace(LogPriority.Error, "GridSettingManager",
- "InitializeGridSetting()", ex.ToString());
- return false;
- //throw ex;
- }
- }
- /// <summary>
- /// DataGridView设定文件保存
- /// </summary>
- /// <param name="grid"></param>
- /// <param name="gridName"></param>
- /// <returns></returns>
- public static bool SaveGridSetting(DataGridView grid, string gridName)
- {
- try
- {
- if (grid == null || string.IsNullOrEmpty(gridName))
- {
- return false;
- }
- lock (_gridSetting)
- {
- _gridSetting.Clear();
- DataRow newRow = null;
- foreach (DataGridViewColumn column in grid.Columns)
- {
- newRow = _gridSetting.NewRow();
- newRow["ItemName"] = column.Name;
- newRow["DispWidth"] = column.Width;
- newRow["DispNo"] = column.DisplayIndex;
- _gridSetting.Rows.Add(newRow);
- }
- if (!Directory.Exists(LocalPath.GridSettingRoot))
- {
- Directory.CreateDirectory(LocalPath.GridSettingRoot);
- }
- string gridSettingFileName = GetGridSettingFileName(gridName);
- _gridSetting.WriteXml(gridSettingFileName, XmlWriteMode.WriteSchema);
- }
- return true;
- }
- catch (Exception ex)
- {
- OutputLog.Trace(LogPriority.Error, "GridSettingManager",
- "SaveGridSetting()", ex.ToString());
- return false;
- //throw ex;
- }
- }
- #endregion
- #region 私有方法/函数
- /// <summary>
- /// 根据DataGridView名称取得设定的数据
- /// </summary>
- /// <param name="gridName">DataGridView名称</param>
- /// <returns>
- /// True:取得成功
- /// False:取得失败
- /// </returns>
- private static bool GetGridSettingData(string gridName)
- {
- try
- {
- string gridSettingFileName = GetGridSettingFileName(gridName);
- if (File.Exists(gridSettingFileName))
- {
- _gridSetting.Clear();
- _gridSetting.ReadXml(gridSettingFileName);
- return true;
- }
- else
- {
- return false;
- }
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// DataGridView设定保存的文件名的取得
- /// </summary>
- /// <param name="gridName">DataGridView名称</param>
- /// <returns>文件名</returns>
- private static string GetGridSettingFileName(string gridName)
- {
- string sha1GridName = Encryption.GetSHA1String(gridName);
- string sha1UserCode = Encryption.GetSHA1String(UserCode);
- return string.Format(LocalPath.GridSettingFileName,
- sha1GridName,
- sha1UserCode);
- }
- #endregion
- }
- }
|