Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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("未查到到任何配置信息");
            }
        }