powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Позиционирование при перечитывании запроса и GridMode
25 сообщений из 84, страница 1 из 4
Позиционирование при перечитывании запроса и GridMode
    #39730390
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день всем гуру.

Продолжаю свою эпопею с юзанием GridMode режима у грида.
Совершенно запланировано столкнулся с проблемой позиционирования на гриде после перечитки запроса.
У меня реализован механизм выполнения запроса (сам запрос собирается динамически) с учетом пользовательских фильтров и сортировок. Все работает нормально, но есть нюансы. Один из них - после определенных действий вернуться на ту же запись в TableView. Заказчик хочет (и это вполне нормальное желание), чтобы после совершения действия, если набор данных не менялся, автоматом переходить на запись, с которой совершалось действие. И не просто переходить (в этом как раз проблемы нету), но чтобы на сетке сама запись оставалась на том же месте. Например, видимая часть TableView содержит 27 строк. Я стою на 20-й и хочу после совершения операции (которая вызывает перевыполнение запроса без изменений набора данных) снова видеть выделенной эту же строку на той же позиции в TableView. Вся проблема в том, что включен GridMode и параметры TopRowIndex и FocusedRowIndex зачастую отображают неверную информацию.
Почитал на форуме, но решения похожих проблем не нашел. Может у кого была такая же проблема, подскажите как выкрутиться из этой ситуации.
Заранее благодарю за дельные советы
...
Рейтинг: 0 / 0
Позиционирование при перечитывании запроса и GridMode
    #39730395
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов Юрий,

для начала надобно свою же собственную тему "закрыть", написав, чем всё закончилось и какое было решение:
http://www.sql.ru/forum/1304358/sortirovka-i-gridmode
...
Рейтинг: 0 / 0
Позиционирование при перечитывании запроса и GridMode
    #39730411
Фэйтл Эра
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов Юрий...столкнулся с проблемой позиционирования на гриде после перечитки запроса.
...вернуться на ту же запись в TableView. Заказчик хочет..., чтобы после совершения действия, если набор данных не менялся, автоматом переходить на запись, с которой совершалось действие...

Не выполнять "перечитку" запроса, если набор данных не менялся.
...
Рейтинг: 0 / 0
Позиционирование при перечитывании запроса и GridMode
    #39730414
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И пора бы уж познакомиться, что такое beginupdate/endupdate у гридов/трилистов девовских. Как раз для обновлений датасетов сделано, чтобы ничего вручную не надо было восстанавливать.
...
Рейтинг: 0 / 0
Позиционирование при перечитывании запроса и GridMode
    #39730471
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Загружайте запрос в какой-нибудь мемори-датасет (TdxMemData), к нему и привязан Грид. (можно использовать и не DBView)
2. После редактирования записи отправляете данные на сервер
3. Если сервер вернул ошибку, то отменяете редактирование.
И не нужно перечитывать данные и менять положение курсора в Гриде.
...
Рейтинг: 0 / 0
Позиционирование при перечитывании запроса и GridMode
    #39730473
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDiЛеонов Юрий,

для начала надобно свою же собственную тему "закрыть", написав, чем всё закончилось и какое было решение:
http://www.sql.ru/forum/1304358/sortirovka-i-gridmode

Здесь решение еще не найдено, параллельно веду разработку. Поэтому писать пока нечего и закрывать соответственно рано
...
Рейтинг: 0 / 0
Позиционирование при перечитывании запроса и GridMode
    #39730478
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фэйтл ЭраЛеонов Юрий...столкнулся с проблемой позиционирования на гриде после перечитки запроса.
...вернуться на ту же запись в TableView. Заказчик хочет..., чтобы после совершения действия, если набор данных не менялся, автоматом переходить на запись, с которой совершалось действие...

Не выполнять "перечитку" запроса, если набор данных не менялся.

Может неправильно выразился. Данные меняются. Не меняется порядок строк и количество их в наборе. Изменения могут проходить по полям, по которым нет сортировки и фильтрации
...
Рейтинг: 0 / 0
Позиционирование при перечитывании запроса и GridMode
    #39730480
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBr1. Загружайте запрос в какой-нибудь мемори-датасет (TdxMemData), к нему и привязан Грид. (можно использовать и не DBView)
2. После редактирования записи отправляете данные на сервер
3. Если сервер вернул ошибку, то отменяете редактирование.
И не нужно перечитывать данные и менять положение курсора в Гриде.

Это немного не то, при ошибке перечитка не происходит
...
Рейтинг: 0 / 0
Позиционирование при перечитывании запроса и GridMode
    #39730489
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем вам перечитка, если данные не изменились
...
Рейтинг: 0 / 0
Позиционирование при перечитывании запроса и GridMode
    #39730496
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBr,

Я выше написал, неправильно выразился. Данные меняются, но по полям, которые не участвуют в сортировке и фильтрации
...
Рейтинг: 0 / 0
Позиционирование при перечитывании запроса и GridMode
    #39730505
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для наглядности вот 2 изображения. На первом состояние до выполнения действия
...
Рейтинг: 0 / 0
Позиционирование при перечитывании запроса и GridMode
    #39730507
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На втором - после совершения действия (проставили галочку)
...
Рейтинг: 0 / 0
Позиционирование при перечитывании запроса и GridMode
    #39730514
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня возможны несколько вариантов:
искомая запись улетает на самый верх;
отображает правильно, но фокус становится на предпоследнюю запись;
фокус может стоять вообще на неизвестной записи.
...
Рейтинг: 0 / 0
Позиционирование при перечитывании запроса и GridMode
    #39730521
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если вы не будите перечитывать данные, то всё останется на месте (если фильтры удовлетворяют условию)
...
Рейтинг: 0 / 0
Позиционирование при перечитывании запроса и GridMode
    #39730524
Фэйтл Эра
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов Юрий,

зачем ты перечитываешь все данные? Ты что-то меняешь, кроме конкретной записи?
...
Рейтинг: 0 / 0
Позиционирование при перечитывании запроса и GridMode
    #39730530
JaDi-guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TobVisibleIndex нужен или т.п. -- точно что-то есть.
...
Рейтинг: 0 / 0
Позиционирование при перечитывании запроса и GridMode
    #39730555
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBrЕсли вы не будите перечитывать данные, то всё останется на месте (если фильтры удовлетворяют условию)
Мне нужно перечитать эти данные, иначе как отобразятся изменения по действию
...
Рейтинг: 0 / 0
Позиционирование при перечитывании запроса и GridMode
    #39730556
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDi-guestTobVisibleIndex нужен или т.п. -- точно что-то есть.
Оно то есть, только совместно с GridMode=True не пашет
...
Рейтинг: 0 / 0
Позиционирование при перечитывании запроса и GridMode
    #39730561
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фэйтл ЭраЛеонов Юрий,

зачем ты перечитываешь все данные? Ты что-то меняешь, кроме конкретной записи?
Нет, кроме конкретной не меняю, но изменения показать же нужно
...
Рейтинг: 0 / 0
Позиционирование при перечитывании запроса и GridMode
    #39730567
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов ЮрийМне нужно перечитать эти данные, иначе как отобразятся изменения по действию
Вы изменяете строку датасета в памяти и отсылаете запрос на сервер. Если сервер вернул Добро, то заканчивается редактирование клиентского датасета. Изменяется всего одна строчка и никакие данные перечитывать не нужно. Если сервер вернул Ошибку, то отменяется редактирование и опять же данные перечитывать не нужно.

Вы вообще как редактируете данные ?
...
Рейтинг: 0 / 0
Позиционирование при перечитывании запроса и GridMode
    #39730576
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBrЛеонов ЮрийМне нужно перечитать эти данные, иначе как отобразятся изменения по действию
Вы изменяете строку датасета в памяти и отсылаете запрос на сервер. Если сервер вернул Добро, то заканчивается редактирование клиентского датасета. Изменяется всего одна строчка и никакие данные перечитывать не нужно. Если сервер вернул Ошибку, то отменяется редактирование и опять же данные перечитывать не нужно.

Вы вообще как редактируете данные ?
Редактирование осуществляется хранимой процедурой. Идет вызов, после которого обновление. На картинках частный случай, не стоит особо привязываться к ним
...
Рейтинг: 0 / 0
Позиционирование при перечитывании запроса и GridMode
    #39730579
zinpub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Леонов Юрий,

А нельзя одну запись перечитать?
...
Рейтинг: 0 / 0
Позиционирование при перечитывании запроса и GridMode
    #39730588
Фотография Virtual Student
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. никто не рассматривает обычный DataSet.Locate('id', id, []) как вариант?
...
Рейтинг: 0 / 0
Позиционирование при перечитывании запроса и GridMode
    #39730603
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Virtual StudentТ.е. никто не рассматривает обычный DataSet.Locate('id', id, []) как вариант?
на второй картинке действие локейта. Они с первой отличаются?
...
Рейтинг: 0 / 0
Позиционирование при перечитывании запроса и GridMode
    #39730605
Фэйтл Эра
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов ЮрийФэйтл ЭраЛеонов Юрий,

зачем ты перечитываешь все данные? Ты что-то меняешь, кроме конкретной записи?
Нет, кроме конкретной не меняю, но изменения показать же нужно
Если остальные записи не меняешь - зачем перечитываешь весь набор данных???
...
Рейтинг: 0 / 0
25 сообщений из 84, страница 1 из 4
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Позиционирование при перечитывании запроса и GridMode
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]