How to create a lookup field at runtime (Views: 27)
Problem/Question/Abstract: How to create a lookup field at runtime Answer: var f: TField; i: Integer; begin Table1.FieldDefs.Update Table1.Close; for i := 0 to Table1.FieldDefs.Count - 1 do if table1.FindField(table1.FieldDefs[i].Name) = nil then {persistent field does not exist} Table1.FieldDefs.Items[i].CreateField(Table1); f := TStringField.Create(Table1); f.Name := 'Table1lookup'; f.FieldName := 'lookup'; f.DisplayLabel := 'lookup'; f.fieldType := fklookup; f.Calculated := True; f.DataSet := Table1; f.lookupDataSet := table2; f.Keyfields := 'Keyfield1'; f.Lookupfields := 'Keyfield1'; f.LookupResultField := 'ResultField'; Table1.Open; end; |