Пример #1
0
        protected virtual SearchColumnElement CreateSearchColumnElement(SearchColumnElement element, Schema.TableVarColumn column, string titleSeed, string pageType, bool isReadOnly)
        {
            MetaData metaData = null;

            if (column.MetaData != null)
            {
                metaData = DerivationUtility.ExtractTags(column.MetaData.Tags, "Search", pageType);
            }
            PrepareElement(element, metaData, column.MetaData, titleSeed, pageType, isReadOnly);

            element.Title = DerivationUtility.GetTag(metaData, "Caption", pageType, (column.ColumnType == Schema.TableVarColumnType.RowExists ? String.Empty : titleSeed) + DerivationUtility.GetTag(metaData, "Title", pageType, DerivationUtility.GetTag(column.MetaData, "Title", pageType, Schema.Object.Unqualify(column.Name))));
            element.Hint  = DerivationUtility.GetTag(metaData, "Hint", pageType, DerivationUtility.GetTag(column.MetaData, "Hint", pageType, String.Empty));
            element.Width = Convert.ToInt32(DerivationUtility.GetTag(metaData, "Width", pageType, DerivationUtility.GetTag(column.MetaData, "Width", pageType, (20).ToString())));
            element.Properties.AddOrUpdate("Width", element.Width.ToString());
            element.Properties.AddOrUpdate("ColumnName", element.ColumnName);

            return(element);
        }
Пример #2
0
        public override Element Build()
        {
            SearchElement search = new SearchElement(String.Format("{0}Search", _derivationInfo.MainSourceName));

            _rootElement       = search;
            search.ElementType = DerivationUtility.GetTag(_derivationInfo.ElaboratedExpression.MainElaboratedTableVar.TableVar.MetaData, "Search.ElementType", _derivationInfo.PageType, "Search");
            search.Source      = _derivationInfo.MainSourceName;
            CreateSearchElement(search, _derivationInfo.ElaboratedExpression.MainElaboratedTableVar.TableVar, String.Empty, _derivationInfo.PageType, false);

            List <string>       searchColumnNames = new List <string>();
            SearchColumnElement searchColumn;

            foreach (Schema.Order order in _derivationInfo.TableVar.Orders)
            {
                if (Convert.ToBoolean(DerivationUtility.GetTag(order.MetaData, "Visible", _derivationInfo.PageType, "True")))
                {
                    foreach (Schema.OrderColumn orderColumn in order.Columns)
                    {
                        string orderColumnName = Schema.Object.Qualify(orderColumn.Column.Name, DerivationUtility.MainElaboratedTableName);
                        if (!searchColumnNames.Contains(orderColumnName))
                        {
                            try
                            {
                                searchColumnNames.Add(orderColumnName);
                                searchColumn             = new SearchColumnElement(String.Format("{0}SearchColumn{1}", _derivationInfo.MainSourceName, orderColumnName));
                                searchColumn.ColumnName  = orderColumnName;
                                searchColumn.ElementType = DerivationUtility.GetTag(orderColumn.Column.MetaData, "Search.ElementType", _derivationInfo.PageType, "SearchColumn");
                                CreateSearchColumnElement(searchColumn, orderColumn.Column, _derivationInfo.ElaboratedExpression.Columns[orderColumnName].GetTitleSeed(), _derivationInfo.PageType, false);
                                search.Elements.Add(searchColumn);
                            }
                            catch (Exception E)
                            {
                                throw new ServerException(ServerException.Codes.CannotConstructSearchColumn, E, orderColumnName, order.Name);
                            }
                        }
                    }
                }
            }

            foreach (Schema.Key key in _derivationInfo.TableVar.Keys)
            {
                foreach (Schema.TableVarColumn column in key.Columns)
                {
                    string keyColumnName = Schema.Object.Qualify(column.Name, DerivationUtility.MainElaboratedTableName);
                    if (!searchColumnNames.Contains(keyColumnName))
                    {
                        try
                        {
                            searchColumnNames.Add(keyColumnName);
                            searchColumn             = new SearchColumnElement(String.Format("{0}SearchColumn{1}", _derivationInfo.MainSourceName, keyColumnName));
                            searchColumn.ColumnName  = keyColumnName;
                            searchColumn.ElementType = DerivationUtility.GetTag(column.MetaData, "Search.ElementType", _derivationInfo.PageType, "SearchColumn");
                            CreateSearchColumnElement(searchColumn, column, _derivationInfo.ElaboratedExpression.Columns[keyColumnName].GetTitleSeed(), _derivationInfo.PageType, false);
                            search.Elements.Add(searchColumn);
                        }
                        catch (Exception E)
                        {
                            throw new ServerException(ServerException.Codes.CannotConstructSearchColumn, E, keyColumnName, key.Name);
                        }
                    }
                }
            }

            return(_rootElement);
        }