예제 #1
0
파일: Utility.cs 프로젝트: Loong-Lee/VSDT
            /// <summary>
            ///  寻找(以className+窗体Form的名称+"_"+EFDevLayoutControl的名称)的配置文件.加载布局..根据参数(配置模式)选择对应目录下的配置文件.
            /// </summary>
            /// <param name="ConfigModule">配置模式,默认时先查找用户配置,再查找项目级配置..</param>
            /// <param name="className">类名称[当窗体名称_+EFDevLayoutControl名称不能满足唯一xml文件名需求时,在开头添加类名称</param>
            /// <param name="moduleName">一级模块名称.如DE,FI等</param>
            public void LoadLayout(DevExpress.XtraLayout.LayoutControl layoutControl, ConfigEnum ConfigModule, string className, string moduleName)
            {
                //模块名称
                string formName = layoutControl.FindForm().Name;

                if (moduleName.Trim().Equals(""))
                {
                    moduleName = formName.Length > 6 ? formName.Substring(4, 2) : formName;
                }
                if (formName.StartsWith("Form"))
                {
                    formName = formName.Substring(4);
                }
                //XML路径
                string fileDirectory = System.Reflection.Assembly.GetExecutingAssembly().Location;

                fileDirectory = Path.GetDirectoryName(fileDirectory);
                string fileDirectoryUser = fileDirectory + "\\..\\UserConfig\\" + "EF.EF_Args.formUserId" + "\\" + moduleName + "\\";
                string fileDirectoryEP   = fileDirectory + "\\..\\" + moduleName + "\\";

                //先查看用户级配置,目录不存在读取项目配置
                //  ---2011-10-27 把 XML配置名称 改为 "窗体名称_"+EFDevLayoutControl的名称+_className.XML
                string fileName = formName + "_" + layoutControl.Name + (className.Trim().Equals("") ? "" : ("_" + className.Trim())) + ".xml";
                //string fileName = className.Trim() + formName + "_" + layoutControl.Name + ".xml";
                string filePath = "";

                if (ConfigModule == ConfigEnum.EPConfig)
                {
                    filePath = fileDirectoryEP + fileName;
                }
                else if (ConfigModule == ConfigEnum.UserConfig)
                {
                    filePath = fileDirectoryUser + fileName;
                }
                else //默认配置.先读取用户级配置,不存在则读取项目级配置
                {
                    filePath = fileDirectoryUser + fileName;
                    if (!IsFileExit(ref filePath))  //不存在,则读取项目级的
                    {
                        filePath = fileDirectoryEP + fileName;
                    }
                }

                if (IsFileExit(ref filePath))      // (System.IO.File.Exists(filePath))  //存在,则读取
                {
                    //string EPConfigXML = fileDirectoryEP + fileName; //项目级配置xml
                    //项目级配置xml 如果存在就麻烦了---不存在,则直接读取配置文件
                    //---先加载项目级配置,把不可见的项,设置为不可配置
                    //---如果是用户配置则 "再加载用户级配置",否则退出
                    //---再把不可配置项设为不可见
                    //if (System.IO.File.Exists(EPConfigXML))
                    //{
                    //    layoutControl.RestoreLayoutFromXml(EPConfigXML);
                    //    if (view is DevExpress.XtraGrid.Views.Grid.GridView)
                    //    {
                    //        foreach (DevExpress.XtraGrid.Columns.GridColumn gridCol in ((DevExpress.XtraGrid.Views.Grid.GridView)view).Columns)
                    //        {
                    //            gridCol.OptionsColumn.ShowInCustomizationForm = gridCol.Visible;
                    //        }
                    //    }
                    //    //然后加载用户级配置
                    //    if (filePath.Equals(EPConfigXML))
                    //    {
                    //        break;
                    //    }
                    //    view.RestoreLayoutFromXml(filePath);
                    //    //然后再次检查,把项目级不可见的,也设为不可见
                    //    if (view is DevExpress.XtraGrid.Views.Grid.GridView)
                    //    {
                    //        foreach (DevExpress.XtraGrid.Columns.GridColumn gridCol in ((DevExpress.XtraGrid.Views.Grid.GridView)view).Columns)
                    //        {
                    //            gridCol.Visible = gridCol.OptionsColumn.ShowInCustomizationForm;
                    //        }
                    //    }
                    //}
                    //else
                    //{
                    //    view.RestoreLayoutFromXml(filePath);
                    //}
                    layoutControl.RestoreLayoutFromXml(filePath);
                    // return true;
                }
                else
                {
                    // return false;
                }
            }
예제 #2
0
파일: Utility.cs 프로젝트: Loong-Lee/VSDT
            /******************************8
             * /// <summary>
             * /// 以窗体Form的名称+"_"+EFDevLayoutControl的名称,以及默认配置模式[暂定用户级]保存grid配置
             * /// </summary>
             * public void SaveLayout(DevExpress.XtraLayout.LayoutControl layoutControl)
             * {
             *  SaveLayout(layoutControl, ConfigEnum.Default);
             * }
             * /// <summary>
             * /// 以窗体Form的名称+"_"+gridView的名称,以及制定的配置模式保存grid配置
             * /// </summary>
             * /// <param name="ConfigModule">用户级和项目级</param>
             * public void SaveLayout(DevExpress.XtraLayout.LayoutControl layoutControl, ConfigEnum ConfigModule)
             * {
             *  this.SaveLayout(layoutControl, ConfigModule, string.Empty, string.Empty);
             * }
             ******************************/
            /// <summary>
            ///  文件目录不存在则创建,XML配置名称为: className +"窗体名称_"+EFDevLayoutControl的名称.XML.
            ///  ---2011-10-27 把 XML配置名称 改为 "窗体名称_"+EFDevLayoutControl的名称+_className.XML
            /// </summary>
            /// <param name="ConfigModule">配置默认,用户级和项目级</param>
            /// <param name="className">类名,当画面是配置画面时,为了区分不同窗体而添加类名 </param>
            /// <param name="moduleName">一级模块名称(如DE,为空时取窗体名称的第4至6位)</param>
            public void SaveLayout(DevExpress.XtraLayout.LayoutControl layoutControl, ConfigEnum ConfigModule, string className, string moduleName)
            {
                //模块名称
                string formName = layoutControl.FindForm().Name;

                if (moduleName.Trim().Equals(""))
                {
                    moduleName = formName.Length > 6 ? formName.Substring(4, 2) : formName;
                }
                if (formName.StartsWith("Form"))
                {
                    formName = formName.Substring(4);
                }
                //XML路径
                string fileDirectory = System.Reflection.Assembly.GetExecutingAssembly().Location;

                fileDirectory = Path.GetDirectoryName(fileDirectory);
                if (ConfigModule == ConfigEnum.UserConfig)
                {
                    //位于UserConfig下,用户名文件夹下,一级模块下
                    fileDirectory = fileDirectory + "\\..\\UserConfig\\" + "EF.EF_Args.formUserId" + "\\" + moduleName + "\\";
                }
                else if (ConfigModule == ConfigEnum.EPConfig)
                {
                    //位于一级模块下
                    fileDirectory = fileDirectory + "\\..\\" + moduleName + "\\";
                }
                else
                {
                    //位于UserConfig下,用户名文件夹下,一级模块下 (默认用户配置)
                    fileDirectory = fileDirectory + "\\..\\UserConfig\\" + "EF.EF_Args.formUserId" + "\\" + moduleName + "\\";
                }
                string fileDirectory2 = "";

                try
                {
                    fileDirectory2 = fileDirectory + "EC.UserConfig.Instance.Culture" + "\\";
                }
                catch { }
                //文件目录不存在则创建[逻辑上,当是项目配置时,模块目录一定存在,否则报错]
                if (!System.IO.Directory.Exists(fileDirectory))
                {
                    System.IO.Directory.CreateDirectory(fileDirectory);
                }
                if (fileDirectory2 != "" && !System.IO.Directory.Exists(fileDirectory2))
                {
                    System.IO.Directory.CreateDirectory(fileDirectory2);
                }
                //保存文件名
                //string fileName = className.Trim() + formName + "_" + layoutControl.Name + ".xml";
                //  ---2011-10-27 把 XML配置名称 改为 "窗体名称_"+EFDevLayoutControl的名称+_className.XML
                string fileName      = formName + "_" + layoutControl.Name + (className.Trim().Equals("")?"":("_" + className.Trim())) + ".xml";
                string filePath      = fileDirectory + fileName;
                string filePath2     = fileDirectory2 + fileName;
                bool   isFirstConfig = false;

                if (System.IO.File.Exists(filePath))
                {
                    if (System.IO.File.Exists(filePath2))
                    {
                        //文件已存在,则提示,是否覆盖
                        if (EF.EFMessageBox.Show("配置文件已存在,是否替换?", "提示", MessageBoxButtons.YesNo) != DialogResult.Yes)
                        {
                            return;
                        }
                    }
                }
                else
                {
                    isFirstConfig = false;
                }
                if (isFirstConfig)
                {
                    //即使是第一次配置也不保存到默认目录下.只放到对应语言目录下
                    // layoutControl.SaveLayoutToXml(filePath);
                }
                layoutControl.SaveLayoutToXml(filePath2);
            }