Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Обновление GRID (dxMasterView) c позиционированием

2.1K
23 сентября 2007 года
mainigor
151 / / 21.10.2005
Hi All!

Нужно после UPDATE обновить GRID (dxMasterView).
Если ничего в гриде не трогать, то вроде как в большинстве случаев работает. Но если там установить сортировку (пользователь ткнет в header grid-a) то после UPDATE позиционирование происходит на ту позицию где Item стоял до изменений. А соответственно если поле было под сортировкой, то Item может заметно переместиться.

в стандартном Grid-e я использую :
 
Код:
// позиционировать DataSet
void __fastcall TData::GoPosition(TDataSet* ds, int cur_id, String nField)
{
        while (!ds->Eof && ds->FieldByName(nField)->AsInteger != cur_id)
                ds->Next();
}

здесь это не помогает. Т.к. сортировка происходит после выборки.
Конечно было бы красиво перемещаться на нужный элемент.
Но если нет - то может кто знает, как выключить программно сортировку.
1
24 сентября 2007 года
kot_
7.3K / / 20.01.2000
Цитата: mainigor
Hi All!

Нужно после UPDATE обновить GRID (dxMasterView).
Если ничего в гриде не трогать, то вроде как в большинстве случаев работает. Но если там установить сортировку (пользователь ткнет в header grid-a) то после UPDATE позиционирование происходит на ту позицию где Item стоял до изменений. А соответственно если поле было под сортировкой, то Item может заметно переместиться.

в стандартном Grid-e я использую :
 
Код:
// позиционировать DataSet
void __fastcall TData::GoPosition(TDataSet* ds, int cur_id, String nField)
{
        while (!ds->Eof && ds->FieldByName(nField)->AsInteger != cur_id)
                ds->Next();
}

здесь это не помогает. Т.к. сортировка происходит после выборки.
Конечно было бы красиво перемещаться на нужный элемент.
Но если нет - то может кто знает, как выключить программно сортировку.


Очень сложно и загадочно все описано. Что всетаки нужно - позиционировать курсор или программно сортировать данные?
Задача как правило решается использованием закладки (TBookmark*) - перед внесением изменений устанавливается закладка - а затем к ней осуществляется переход.

92
24 сентября 2007 года
Тень Пса
2.2K / / 19.10.2006
ну еще можно программно щёлкнуть по хидеру таблицы (после выборки) ) по которому щёлкал юзер до UPDATE и выборки...
2.1K
25 сентября 2007 года
mainigor
151 / / 21.10.2005
Цитата: kot_
Очень сложно и загадочно все описано. Что всетаки нужно - позиционировать курсор или программно сортировать данные?
Задача как правило решается использованием закладки (TBookmark*) - перед внесением изменений устанавливается закладка - а затем к ней осуществляется переход.



чего-то действительно не очень понятно :)
нужно :
или
1. позиционироваться (желательно при любых условиях)
или
2. то же (хотя бы при выключенной сортировке)
пока вышел из положения, программно выключаю сортитровку : в цикле пробегаю по полям и все удаляю из массива сортируемых полей.
Если кто ткнёт в header - :(
TBookmark - наверное будет хорош для одно пользовательской программы, а вдруг кто добавит запись ? Или при Refresh она не появится?

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог