public TableResolver CreateObject(params object[] args) { IDbDataSource source = ObjectUtil.ConfirmQueryObject <IDbDataSource>(this, args); ITableSchemeEx scheme = Scheme.CreateObject(); Tk5DataXml dataXml = scheme as Tk5DataXml; if (dataXml == null) { return new MetaDataTableResolver(scheme, source) { AutoTrackField = AutoTrackField, AutoUpdateKey = AutoUpdateKey } } ; else { return new Tk5TableResolver(dataXml, source) { AutoTrackField = AutoTrackField, AutoUpdateKey = AutoUpdateKey } }; } }
public IMetaData CreateObject(params object[] args) { IInputData input = ObjectUtil.ConfirmQueryObject <IInputData>(this, args); ITableSchemeEx scheme = CreateSourceScheme(input); switch (input.Style.Style) { case PageStyle.Insert: case PageStyle.Update: case PageStyle.Detail: return(new Tk5SingleNormalMetaData(scheme, input, this)); case PageStyle.List: return(new Tk5ListMetaData(scheme, input, this)); case PageStyle.Custom: if (input.Style.Operation == "DetailList") { InputDataProxy proxy = new InputDataProxy(input, (PageStyleClass)PageStyle.List); return(new Tk5ListMetaData(scheme, proxy, this)); } else { var metaData = SchemeUtil.CreateVueMetaData(input, scheme, this); if (metaData != null) { return(metaData); } } break; } return(null); }
public static Tk5FieldInfoEx CreateDataXmlField(ITableSchemeEx scheme, IFieldInfoEx field, IInputData input, BaseSingleMetaDataConfig config) { Tk5FieldInfoEx fieldInfo = new Tk5FieldInfoEx(field, input.Style); return(fieldInfo); }
public Tk5TableScheme(ITableSchemeEx scheme, IInputData input, ISingleMetaData config, Func <ITableSchemeEx, IFieldInfoEx, IInputData, ISingleMetaData, Tk5FieldInfoEx> createFunc) : this() { TkDebug.AssertArgumentNull(scheme, "scheme", null); TkDebug.AssertArgumentNull(input, "input", null); TkDebug.AssertArgumentNull(config, "config", null); TkDebug.AssertArgumentNull(createFunc, "createFunc", null); SetFileDependency(scheme); TableName = scheme.TableName; TableDesc = scheme.TableDesc; NameField = scheme.NameField; PageStyle pageStyle = input.Style.Style; var list = from item in scheme.Fields where (item.Control.DefaultShow & pageStyle) == pageStyle select item; foreach (var item in list) { Tk5FieldInfoEx fieldInfo = createFunc(scheme, item, input, config); fList.Add(fieldInfo); } ProcessRefField(); }
public Tk5ListMetaData(ITableSchemeEx dataXml, IInputData input, ISingleMetaData config, ITableOutput tableOutput = null) { fTableScheme = config.CreateTableScheme(dataXml, input); SetFileDependency(fTableScheme); Table = new Tk5ListTableData(fTableScheme, tableOutput); }
protected virtual void SetDefaultValue(IInputData input, ITableSchemeEx scheme, DataTable table, DataRow row) { foreach (DataColumn col in table.Columns) { string value = input.QueryString[col.ColumnName]; if (!string.IsNullOrEmpty(value)) { DataSetUtil.SetSafeValue(row, col, value); } } var defaultFields = from field in scheme.Fields where Tk5TableResolver.HasDefaultValue(field) select field as ITk5FieldInfo; foreach (var field in defaultFields) { try { row[field.NickName] = Expression.Execute(field.Edit.DefaultValue, DataSet, this); } catch { } } }
protected virtual void CreateDefaultValue(IInputData input, DataSet dataSet) { if (string.IsNullOrEmpty(TableName) || fMetaData == null || input.Style.Style != PageStyle.Insert) { return; } ITableSchemeEx scheme = fMetaData.GetTableScheme(TableName); if (scheme == null) { return; } MetaDataTableResolver resolver = new MetaDataTableResolver(scheme, this); using (resolver) { //DataTable table = DataSetUtil.CreateDataTable(scheme.TableName, scheme.Fields); DataTable table = resolver.CreateVirtualTable(true); DataRow row = table.NewRow(); table.Rows.Add(row); resolver.SetDefaultValue(input.QueryString); resolver.SetDefaultValue(row); resolver.FillCodeTable(input.Style); resolver.Decode(input.Style); } }
/// <summary> /// Initializes a new instance of the InternalTableScheme class. /// </summary> /// <param name="tableScheme"></param> public InternalTableScheme(ITableSchemeEx tableScheme) { fTableScheme = tableScheme; fDataFields = (from item in tableScheme.Fields where item.Kind == FieldKind.Data select item).ToArray(); }
public static IMetaData CreateVueMetaData(IInputData input, ITableSchemeEx scheme, ISingleMetaData singleMeta) { InputDataProxy proxy; switch (input.Style.Operation) { case "ListVue": proxy = new InputDataProxy(input, (PageStyleClass)PageStyle.List); return(new Tk5ListMetaData(scheme, proxy, singleMeta)); case "InsertVue": proxy = new InputDataProxy(input, (PageStyleClass)PageStyle.Insert); return(new Tk5SingleNormalMetaData(scheme, proxy, singleMeta)); case "UpdateVue": proxy = new InputDataProxy(input, (PageStyleClass)PageStyle.Update); return(new Tk5SingleNormalMetaData(scheme, proxy, singleMeta)); case "DetailVue": proxy = new InputDataProxy(input, (PageStyleClass)PageStyle.Detail); return(new Tk5SingleNormalMetaData(scheme, proxy, singleMeta)); } return(null); }
private Tk5TableScheme CreateTableScheme(IInputData input, ISingleMetaData item) { ITableSchemeEx sourceScheme = item.CreateSourceScheme(input); Tk5TableScheme scheme = item.CreateTableScheme(sourceScheme, input); fSchemes.Add(scheme); return(scheme); }
protected override void OnReadMetaData(TableResolver resolver, IPageStyle style, ITableSchemeEx scheme) { fListFields = (from field in scheme.Fields let tk5field = field.Convert <Tk5FieldInfoEx>() where IsListField(tk5field, style) orderby field.Control.GetOrder(style) select MetaDataTableResolver.GetSortField(field)).ToList(); }
public TableResolver CreateObject(params object[] args) { IDbDataSource source = ObjectUtil.ConfirmQueryObject <IDbDataSource>(this, args); ITableSchemeEx scheme = Scheme.CreateObject(); SqlTableResolver resolver = new SqlTableResolver(Sql, scheme, source); return(resolver); }
public SqlTableResolver(string sql, ITableSchemeEx scheme, IDbDataSource source) : base(scheme, source) { TkDebug.AssertArgumentNullOrEmpty(sql, "sql", null); ReadOnly = true; fSql = sql; }
public static ITableScheme ConvertToTableScheme(ITableSchemeEx scheme) { if (scheme == null) { return(null); } ITableScheme result = scheme as ITableScheme; return(result ?? new InternalTableScheme(scheme)); }
public static ITableSchemeEx ConvertToTableSchemeEx(ITableScheme scheme, Func <IFieldInfo, IFieldInfoEx> converter) { if (scheme == null) { return(null); } ITableSchemeEx result = scheme as ITableSchemeEx; return(result ?? new InternalTableSchemeEx(scheme, converter)); }
public Tk5SingleNormalMetaData(ITableSchemeEx dataXml, IInputData input, ISingleMetaData config) { TkDebug.AssertArgumentNull(dataXml, "dataXml", null); TkDebug.AssertArgumentNull(input, "input", null); TkDebug.AssertArgumentNull(config, "config", null); ColumnCount = config.ColumnCount; fTableScheme = config.CreateTableScheme(dataXml, input); Files = FileUtil.GetFileDependecy(fTableScheme); Table = new Tk5NormalTableData(fTableScheme, config, SearchControlMethod.Id, input.Style); }
public virtual void SetMetaData(IPageStyle style, IMetaData metaData) { if (TestPageStyleForMetaData(style)) { ITableSchemeEx scheme = metaData.GetTableScheme(MainResolver.TableName); if (scheme != null) { MainResolver.ReadMetaData(scheme); OnReadMetaData(MainResolver, style, scheme); } } }
public TableResolver CreateObject(params object[] args) { IDbDataSource source = ObjectUtil.ConfirmQueryObject <IDbDataSource>(this, args); ITableSchemeEx scheme = Scheme.CreateObject(); Tk5DataXml dataXml = scheme as Tk5DataXml; TkDebug.AssertNotNull(dataXml, string.Format(ObjectUtil.SysCulture, "模型需要Tk5DataXml,当前的Scheme是{0},不适配", scheme.GetType()), Scheme); return(new Tk5TreeTableResolver(dataXml, source) { AutoTrackField = AutoTrackField, AutoUpdateKey = AutoUpdateKey }); }
public IMetaData CreateObject(params object[] args) { IInputData input = ObjectUtil.ConfirmQueryObject <IInputData>(this, args); ITableSchemeEx scheme = CreateSourceScheme(input); switch (input.Style.Style) { case PageStyle.Insert: case PageStyle.Update: case PageStyle.Detail: return(new Tk5SingleNormalMetaData(scheme, input, this)); case PageStyle.List: return(new Tk5ListMetaData(scheme, input, this)); } return(null); }
internal Tk5TableScheme(ITableSchemeEx scheme, IInputData input, BaseSingleMetaDataConfig config, Func <ITableSchemeEx, IFieldInfoEx, IInputData, BaseSingleMetaDataConfig, Tk5FieldInfoEx> createFunc) : this() { SetFileDependency(scheme); if (!string.IsNullOrEmpty(config.TableName)) { TableName = config.TableName; } else { TableName = scheme.TableName; } if (config.TableDesc != null) { TableDesc = config.TableDesc.ToString(); } else { TableDesc = scheme.TableDesc; } NameField = scheme.NameField; PageStyle pageStyle = input.Style.Style; var list = from item in scheme.Fields where IsShow(item, pageStyle, config.OverrideFields) select item; foreach (var item in list) { Tk5FieldInfoEx fieldInfo = createFunc(scheme, item, input, config); fList.Add(fieldInfo); } // 删除主Schema中的字段 DelFields(config.DelFields); // 重载主Schema中的字段 OverrideFields(input, config.OverrideFields); // 添加虚拟字段到主Schema中 AddFields(input, config.AddFields); ProcessRefField(); }
string ISqlProvider.GetCreateTableSql(ITableSchemeEx scheme) { var fieldParts = new StringBuilder(); var result = new StringBuilder(); var keyFields = new List <string>(); var isFirst = true; string safeFieldName; foreach (var field in scheme.Fields) { if (!isFirst) { fieldParts.AppendFormat(ObjectUtil.SysCulture, ","); } else { isFirst = false; } safeFieldName = GetSafeString(field.FieldName); fieldParts.AppendFormat(ObjectUtil.SysCulture, "\r\n{0} {1} {2}", safeFieldName, GetFieldDbType(field) , field.IsEmpty ? "null" : "not null"); if (field.IsKey) { keyFields.Add(safeFieldName); } } if (keyFields.Count > 0) { fieldParts.AppendFormat(ObjectUtil.SysCulture, ",\r\nconstraint [PK_{0}] primary key ({1})" , scheme.TableName, string.Join(",", keyFields)); } result.AppendFormat(ObjectUtil.SysCulture, CREATE_TABLE, GetSafeString(scheme.TableName), fieldParts.ToString()) .AppendLine(); //最后构建索引 //foreach (var tableIndex in scheme.Indexes) // result.AppendFormat(ObjectUtil.SysCulture, CREATE_INDEX, scheme.TableName, tableIndex.Name, // string.Join(",", (from s in tableIndex.Fields // select string.Format(ObjectUtil.SysCulture, "{0} {1}", GetSafeString(s.FieldName), s.IsAscending ? "asc" : "desc")))) // .AppendLine(); return(result.ToString()); }
public static Tk5FieldInfoEx CreatePropertyField(ITableSchemeEx scheme, IFieldInfoEx field, IInputData input, BaseSingleMetaDataConfig config) { return(new Tk5FieldInfoEx(field.Convert <PropertyFieldInfo>(), input.Style)); }
protected virtual void OnReadMetaData(TableResolver resolver, IPageStyle style, ITableSchemeEx scheme) { }
public InternalScheme(ITableSchemeEx scheme, RegNameList <UnionFieldInfoEx> fields) { fScheme = scheme; fFields = fields; }
public abstract Tk5TableScheme CreateTableScheme(ITableSchemeEx scheme, IInputData input);
private void SetFileDependency(ITableSchemeEx scheme) { Files = FileUtil.GetFileDependecy(scheme); }
public static void CreateTable(ITableSchemeEx scheme, TkDbContext context) { TkDebug.AssertArgumentNull(scheme, "scheme", null); ExecuteScalar(context.ContextConfig.InternalSqlProvider.GetCreateTableSql(scheme), context); }
public override Tk5TableScheme CreateTableScheme(ITableSchemeEx scheme, IInputData input) { return(new Tk5TableScheme(scheme, input, this, CreateDataXmlField)); }
public virtual void ReadMetaData(ITableSchemeEx metaData) { ReadMetaData(MetaDataUtil.ConvertToTableScheme(metaData)); }
public override Tk5TableScheme CreateTableScheme(ITableSchemeEx scheme, IInputData input) { return(new Tk5TableScheme(scheme, input, this, SchemeUtil.CreatePropertyField)); }