|
Создание Lookup поля в RxMemoryData.
Такая проблема. Есть база interbase, в ней есть две таблицы.
Таблица 1 - в ней два поля FIRMA_ID (primary key) и FIRMA_NAME (строковое поле)
Таблица 2 - в ней есть также поле FIRMA_ID (импортированное из первой таблицы)
Я хочу вторую таблицу загнать в RxMemoryData и там создать lookup поле по FIRMA_ID и FIRMA_NAME из первой таблицы, вообщем чтобы отображалось соотвествующее FIRMA_NAME из первой таблицы. Всё это должно отобразиться в DBGrid.
И вот чего-то у меня не получается, все поля из таблицы 2 выводятся нормально, lookup поле так же создаётся, но в нём отображается false. Но в выпадающем меню в DBGrid'e значения из FIRMA_NAME показываются, но не выбираются... Вообщем как-то на половину вроде работает, где косяк не могу найти... Помогите.
procedure TForm1.Button3Click(Sender: TObject);
begin
DataModule2.RxMemoryData2.Active:=false;
DataModule2.RxMemoryData1.LoadFromDataSet(DataModule2.IBDataSet1,0,lmC opy);
DataModule2.RxMemoryData2.CopyStructure(DataModule2.IBDataSet2);
with TStringField.Create(DataModule2.RxMemoryData2) do
begin
FieldName := 'FIRMA_NAME_0';
FieldKind:= fkLookup;
DataSet := DataModule2.RxMemoryData2;
Name := DataSet.Name + FieldName;
KeyFields:= 'FIRMA_ID';
LookUpKeyFields:= 'FIRMA_ID';
LookUpDataset:= DataModule2.RxMemoryData1;
LookUpResultField:= 'FIRMA_NAME';
DataModule2.RxMemoryData2.FieldDefs.Add(Name, ftString, 20, false);
end;
DataModule2.RxMemoryData2.LoadFromDataSet(DataModule2.IBDataSet2,0,lmA ppend);
DBGrid2.Refresh;
DataModule2.RxMemoryData2.Active:=true;
end;
P.S. я навичёк в этом деле, если чего непонятно написал, говорите напишу чего скажите. Очень нужно...
Последний раз редактировалось MoHaX; 09.08.2004 в 12:33.
|