Всем привет, нужна помощь, столкнулся с такой ситуацией:
Работал с БД, загрузил данные в VirtualTable, добавил еще 3 Lookup поля, все работало, как надо, но вот встала ситуация и от базы пришлось отказаться, сгрузил все в xml файлы и начал работать с ними, возникла проблема - моих Lookup полей нет!!! что видимо логично, т.к. структура грузится из xml файла, а там только поля из FieldDefs, как я могу кодом задать FieldsEditor и, соответственно, создать свои 3 Lookup поля?
Спасибо.
FieldsEditor в TVirtualTable
Re: FieldsEditor в TVirtualTable
Пробую так сделать :
возникает ошибка!
Код: Выделить всё
// Загрузка пользователей
procedure TDM.LoadUserAccounts;
var StructName : TField;
begin
StructName := TField.Create(UserVirtualTable);
StructName.FieldName := 'STRUCT_NAME';
StructName.SetFieldType(ftString);
StructName.FieldKind := fkLookup;
StructName.LookupDataSet := StructUnitsRefVirtualTable;
StructName.KeyFields := 'STRUCT_ID';
StructName.LookupKeyFields := 'ID';
StructName.LookupResultField := 'NAME';
StructName.Visible := True;
//
UserVirtualTable.LoadFromFile('src\xml\adm\Users.xml', true);
//
UserVirtualTable.Fields.Add(StructName);
//
UserVirtualTable.Open;
end;
- Вложения
-
- Ошибка!
- 99.png (6.49 КБ) 5973 просмотра
Re: FieldsEditor в TVirtualTable
Здравствуйте,
Для создания Lookup поля во время выполнения приложения, Вы можете использовать следующий код:
Для создания Lookup поля во время выполнения приложения, Вы можете использовать следующий код:
Код: Выделить всё
// Загрузка пользователей
procedure TDM.LoadUserAccounts;
var
StructName: TField;
i: integer;
begin
UserVirtualTable.LoadFromFile('src\xml\adm\Users.xml');
UserVirtualTable.Close;
if UserVirtualTable.Fields.Count = 0 then
for i := 0 to UserVirtualTable.FieldDefs.Count - 1 do
UserVirtualTable.FieldDefs.Items[i].CreateField(UserVirtualTable);
StructName := TStringField.Create(UserVirtualTable);
StructName.FieldName := 'STRUCT_NAME';
StructName.FieldKind := fkLookup;
StructName.LookupDataSet := StructUnitsRefVirtualTable;
StructName.KeyFields := 'STRUCT_ID';
StructName.LookupKeyFields := 'ID';
StructName.LookupResultField := 'NAME';
StructName.Visible := True;
StructName.DataSet := UserVirtualTable;
UserVirtualTable.FieldDefs.Add(StructName.FieldName, ftString, 90, False);
UserVirtualTable.Open;
end;
Re: FieldsEditor в TVirtualTable
Спасибо.
Re: FieldsEditor в TVirtualTable
Если возникнут новые вопросы, пожалуйста, обращайтесь.