Tade
Я, правда для обычного lookup, использую setrange для lookup таблицы в обработчике View OnInitEdit. Приблизительно так:
procedure Proj.cxGrid1DBTableView1InitEdit(
Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem;
AEdit: TcxCustomEdit);
begin
if TcxGridDBTableView(cxGrid1.FocusedView).ViewData.HasNewItemRecord then
if TcxGridDBTableView(cxGrid1.FocusedView).ViewData.NewItemRow.Focused then
if AItem.Caption = 'Цвет' then
begin
with kbmMemLookupTable do
begin
DisableControls;
SetRangeStart;
//KeyFieldCount := 1;
FieldByName('GoodsId').AsInteger := GoodsId;
SetRangeEnd;
//KeyFieldCount := 1;
FieldByName('GoodsId').AsInteger := GoodsId;
ApplyRange;
EnableControls;
end;
end;
Я, правда для обычного lookup, использую setrange для lookup таблицы в обработчике View OnInitEdit. Приблизительно так:
procedure Proj.cxGrid1DBTableView1InitEdit(
Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem;
AEdit: TcxCustomEdit);
begin
if TcxGridDBTableView(cxGrid1.FocusedView).ViewData.HasNewItemRecord then
if TcxGridDBTableView(cxGrid1.FocusedView).ViewData.NewItemRow.Focused then
if AItem.Caption = 'Цвет' then
begin
with kbmMemLookupTable do
begin
DisableControls;
SetRangeStart;
//KeyFieldCount := 1;
FieldByName('GoodsId').AsInteger := GoodsId;
SetRangeEnd;
//KeyFieldCount := 1;
FieldByName('GoodsId').AsInteger := GoodsId;
ApplyRange;
EnableControls;
end;
end;