private void gridView1_CellValueChanging(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e) { if (string.IsNullOrEmpty((gridView1.GetFocusedRow() as ErrornoInfo).Gid) && (gridView1.FocusedRowHandle + 1 == gridView1.RowCount)) { btnAdd_Click(null, null); } tmperrornoInfo = gridView1.GetRow(e.RowHandle) as ErrornoInfo; }
/// <summary> /// 绑定数据 /// </summary> private void BindData() { XmlNodeList xmlNodeLst = xmlhelper.Read("datatype"); List <ErrornoInfo> errornoInfoList = new List <ErrornoInfo>(); foreach (XmlNode xn1 in xmlNodeLst) { ErrornoInfo errornoInfo = new ErrornoInfo(); // 将节点转换为元素,便于得到节点的属性值 XmlElement xe = (XmlElement)xn1; // 得到Type和ISBN两个属性的属性值 errornoInfo.Gid = xe.GetAttribute("gid").ToString(); // 得到ErrornoInfo节点的所有子节点 XmlNodeList xnl0 = xe.ChildNodes; errornoInfo.Name = xnl0.Item(0).InnerText; errornoInfo.ChineseName = xnl0.Item(1).InnerText; errornoInfo.LogLevel = Convert.ToInt16(xnl0.Item(2).InnerText); errornoInfo.Remark = xnl0.Item(3).InnerText; errornoInfo.lstInfo = new Dictionary <string, DevExpress.XtraEditors.DXErrorProvider.ErrorInfo>(); errornoInfoList.Add(errornoInfo); } // 添加一行空行 errornoInfoList.Add(new ErrornoInfo()); gridControl1.DataSource = errornoInfoList; #region 绑定错误级别 数据源 // 1 - LOG_LEVEL_EMERG // 2 - LOG_LEVEL_ALERT // 3 - LOG_LEVEL_CRIT // 4 - LOG_LEVEL_ERR // 5 - LOG_LEVEL_WARN // 6 - LOG_LEVEL_NOTICE // 7 - LOG_LEVEL_INFO // 8 - LOG_LEVEL_DEBUG // 9 - LOG_LEVEL_SQL List <CListItem> errTypeInfoList = new List <CListItem>(); errTypeInfoList.Add(new CListItem("1", "LOG_LEVEL_EMERG")); errTypeInfoList.Add(new CListItem("2", "LOG_LEVEL_ALERT")); errTypeInfoList.Add(new CListItem("3", "LOG_LEVEL_CRIT")); errTypeInfoList.Add(new CListItem("4", "LOG_LEVEL_ERR")); errTypeInfoList.Add(new CListItem("5", "LOG_LEVEL_WARN")); errTypeInfoList.Add(new CListItem("6", "LOG_LEVEL_NOTICE")); errTypeInfoList.Add(new CListItem("7", "LOG_LEVEL_INFO")); errTypeInfoList.Add(new CListItem("8", "LOG_LEVEL_DEBUG")); errTypeInfoList.Add(new CListItem("9", "LOG_LEVEL_SQL")); repositoryItemLookUpEditStdType.DataSource = errTypeInfoList; #endregion gridView1.Columns["Gid"].Visible = false; gridView1.Columns["lstInfo"].Visible = false; gridView1.Columns["LogLevel"].ColumnEdit = repositoryItemLookUpEditStdType; }
private Dictionary <String, ErrornoInfo> InitErrorInfo() { Dictionary <String, ErrornoInfo> dicErrInfo = Cache.Instance["DicErrInfo"] as Dictionary <String, ErrornoInfo>; if (dicErrInfo == null) { string filePath = System.AppDomain.CurrentDomain.BaseDirectory + "\\" + @"Data\error.xml"; // 如果文件不存在,则返回空 if (!FileUtil.FileIsExist(filePath)) { return(null); } // 读取Icon文件 XmlHelper xmlHelper = new XmlHelper(filePath); XmlNodeList nodeLst = xmlHelper.Read("errors"); dicErrInfo = new Dictionary <String, ErrornoInfo>(); dicErrInfo.Clear(); for (var i = 0; i < nodeLst.Count; i++) { ErrornoInfo errornoInfo = new ErrornoInfo(); var node = nodeLst[i]; // <error id="E100001" name="ERR_TEST" chinesename="" loglevel="" remark="" /> if (node.Attributes["id"] != null) { errornoInfo.Gid = node.Attributes["id"].Value; } if (node.Attributes["name"] != null) { errornoInfo.Name = node.Attributes["name"].Value; } if (node.Attributes["chinesename"] != null) { errornoInfo.ChineseName = "[" + node.Attributes["chinesename"].Value + "]"; } if (node.Attributes["loglevel"] != null) { errornoInfo.LogLevel = Convert.ToInt16(node.Attributes["loglevel"].Value); } if (node.Attributes["remark"] != null) { errornoInfo.Remark = node.Attributes["remark"].Value; } dicErrInfo.Add(errornoInfo.Name, errornoInfo); } Cache.Instance["DicErrInfo"] = dicErrInfo; } return(dicErrInfo); }
/// <summary> /// 下移 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnMoveDown_Click(object sender, EventArgs e) { if (gridView1.FocusedRowHandle == (gridView1.RowCount - 2)) { return; } ErrornoInfo cuerrornoInfo = gridView1.GetFocusedRow() as ErrornoInfo; ErrornoInfo nexterrornoInfo = gridView1.GetRow(gridView1.FocusedRowHandle + 1) as ErrornoInfo; // 深拷贝 ErrornoInfo tmperrornoInfo = new ErrornoInfo(); tmperrornoInfo.Gid = cuerrornoInfo.Gid; tmperrornoInfo.Name = cuerrornoInfo.Name; tmperrornoInfo.ChineseName = cuerrornoInfo.ChineseName; tmperrornoInfo.LogLevel = cuerrornoInfo.LogLevel; tmperrornoInfo.Remark = cuerrornoInfo.Remark; tmperrornoInfo.lstInfo = cuerrornoInfo.lstInfo; // 更新内容 cuerrornoInfo.Gid = nexterrornoInfo.Gid; cuerrornoInfo.Name = nexterrornoInfo.Name; cuerrornoInfo.ChineseName = nexterrornoInfo.ChineseName; cuerrornoInfo.LogLevel = nexterrornoInfo.LogLevel; cuerrornoInfo.Remark = nexterrornoInfo.Remark; cuerrornoInfo.lstInfo = nexterrornoInfo.lstInfo; nexterrornoInfo.Gid = tmperrornoInfo.Gid; nexterrornoInfo.Name = tmperrornoInfo.Name; nexterrornoInfo.ChineseName = tmperrornoInfo.ChineseName; nexterrornoInfo.LogLevel = tmperrornoInfo.LogLevel; nexterrornoInfo.Remark = tmperrornoInfo.Remark; nexterrornoInfo.lstInfo = tmperrornoInfo.lstInfo; // 更细XML内容 string cuXMLStr = xmlhelper.ReadInnerXML("datatype/item[@gid=\"" + cuerrornoInfo.Gid + "\"]"); string preXMLStr = xmlhelper.ReadInnerXML("datatype/item[@gid=\"" + nexterrornoInfo.Gid + "\"]"); xmlhelper.Replace("datatype/item[@gid=\"" + cuerrornoInfo.Gid + "\"]", preXMLStr); xmlhelper.Replace("datatype/item[@gid=\"" + nexterrornoInfo.Gid + "\"]", cuXMLStr); // 更新 Gid var cuattribute = xmlhelper.Read("datatype/item[@gid=\"" + cuerrornoInfo.Gid + "\"]").Item(0).ParentNode.Attributes["gid"]; var nextattribute = xmlhelper.Read("datatype/item[@gid=\"" + nexterrornoInfo.Gid + "\"]").Item(0).ParentNode.Attributes["gid"]; cuattribute.Value = nexterrornoInfo.Gid; nextattribute.Value = cuerrornoInfo.Gid; xmlhelper.Save(false); gridView1.RefreshData(); gridView1.FocusedRowHandle = gridView1.FocusedRowHandle + 1; }
/// <summary> /// 插入 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnInsert_Click(object sender, EventArgs e) { XmlNodeList xmlNodeLst = xmlhelper.Read("datatype/item[@gid=\"" + (gridView1.GetFocusedRow() as ErrornoInfo).Gid + "\"]"); var errornoInfo = new ErrornoInfo(); errornoInfo.Gid = System.Guid.NewGuid().ToString(); errornoInfo.lstInfo = new Dictionary <string, DevExpress.XtraEditors.DXErrorProvider.ErrorInfo>(); xmlhelper.InsertElement("item", "gid", errornoInfo.Gid, string.Format(xmlModel, string.Empty, string.Empty, string.Empty, string.Empty), xmlNodeLst.Item(0).ParentNode); xmlhelper.Save(false); (gridView1.DataSource as List <ErrornoInfo>).Insert(gridView1.FocusedRowHandle, errornoInfo); gridView1.RefreshData(); }
/// <summary> /// 新增 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnAdd_Click(object sender, EventArgs e) { var errornoInfo = new ErrornoInfo(); errornoInfo.GUID = System.Guid.NewGuid().ToString(); errornoInfo.lstInfo = new Dictionary <string, DevExpress.XtraEditors.DXErrorProvider.ErrorInfo>(); xmlhelper.InsertElement("datatype", "item", "guid", errornoInfo.GUID, string.Format(xmlModel, string.Empty, string.Empty, string.Empty, string.Empty)); xmlhelper.Save(false); (gridView1.DataSource as List <ErrornoInfo>).Insert(gridView1.RowCount - 1, errornoInfo); gridView1.RefreshData(); }
/// <summary> /// 上移 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnMoveUp_Click(object sender, EventArgs e) { if (gridView1.FocusedRowHandle == 0) { return; } ErrornoInfo cuerrornoInfo = gridView1.GetFocusedRow() as ErrornoInfo; ErrornoInfo preerrornoInfo = gridView1.GetRow(gridView1.FocusedRowHandle - 1) as ErrornoInfo; // 深拷贝 ErrornoInfo tmperrornoInfo = new ErrornoInfo(); tmperrornoInfo.GUID = cuerrornoInfo.GUID; tmperrornoInfo.Name = cuerrornoInfo.Name; tmperrornoInfo.ChineseName = cuerrornoInfo.ChineseName; tmperrornoInfo.LogLevel = cuerrornoInfo.LogLevel; tmperrornoInfo.Remark = cuerrornoInfo.Remark; tmperrornoInfo.lstInfo = cuerrornoInfo.lstInfo; // 更新内容 cuerrornoInfo.GUID = preerrornoInfo.GUID; cuerrornoInfo.Name = preerrornoInfo.Name; cuerrornoInfo.ChineseName = preerrornoInfo.ChineseName; cuerrornoInfo.LogLevel = preerrornoInfo.LogLevel; cuerrornoInfo.Remark = preerrornoInfo.Remark; cuerrornoInfo.lstInfo = preerrornoInfo.lstInfo; preerrornoInfo.GUID = tmperrornoInfo.GUID; preerrornoInfo.Name = tmperrornoInfo.Name; preerrornoInfo.ChineseName = tmperrornoInfo.ChineseName; preerrornoInfo.LogLevel = tmperrornoInfo.LogLevel; preerrornoInfo.Remark = tmperrornoInfo.Remark; preerrornoInfo.lstInfo = tmperrornoInfo.lstInfo; // 更细XML内容 string cuXMLStr = xmlhelper.ReadInnerXML("datatype/item[@guid=\"" + cuerrornoInfo.GUID + "\"]"); string preXMLStr = xmlhelper.ReadInnerXML("datatype/item[@guid=\"" + preerrornoInfo.GUID + "\"]"); xmlhelper.Replace("datatype/item[@guid=\"" + cuerrornoInfo.GUID + "\"]", preXMLStr); xmlhelper.Replace("datatype/item[@guid=\"" + preerrornoInfo.GUID + "\"]", cuXMLStr); // 更新GUID var cuattribute = xmlhelper.Read("datatype/item[@guid=\"" + cuerrornoInfo.GUID + "\"]").Item(0).ParentNode.Attributes["guid"]; var preattribute = xmlhelper.Read("datatype/item[@guid=\"" + preerrornoInfo.GUID + "\"]").Item(0).ParentNode.Attributes["guid"]; cuattribute.Value = preerrornoInfo.GUID; preattribute.Value = cuerrornoInfo.GUID; xmlhelper.Save(false); gridView1.RefreshData(); gridView1.FocusedRowHandle = gridView1.FocusedRowHandle - 1; }
/// <summary> /// 导入 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnImport_Click(object sender, EventArgs e) { string importFile = FileDialogHelper.OpenExcel(false); if (!string.IsNullOrEmpty(importFile)) { // 判断文件是否被占用 if (FileUtil.FileIsUsing(importFile)) { MessageDxUtil.ShowWarning(string.Format("文件[{0}]被占用,请先关闭文件后再重试!", importFile)); return; } DataTable dt = MyXlsHelper.Import(importFile, "标准错误号", 2, 1); // 如果没有结果集就不在继续 if (dt == null) { return; } Int32 addRows = 0; for (Int32 i = 0; i < dt.Rows.Count; i++) { // 判断是否存在不存在则添加 if (!lstName.Contains(dt.Rows[i][0].ToString())) { var errornoInfo = new ErrornoInfo(); errornoInfo.Gid = System.Guid.NewGuid().ToString(); errornoInfo.Name = dt.Rows[i][0].ToString(); errornoInfo.ChineseName = dt.Rows[i][1].ToString(); errornoInfo.LogLevel = Convert.ToInt16(ErrInfoToInt(dt.Rows[i][2].ToString())); errornoInfo.Remark = dt.Rows[i][3].ToString(); xmlhelper.InsertElement("datatype", "item", "gid", errornoInfo.Gid, string.Format(xmlModel, dt.Rows[i][0].ToString(), dt.Rows[i][1].ToString(), dt.Rows[i][2].ToString(), dt.Rows[i][3].ToString())); (gridView1.DataSource as List <ErrornoInfo>).Insert((gridView1.DataSource as List <ErrornoInfo>).Count - 1, errornoInfo); addRows++; lstName.Add(dt.Rows[i][0].ToString()); } } xmlhelper.Save(false); gridView1.RefreshData(); } }
/// <summary> /// 新增 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnAdd_Click(object sender, EventArgs e) { // 假如在查询去掉查询在新增 if (!string.IsNullOrEmpty(gridView1.ActiveFilterString)) { gridView1.ActiveFilterString = ""; } var errornoInfo = new ErrornoInfo(); errornoInfo.Gid = System.Guid.NewGuid().ToString(); errornoInfo.lstInfo = new Dictionary <string, DevExpress.XtraEditors.DXErrorProvider.ErrorInfo>(); xmlhelper.InsertElement("datatype", "item", "gid", errornoInfo.Gid, string.Format(xmlModel, string.Empty, string.Empty, string.Empty, string.Empty)); xmlhelper.Save(false); (gridView1.DataSource as List <ErrornoInfo>).Insert((gridView1.DataSource as List <ErrornoInfo>).Count - 1, errornoInfo); gridView1.RefreshData(); }
private void gridView1_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e) { // xmlhelper.Read("bookstore/book[@ISBN=\"7-111-19149-6\"]") Attributes 的属性 // xmlhelper.Read("bookstore/book[title=\"计算机硬件技术基础\"]") 内部节点 XmlNodeList xmlNodeLst = xmlhelper.Read("datatype/item[@gid=\"" + tmperrornoInfo.Gid + "\"]"); Int32 idx = -1; switch (e.Column.ToString()) { case "错误号": idx = 0; break; case "错误提示信息": idx = 1; break; case "错误级别": idx = 2; break; case "说明": idx = 3; break; } if (idx == -1) { return; } xmlNodeLst.Item(idx).InnerText = e.Value.ToString(); xmlhelper.Save(false); tmperrornoInfo = null; }
/// <summary> /// 复制错误信息到剪贴板 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void tsmirealoadcache_Click(object sender, EventArgs e) { StringBuilder sb = new StringBuilder(); /* * result.ErrorCode = 000000; // ErrorCode 表示登陆成功 * result.LogLevel = 1; * result.ErrorMessage = "操作成功"; * result.Data1 = "普通管理员"; */ if (gridView1.RowCount > 0 && gridView1.FocusedRowHandle >= 0) { ErrornoInfo errornoInfo = gridView1.GetFocusedRow() as ErrornoInfo; if (null != errornoInfo) { sb.Append("// 系统自动生成错误信息\r\n"); sb.Append(string.Format("result.ErrorCode = {0};\r\n", errornoInfo.Name)); sb.Append(string.Format("result.LogLevel = {0};\r\n", errornoInfo.LogLevel)); sb.Append(string.Format("result.ErrorMessage = \"{0}[{1}]\";\r\n", errornoInfo.Remark, errornoInfo.ChineseName)); } } Clipboard.SetDataObject(sb.ToString()); }
/// <summary> /// 导出Xml数据 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnExportXml_Click(object sender, EventArgs e) { #region 根据项目属性获取数据类型 XmlHelper xmlprojectthelper = new XmlHelper(@"XML\project.xml"); XmlNodeList xmlprejectNodeLst = xmlprojectthelper.Read("datatype"); if (xmlprejectNodeLst.Count == 0) { return; } XmlNode xn1project = xmlprejectNodeLst[0]; // 将节点转换为元素,便于得到节点的属性值 XmlElement xeproject = (XmlElement)xn1project; // 得到DataTypeInfo节点的所有子节点 XmlNodeList xnl0project = xeproject.ChildNodes; string generalPath = xnl0project.Item(9).InnerText; #endregion //创建XmlDocument对象 XmlDocument xmlDoc = new XmlDocument(); XmlDeclaration xmlSM = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null); //追加xmldecl位置 xmlDoc.AppendChild(xmlSM); //添加一个名为Gen的根节点 XmlElement xml = xmlDoc.CreateElement("", "errors", ""); //追加Gen的根节点位置 xmlDoc.AppendChild(xml); //添加另一个节点,与Gen所匹配,查找<Gen> XmlNode gen = xmlDoc.SelectSingleNode("errors"); XmlNodeList xmlNodeLst = xmlhelper.Read("datatype"); List <ErrornoInfo> errornoInfoList = new List <ErrornoInfo>(); Int32 IndexNum = 1; foreach (XmlNode xn1 in xmlNodeLst) { ErrornoInfo errornoInfo = new ErrornoInfo(); // 将节点转换为元素,便于得到节点的属性值 XmlElement xe = (XmlElement)xn1; // 得到Type和ISBN两个属性的属性值 errornoInfo.Gid = xe.GetAttribute("gid").ToString(); // 得到ErrornoInfo节点的所有子节点 XmlNodeList xnl0 = xe.ChildNodes; errornoInfo.Name = xnl0.Item(0).InnerText; errornoInfo.ChineseName = xnl0.Item(1).InnerText; errornoInfo.LogLevel = string.IsNullOrEmpty(xnl0.Item(2).InnerText) ? (short)-1 : Convert.ToInt16(xnl0.Item(2).InnerText); errornoInfo.Remark = xnl0.Item(3).InnerText; errornoInfo.lstInfo = new Dictionary <string, DevExpress.XtraEditors.DXErrorProvider.ErrorInfo>(); // id="E000001" name="ERR_TEST" chinesename="" loglevel="" remark="" XmlElement zi = xmlDoc.CreateElement("error"); //为<Zi>节点的属性 zi.SetAttribute("id", IndexNum.ToString()); zi.SetAttribute("name", string.Format("E{0}", errornoInfo.Name)); zi.SetAttribute("chinesename", errornoInfo.ChineseName); zi.SetAttribute("loglevel", ((short)errornoInfo.LogLevel).ToString()); zi.SetAttribute("remark", errornoInfo.Remark); gen.AppendChild(zi);//添加到<Gen>节点中 IndexNum++; } //保存好创建的XML文档 xmlDoc.Save(string.Format("{0}/error.xml", generalPath)); MessageDxUtil.ShowTips("导出xml成功"); Process p = new Process(); p.StartInfo.FileName = "explorer.exe"; p.StartInfo.Arguments = @" /select, " + generalPath; p.Start(); }