Example #1
0
        public string ToSqlOrder(IFieldInfoIndexer indexer)
        {
            TkDebug.AssertArgumentNull(indexer, "indexer", this);

            var fieldInfo = indexer[NickName];

            if (fieldInfo == null)
            {
                return(null);
            }
            string fieldName = fieldInfo.FieldName;
            bool   isSimple  = true;

            if (fieldInfo is ITk5FieldInfo fieldInfoEx)
            {
                if (!string.IsNullOrEmpty(fieldInfoEx.ListDetail?.SortField))
                {
                    fieldName = fieldInfoEx.ListDetail.SortField;
                    isSimple  = fieldName.IndexOfAny(new char[] { '(', ')' }) == -1;
                }
            }
            if (isSimple)
            {
                return(Order == DbOrder.Asc ? fieldName : fieldName + " DESC");
            }
            else
            {
                Order = DbOrder.Asc;
                return(fieldName);
            }
        }
Example #2
0
 public DataRightEventArgs(TkDbContext context, IUserInfo user,
                           IFieldInfoIndexer fieldIndexer, IPageStyle style, DataRow row)
     : base(context, user, fieldIndexer)
 {
     Style = style;
     Row   = row;
 }
Example #3
0
        protected virtual IParamBuilder CreateAdditionCondition(TkDbContext context, IFieldInfoIndexer indexer)
        {
            TkDebug.AssertArgumentNull(context, "context", this);
            TkDebug.AssertArgumentNull(indexer, "indexer", this);

            ParamBuilderContainer result = new ParamBuilderContainer();

            if (FilterSql != null)
            {
                string sql = Expression.Execute(FilterSql, context, indexer);
                result.Add(sql);
            }
            if (DataRight != null)
            {
                TkDebug.ThrowIfNoGlobalVariable();
                IUserInfo     userInfo = BaseGlobalVariable.Current.UserInfo;
                IParamBuilder builder  = DataRight.GetListSql(new ListDataRightEventArgs(context, userInfo, indexer));
                result.Add(builder);
            }
            if (ActiveData != null)
            {
                IParamBuilder builder = ActiveData.CreateParamBuilder(context, indexer);
                result.Add(builder);
            }
            if (result.IsEmpty)
            {
                return(null);
            }
            return(result);
        }
Example #4
0
        public BaseListSearch CreateObject(params object[] args)
        {
            IFieldInfoIndexer indexer = ObjectUtil.ConfirmQueryObject <IFieldInfoIndexer>(this, args);
            IFieldInfo        current = ObjectUtil.ConfirmQueryObject <IFieldInfo>(this, args);

            var fields = EnumUtil.Convert(current, GetFieldInfoList(indexer));

            return(new MultipleFieldListSearch(fields.ToArray()));
        }
Example #5
0
        public IParamBuilder CreateParamBuilder(TkDbContext context, IFieldInfoIndexer indexer)
        {
            if (FakeDeleteInfo == null)
            {
                return(null);
            }

            return(FakeDeleteInfo.CreateParamBuilder(context, indexer));
        }
Example #6
0
        public IDataRight CreateObject(params object[] args)
        {
            IFieldInfoIndexer indexer = ObjectUtil.ConfirmQueryObject <IFieldInfoIndexer>(this, args);

            IFieldInfo ownerField = indexer[NickName];

            TkDebug.AssertNotNull(ownerField, string.Format(ObjectUtil.SysCulture,
                                                            "没有找到昵称为{0}的字段", NickName), indexer);
            return(CreateDataRight(ownerField).SetErrorText(ErrorMessage));
        }
Example #7
0
 private IEnumerable <IFieldInfo> GetFieldInfoList(IFieldInfoIndexer indexer)
 {
     foreach (var nickName in NickNameList)
     {
         IFieldInfo field = indexer[nickName];
         TkDebug.AssertNotNull(field, string.Format(ObjectUtil.SysCulture,
                                                    "{0}不存在,请确认配置是否正确", nickName), this);
         yield return(field);
     }
 }
Example #8
0
        private static string GetUploadItemField(TkDbContext context, IFieldInfoIndexer indexer, string nickName)
        {
            var field = indexer[nickName];

            if (field == null)
            {
                return(null);
            }
            return(string.Format(ObjectUtil.SysCulture, "{0} {1}",
                                 context.EscapeName(field.FieldName), context.EscapeName(field.NickName)));
        }
        public BaseListSearch CreateObject(params object[] args)
        {
            IFieldInfoIndexer indexer = ObjectUtil.ConfirmQueryObject <IFieldInfoIndexer>(this, args);
            IFieldInfo        current = ObjectUtil.ConfirmQueryObject <IFieldInfo>(this, args);

            IFieldInfo other = indexer[OtherNickName];

            TkDebug.AssertNotNull(other, string.Format(ObjectUtil.SysCulture,
                                                       "{0}不存在,请确认配置是否正确", OtherNickName), this);
            return(new TwoFieldListSearch(current, other));
        }
Example #10
0
        public static IFieldInfo GetFieldInfo(string nickName, object[] args)
        {
            TkDebug.AssertArgumentNullOrEmpty(nickName, "nickName", null);
            TkDebug.AssertArgumentNull(args, "args", null);

            IFieldInfoIndexer indexer = ObjectUtil.QueryObject <IFieldInfoIndexer>(
                args);

            TkDebug.AssertNotNull(indexer, "创建参数中缺乏IFieldInfoIndexer类型", null);
            IFieldInfo result = indexer[nickName];

            TkDebug.AssertNotNull(result,
                                  string.Format(ObjectUtil.SysCulture, "缺少名称为{0}的字段", nickName), indexer);
            return(result);
        }
Example #11
0
        public string ToSqlOrder(IFieldInfoIndexer indexer)
        {
            TkDebug.AssertArgumentNull(indexer, "indexer", this);

            var orderList = from item in FieldList
                            let order = item.ToSqlOrder(indexer)
                                        where order != null
                                        select order;
            string orderBy = string.Join(",", orderList);

            if (string.IsNullOrEmpty(orderBy))
            {
                return(string.Empty);
            }
            return("ORDER BY " + orderBy);
        }
 BaseConstraint IConfigCreator <BaseConstraint> .CreateObject(params object[] args)
 {
     IFieldInfo[] otherFields;
     if (OtherFields == null)
     {
         otherFields = null;
     }
     else
     {
         IFieldInfoIndexer indexer = ObjectUtil.QueryObject <IFieldInfoIndexer>();
         otherFields = (from item in OtherFields
                        let field = indexer[item]
                                    where field != null
                                    select field).ToArray();
     }
     return(new MultipleNotEmptyConstraint(ConstraintUtil.GetFieldInfo(args), otherFields));
 }
Example #13
0
        public RegNameList <ListTabSheet> CreateTabSheet(IDbDataSource dataSource,
                                                         IFieldInfoIndexer indexer)
        {
            if (TabSheets != null)
            {
                RegNameList <ListTabSheet> result = new RegNameList <ListTabSheet>();
                foreach (var item in TabSheets)
                {
                    string sql = item.Condition == null ? null :
                                 Expression.Execute(item.Condition, dataSource);
                    IParamBuilder builder = string.IsNullOrEmpty(sql) ? null :
                                            SqlParamBuilder.CreateSql(sql);
                    result.Add(new ListTabSheet(item.Id,
                                                item.Caption.ToString(ObjectUtil.SysCulture), builder));
                }
                return(result);
            }
            if (CodeTabSheet != null)
            {
                RegNameList <ListTabSheet> result = new RegNameList <ListTabSheet>();
                if (CodeTabSheet.NeedAllTab)
                {
                    result.Add(new ListTabSheet("_All", "全部", null));
                }
                CodeTable table = PlugInFactoryManager.CreateInstance <CodeTable>(
                    CodeTablePlugInFactory.REG_NAME, CodeTabSheet.CodeRegName);
                YJC.Toolkit.Decoder.CodeTableContainer data = new YJC.Toolkit.Decoder.CodeTableContainer();
                table.Fill(data, dataSource.Context);

                var        tableData = data[CodeTabSheet.CodeRegName];
                IFieldInfo info      = indexer[CodeTabSheet.NickName];
                TkDebug.AssertNotNull(info, "", this);
                foreach (var item in tableData)
                {
                    IParamBuilder builder  = SqlParamBuilder.CreateEqualSql(dataSource.Context, info, item.Value);
                    var           tabSheet = new ListTabSheet(item.Value, item.Name, builder);
                    result.Add(tabSheet);
                }
                return(result);
            }

            return(null);
        }
Example #14
0
        protected IEnumerable <string> GetListSelectFields(TkDbContext context,
                                                           IFieldUpload upload, IFieldInfoIndexer indexer, bool showSize, bool showContent,
                                                           bool showMimeType, bool showServerPath)
        {
            TkDebug.AssertArgumentNull(upload, "upload", this);
            TkDebug.AssertArgumentNull(indexer, "indexer", this);

            string result;

            if (showSize)
            {
                result = GetUploadItemField(context, indexer, upload.SizeField);
                if (result != null)
                {
                    yield return(result);
                }
            }
            if (showContent)
            {
                result = GetUploadItemField(context, indexer, upload.ContentField);
                if (result != null)
                {
                    yield return(result);
                }
            }
            if (showMimeType)
            {
                result = GetUploadItemField(context, indexer, upload.MimeTypeField);
                if (result != null)
                {
                    yield return(result);
                }
            }
            if (showServerPath)
            {
                result = GetUploadItemField(context, indexer, upload.ServerPathField);
                if (result != null)
                {
                    yield return(result);
                }
            }
        }
Example #15
0
        public IParamBuilder CreateParamBuilder(TkDbContext context, IFieldInfoIndexer indexer)
        {
            if (fSelectBuilder == null)
            {
                TkDebug.AssertArgumentNull(context, "context", this);
                TkDebug.AssertArgumentNull(indexer, "indexer", this);

                IFieldInfo fakeInfo = indexer[FieldName];
                TkDebug.AssertNotNull(fakeInfo, string.Format(ObjectUtil.SysCulture,
                                                              "{0}中没有配置字段{1}", indexer, FieldName), this);
                fSelectBuilder = ParamBuilder.InternalCreateSingleSql(context,
                                                                      fakeInfo.FieldName, fakeInfo.DataType, "!=", fakeInfo.FieldName, Value);
                if (AllowNull)
                {
                    fSelectBuilder = ParamBuilder.CreateParamBuilderWithOr(fSelectBuilder,
                                                                           ParamBuilder.CreateSql(fakeInfo.FieldName + " IS NULL"));
                }
            }
            return(fSelectBuilder);
        }
Example #16
0
 public IEnumerable <string> GetListSelectFields(TkDbContext context,
                                                 IFieldUpload upload, IFieldInfoIndexer indexer)
 {
     return(null);
 }
Example #17
0
 public IParamBuilder CreateParamBuilder(TkDbContext context, IFieldInfoIndexer indexer)
 {
     return(SqlParamBuilder.CreateSql("CODE_DEL IS NULL OR CODE_DEL <> 1"));
 }
Example #18
0
 public abstract IEnumerable <string> GetListSelectFields(TkDbContext context,
                                                          IFieldUpload upload, IFieldInfoIndexer indexer);
Example #19
0
 IParamBuilder IActiveData.CreateParamBuilder(TkDbContext context, IFieldInfoIndexer indexer)
 {
     return(CreateFixCondition());
 }
Example #20
0
 public ListDataRightEventArgs(TkDbContext context, IUserInfo user, IFieldInfoIndexer fieldIndexer)
 {
     Context      = context;
     User         = user;
     FieldIndexer = fieldIndexer;
 }
Example #21
0
 public override IEnumerable <string> GetListSelectFields(TkDbContext context,
                                                          IFieldUpload upload, IFieldInfoIndexer indexer)
 {
     return(GetListSelectFields(context, upload, indexer, true, true, true, true));
 }