/// <summary> /// 获取列表配置信息 /// </summary> /// <param name="strVT_CardNum">单据编号</param> /// <param name="strFilePath">配置文件地址</param> /// <returns></returns> public static ListTemplateConfiguration GetListTemplateConfig(string strVT_CardNum, string strFilePath = "Config\\KHYFM_VoucherTemplate.xml") { ListTemplateConfiguration vgvListConfig = new ListTemplateConfiguration(); DataTable dtColumns = TemplateInitTool.GetListTemplate(); //读取IO文件配置 //Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(strFileName); string strBinFile = System.IO.Directory.GetCurrentDirectory() + "\\"; if (File.Exists(strBinFile + strFilePath)) { FileStream stream = null; try { using (stream = new FileStream(strBinFile + strFilePath, FileMode.Open)) { XmlDocument doc = new XmlDocument(); doc.Load(stream); XmlNode node = doc.SelectSingleNode(String.Format("xml/voucher[@VT_CardNum='{0}']", strVT_CardNum)); if (node != null) { XmlElement element = node as XmlElement; vgvListConfig.VT_CardNum = strVT_CardNum; vgvListConfig.VT_Name = element.GetAttribute("VT_Name"); XmlNodeList nodelist = node.SelectNodes(string.Format("list//item")); for (int i = 0; i < nodelist.Count; i++) { XmlElement elementItem = nodelist[i] as XmlElement; DataRow dNewRow = dtColumns.NewRow(); dNewRow["cFieldName"] = elementItem.GetAttribute("cFieldName"); dNewRow["cCaption"] = elementItem.GetAttribute("cCaption"); dNewRow["iWidth"] = elementItem.GetAttribute("iWidth") == "" ? 0 : XmlConvert.ToInt32(elementItem.GetAttribute("iWidth")); dNewRow["bVisible"] = elementItem.GetAttribute("bVisible") == "" ? false : XmlConvert.ToBoolean(elementItem.GetAttribute("bVisible")); dNewRow["bSum"] = elementItem.GetAttribute("bSum") == "" ? false : XmlConvert.ToBoolean(elementItem.GetAttribute("bSum")); dNewRow["iOrder"] = elementItem.GetAttribute("iOrder") == "" ? 0 : XmlConvert.ToInt32(elementItem.GetAttribute("iOrder"));; dNewRow["cFormat"] = elementItem.GetAttribute("cFormat"); dNewRow["iAlignment"] = elementItem.GetAttribute("iAlignment") == "" ? 0 : XmlConvert.ToInt32(elementItem.GetAttribute("iAlignment"));; dtColumns.Rows.Add(dNewRow); } vgvListConfig.dtColumns = dtColumns; } else { throw new Exception("未查找到相关配置信息,请联系管理员"); } } } catch (Exception ex) { throw ex; } finally { if (stream != null) { stream.Dispose(); } } } else { throw new Exception("本地配置文件已经不存在,请联系管理员"); } return(vgvListConfig); }
/// <summary> /// 设置列表显示 /// </summary> /// <param name="templateCofig">列表配置</param> /// <param name="dgv">GridView控件</param> /// <param name="strLocalCacheLayoutFilePath">本地缓存文件</param> /// <param name="bolClearColumns">是否清空</param> /// <returns></returns> public static void SetListGridView(ListTemplateConfiguration templateCofig, GridView dgv, string strLocalCacheLayoutFilePath, bool bolClearColumns = true) { DataTable dtColums = templateCofig.dtColumns; dgv.OptionsSelection.MultiSelect = true; dgv.OptionsSelection.MultiSelectMode = GridMultiSelectMode.CellSelect; dgv.SelectionChanged += templateCofig.GridView_SelectionChanged; dgv.OptionsBehavior.ReadOnly = true; dgv.OptionsView.ColumnAutoWidth = false; if (dtColums != null) { DataView dataView = dtColums.DefaultView; dataView.Sort = "iOrder asc"; //处理排序问题 DataTable dt = dataView.ToTable(); //dgv.AutoGenerateColumns = false; //dgv.AllowUserToAddRows = false; //dgv.AllowUserToDeleteRows = false; //dgv.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; if (bolClearColumns) { dgv.Columns.Clear(); } if (templateCofig.bSelect) //设置多选 { templateCofig.gcmMoreCheck = new NY.Utility.GridCheckBoxMarks(dgv); } foreach (DataRow dr in dt.Rows) { GridColumn dgvTxtCol = new GridColumn(); dgvTxtCol.Name = string.Format("txt{0}", dr["cFieldName"].ToString()); dgvTxtCol.FieldName = dr["cFieldName"].ToString(); dgvTxtCol.Caption = dr["cCaption"].ToString(); dgvTxtCol.Width = Convert.ToInt32(dr["iWidth"]); dgvTxtCol.Visible = Convert.ToBoolean(dr["bVisible"]) == true ? false : true; if (Convert.ToBoolean(dr["bSum"])) { dgvTxtCol.SummaryItem.FieldName = dr["cFieldName"].ToString(); dgvTxtCol.SummaryItem.SummaryType = SummaryItemType.Sum; if (string.IsNullOrEmpty(dr["cFormat"].ToString()) == false) { dgvTxtCol.SummaryItem.DisplayFormat = "{0:" + dr["cFormat"].ToString() + "}"; } } if (Convert.ToInt32(dr["iAlignment"]) != 0) { SetAlignment(dgvTxtCol, Convert.ToInt32(dr["iAlignment"])); } if (string.IsNullOrEmpty(dr["cFormat"].ToString()) == false) { SetFormat(dgvTxtCol, dr["cFormat"].ToString()); } dgv.Columns.Add(dgvTxtCol); } } else { throw new Exception("未查到到任何配置信息"); } }