2008. május 28., szerda

How to create a lookup field at runtime


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;

Nincsenek megjegyzések:

Megjegyzés küldése