Alex47
Цитата: У меня работает в нескольких местах.
Делаю по твоему совету:
procedure TfrmMain.tbFindClick(Sender: TObject);
var RecordIndex, RecordId: integer;
begin
With TfrmFind.Create(Application) do
begin
if ShowModal=mrOk then
if cbKind.Text=Прайсовый номер' then
begin
if not tblItemsDetal.Locate('price_num',edtText.Text,[])
then
Showmessage('Ничего не найдено')
else
begin
{1} RecordIndex := TcxGridDBTableView(cxGrid.FocusedView).DataController.FocusedRecordIndex;
{2} RecordId := TcxGridDBTableView(cxGrid.FocusedView).DataController.GetRecordId(RecordIndex);
TcxGridDBTableView(cxGrid.FocusedView).DataController.LocateByKey(RecordId);
end;
end;
end;
end;
Структура грида:
Level1->GroupsView
Level2->ItemsView
Level3->ItemsDetalView
Locate делаю по датасэту связанному с ItemsDetalView.
Пры выполнении строки {1} FocusedView=GroupsView;
Если до начала поиска мышкой установить фокус на ItemsView или ItemsDetalView
группы отличной от искомой - происходит исключение Invalid Variant Type Conversion.
Проблема, как мне кажется, в том, что после Locate не передается фокус на соответствующий View третьего уровня.
Так как же все-таки лечить?