![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
cxGrid - как обратиться к отфильтрованным записям? [D7]
Denis © (2007-04-18 14:05:00)Если кто работал с этим гридом - подскажите, как обратиться к тем записям, которые отображаются после фильтрации? Должны же эти строки или ссылки на них храниться где-то, чтобы грид мог их отображать. Никак не могу найти что-то похожее на подобное временное хранилище. Буду очень благодарен за помощь.
Denis (2007-04-19 16:23:00) [1]>А какая разница ???
разница в том, что у cxDBTableView нет указанного свойства Rows. вот Columns - эт пожалста... а напрямую списка Rows - нет:(
>Сравнивать с датасетом, как это делаете вы нельзя, грид не фильтрует датасет.
Я знаю что не фильтрует, но, если не ошибаюсь - ViewData как раз и содержит ссылки на отображаемые строки, а как грид их находит через DataController.FocusedRowIndex - еще не знаю, но приведенный код работает, зарраза. Посмотрим еще насколько корректно.
Мне самому не нравится решение, поищу еще варианты. Если вы можете предложить иное, более правильное решение - буду очень благодарен.
DimaBr (2007-04-19 15:01:00) [2]
> не подошло, потому как у меня cxDBTableView а не cxTableView
А какая разница ???
Сравнивать с датасетом, как это делаете вы нельзя, грид не фильтрует датасет.
Denis (2007-04-19 13:03:00) [3]>cxTableView1.ViewData.Rows[Index]
не подошло, потому как у меня cxDBTableView а не cxTableView.
но на верный путь натолкнуло. не знаю насколько корректно, но сделал так:
for i:=0 to cxGrid2DBTableView1.ViewData.RowCount -1 do
begin
if ActiveTable^.FieldByName('PRZNOBESPECH').AsInteger =1
then
continue;
cxGrid2DBTableView1.ViewData.DataController.FocusedRowIndex:=i;
IDRC:= Integer(cxGrid2DBTableView1.ViewData.GridView.Items[4].EditValue);
MoveSelectedLineToSp(IDRC);
end; //for
DimaBr (2007-04-18 16:06:00) [4]cxTableView1.ViewData.Rows[Index]