Exemplo n.º 1
0
        /// <summary>
        /// 根据传入的Wordbook关键信息字符串生成字典实例
        /// </summary>
        /// <param name="keyInfo">字典的关键信息组成的字符串</param>
        /// <returns>字典类实例</returns>
        public static BaseWordbook GetWordbookByString(string keyInfo)
        {
            if (String.IsNullOrEmpty(keyInfo))
            {
                return(null);
            }
            //throw new ArgumentNullException("字典类名为空");

            // 解析出字典类名字
            int p = keyInfo.IndexOf(SeparatorSign.OtherSeparator);

            if (p < 0)
            {
                return(null);
            }
            //throw new ArgumentException("未定义字典类名");
            keyInfo = keyInfo.Substring(p + 3, keyInfo.Length - p - 3);
            p       = keyInfo.IndexOf(SeparatorSign.OtherSeparator);
            if (p < 0)
            {
                return(null);
            }

            BaseWordbook wordbook = WordbookStaticHandle.GetWordbook(keyInfo.Substring(0, p));

            if (wordbook != null)
            {
                wordbook.ParameterValueComb = keyInfo.Substring(p + 3, keyInfo.Length - p - 3);
            }
            return(wordbook);
        }
Exemplo n.º 2
0
 private void wordbookTree_TreeDoubleClick(object sender, EventArgs e)
 {
     if (wordbookTree.CurrentBookInfo.TypeName != null)
     {
         _wordbook = WordbookStaticHandle.GetWordbook(wordbookTree.CurrentBookInfo.TypeName);
         // 用选中的字典初始化界面
         InitializeEditBox();
     }
 }
Exemplo n.º 3
0
        /// <summary>
        /// 在DrectSoftWordbooks.XML中根据指定的字典名搜索定义数据,创建字典实例
        /// XML文件的数据要符合Wordbook.XSD的定义。下面的处理流程是按XSD的定义进行的。
        /// </summary>
        /// <param name="name">字典名称</param>
        protected BaseWordbook(string name)
        {
            Schema.Wordbook source = WordbookStaticHandle.GetSourceWordbookByName(name);

            if (String.IsNullOrEmpty(source.WordbookName))
            {
                throw new ArgumentException("没有正确初始化字典,请检查基础数据");
            }

            // 开始处理字典的属性
            _wordbookName      = source.WordbookName;
            _caption           = source.Caption;
            _querySentence     = PersistentObjectFactory.GetQuerySentenceByName(source.QuerySentence);
            _codeField         = source.CodeField;
            _nameField         = source.NameField;
            _queryCodeField    = source.QueryCodeField;
            _codeFieldIsString = source.CodeFieldIsString;

            // 过滤参数
            _parameters          = new FilterParameterCollection();
            _showStyles          = new Collection <GridColumnStyleCollection>();
            _defaultFilterFields = new Collection <string>();

            if (source.FilterFieldCollection != null)
            {
                foreach (string field in source.FilterFieldCollection)
                {
                    _defaultFilterFields.Add(field);
                }
            }

            if (source.ParameterCollection != null)
            {
                _parameters.AddRange(source.ParameterCollection);
            }

            GridColumnStyleCollection columnStyle;

            foreach (GridColumnStyle[] style in source.ViewStyleCollection)
            {
                columnStyle = new GridColumnStyleCollection();
                columnStyle.AddRange(style);
                _showStyles.Add(columnStyle);
            }

            // 下列属性使用默认值
            SelectedStyleIndex = 0;
            ExtraCondition     = "";

            _currentMatchFields = new Collection <string>();
            foreach (string field in _defaultFilterFields)
            {
                _currentMatchFields.Add(field);
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// 在给定 Object 的一组属性值的情况下重新创建该对象
        /// </summary>
        /// <param name="context"></param>
        /// <param name="propertyValues"></param>
        /// <returns></returns>
        public override object CreateInstance(ITypeDescriptorContext context, IDictionary propertyValues)
        {
            if (propertyValues == null)
            {
                throw new ArgumentNullException(MessageStringManager.GetString("NullParameter"));
            }
            BaseWordbook wordbook = WordbookStaticHandle.GetWordbook((string)propertyValues["WordbookName"]);

            wordbook.ExtraCondition     = propertyValues["ExtraCondition"].ToString();
            wordbook.SelectedStyleIndex = (int)propertyValues["SelectedStyleIndex"];
            wordbook.MatchFieldComb     = propertyValues["MatchFieldComb"].ToString();
            wordbook.ParameterValueComb = propertyValues["ParameterValue"].ToString();
            wordbook.CacheTime          = (int)propertyValues["SelectedStyleIndex"];
            return(wordbook);
        }
Exemplo n.º 5
0
        /// <summary>
        /// 将给定值转换为此转换器的类型
        /// </summary>
        /// <param name="context"></param>
        /// <param name="culture"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
        {
            // 从String转成BaseWordbook类
            string bookName = (string)value;

            if (bookName != null)
            {
                // 创建BaseWordbook实例
                try
                {
                    // 利用静态方法得到正确的字典类。无对应名称将返回null
                    return(WordbookStaticHandle.GetWordbook(bookName));
                }
                catch
                {
                    throw;// new ArgumentException("参数不正确");
                }
            }
            return(base.ConvertFrom(context, culture, value));
        }