public Form BuildForm(RowData Data, FormLayouts FormLayout = FormLayouts.Vertical, SectionLayouts SectionLayout = SectionLayouts.Vertical, MetadataTable Table = null) { if (Table == null) { Table = Data.Metadata; if (Table == null) { throw new ArgumentException("The Metadata Table argument is null, and metadata cannot be retrieved from the RowData object", "Table"); } } Form form = new Form(); form.FormLayout = FormLayout; form.TitleColumn = Table.GuessTitleColumn(); FormSection section = new FormSection(); section.SectionLayout = SectionLayout; List <string> Columns = Data.Columns; string TableName = Table.Fullname; foreach (string s in Columns) { MetadataColumn mc; if (Table.Columns.TryGetValue(s, out mc)) { BuildField(mc, TableName, null, section, null, false); } } form.Sections.Add(section); form.Initialize(Data, Table); return(form); }
public static SqlBuilder ToSqlBuilder(this MetadataColumn ForeignKeyColumn) { MetadataForeignKey FK = ForeignKeyColumn.Parent.FindForeignKeys(ForeignKeyColumn).First(); MetadataTable PK = SqlBuilder.DefaultMetadata.FindTable(FK.ReferencedSchema + "." + FK.ReferencedTable); string namecol = PK.GuessTitleColumn(); string[] valuecols = FK.ColumnReferences.Where(x => !x.Column.IsComputed).Select(x => x.ReferencedColumn.Name).ToArray(); SqlBuilder Builder = SqlBuilder.Select() .From(PK.Name, null, PK.Schema) .Column(namecol) .Columns(valuecols) .Builder(); List <MetadataColumnReference> mcrs = FK.ColumnReferences.Where(x => x.Column.IsComputed).ToList(); if (mcrs.Count > 0) { MetadataColumnReference first = mcrs.First(); Builder.From(PK.Name, null, PK.Schema) .Where(PK.Name, first.ReferencedColumn.Name, SqlOperators.Equal, (object)first.Column.Name.Trim('\"')) .Builder(); foreach (MetadataColumnReference mcr in mcrs.Skip(1)) { Builder.From(PK.Name, null, PK.Schema) .Where(PK.Name, mcr.ReferencedColumn.Name, SqlOperators.Equal, (object)mcr.Column.Name.Trim('\"')) .Builder(); } } return(Builder); }
public Form BuildForm(SqlBuilder Builder, FormLayouts FormLayout = FormLayouts.Vertical, SectionLayouts SectionLayout = SectionLayouts.VerticalTwoColumns) { Form form = new Form(); form.FormLayout = FormLayout; for (int i = 0; i < Builder.Tables.Count; i++) { FormSection section = new FormSection() { SectionLayout = SectionLayout }; Table table = Builder.Tables[i]; MetadataTable mt = Builder.Metadata.FindTable(table.FullName); // section.Legend = StringMap.Default.GetText(SqlBuilder.DefaultCulture.LCID, mt.Fullname, mt.Name); section.Legend = mt.DisplayName; string TableName = mt.Fullname; if (i == 0) { form.TitleColumn = mt.GuessTitleColumn(); } foreach (Field field in table.FieldList) { string name = field.Name; MetadataColumn mc; if (mt.Columns.TryGetValue(name, out mc)) { MetadataColumn includedFrom = mt.Columns.Values.FirstOrDefault(x => x.IncludeColumns != null && x.IncludeColumns.Contains(field.Alias ?? field.Name)); BuildField(mc, TableName, field.Alias, section, includedFrom, i > 0); } } if (section.Fields.Count > 0) { form.Sections.Add(section); } } form.Sections[0].Fields.Insert(0, new FormField() { Name = "__TABLE", ID = "__TABLE", FieldType = FieldTypes.Input, InputType = InputTypes.text, IsHidden = true }); return(form); }
public Form BuildForm(MetadataTable Table, FormTypes FormType, FormLayouts FormLayout = FormLayouts.Vertical, SectionLayouts SectionLayout = SectionLayouts.VerticalTwoColumns) { Form form = new Form(); form.FormLayout = FormLayout; form.TitleColumn = Table.GuessTitleColumn(); if (form.TitleColumn == null) { form.TitleColumn = Table.PrimaryKey.Columns.First().Name; } FormSection section = new FormSection() { SectionLayout = SectionLayout }; string TableName = Table.Fullname; foreach (MetadataColumn col in Table.Columns.Values) { BuildField(col, TableName, null, section, null, false); } form.Sections.Add(section); return(form); }
public Form BuildForm(RowData Data, FormLayouts FormLayout = FormLayouts.Vertical, SectionLayouts SectionLayout = SectionLayouts.Vertical, MetadataTable Table = null) { if (Table == null) { Table = Data.Metadata; if (Table == null) { throw new ArgumentException("The Metadata Table argument is null, and metadata cannot be retrieved from the RowData object", "Table"); } } Form form = new Form(); form.FormLayout = FormLayout; form.TitleColumn = Table.GuessTitleColumn(); FormSection section = new FormSection(); section.SectionLayout = SectionLayout; List<string> Columns = Data.Columns; string TableName = Table.Fullname; foreach (string s in Columns) { MetadataColumn mc; if (Table.Columns.TryGetValue(s, out mc)) { BuildField(mc, TableName, null, section, null, false); } } form.Sections.Add(section); form.Initialize(Data, Table); return form; }
public Form BuildForm(MetadataTable Table, FormTypes FormType, FormLayouts FormLayout = FormLayouts.Vertical, SectionLayouts SectionLayout = SectionLayouts.VerticalTwoColumns) { Form form = new Form(); form.FormLayout = FormLayout; form.TitleColumn = Table.GuessTitleColumn(); if (form.TitleColumn == null) { form.TitleColumn = Table.PrimaryKey.Columns.First().Name; } FormSection section = new FormSection() { SectionLayout = SectionLayout }; string TableName = Table.Fullname; foreach (MetadataColumn col in Table.Columns.Values) { BuildField(col, TableName, null, section, null, false); } form.Sections.Add(section); return form; }