powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / DBGridEh + FibPlus сортировка.
7 сообщений из 7, страница 1 из 1
DBGridEh + FibPlus сортировка.
    #38125329
rpalaznik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, столкнулся с проблемой, которую постараюсь объяснить ниже.
Программа отображает, с помощью DBGridEh и FIBPlus компонентов, порядка 200-300 записей одновременно, записи отсортированы по дате и разброс дат порядка нескольких месяцев. Иногда возникает необходимость изменить даты нескольких записей расположенных рядом (с одной датой) и при изменении даты первой записи, фокус грида улетает за ней, чтобы вернуться обратно, к другой записи, приходится крутить скролл и искать нужную запись. Таким образом, при большом количестве изменений, нервы пользователей не выдерживают и они впадают в депрессию, обзывают программу нехорошими словами и несут негатив в этот мир.
Так вот, чтобы им помочь и поберечь этих ранимых созданий необходимо чтобы грид не дергался ни куда и сохранял всегда одно положение, пока его не попросят с помощью того же скролла. Я решал эту проблему с помощью букмарков, сохранял букмарк следующей записи и при применении изменений переходил к нему. Но из этого способа вытекает 2 маленьких проблемы - после изменений записи фокус смещался на следующую запись независимо от того было произведено изменение поля включенного в сортировку или нет. И было недоумение, когда изменял запись, вот она, а фокус на следующей... Вторая проблема - неясным и случайным образом без возможности повторения в процессе отладки - после изменения записи фокус улетал в саааамый верх грида.
Так вот собственно вопрос, кто-нибудь грамотно реализовывал поведение грида или датасета, при котором он ни куда самостоятельно не улетает или может быть где-нибудь в закрамах настроек маячит столь желанная опция, которая решает все мои и пользователей проблемы?
...
Рейтинг: 0 / 0
DBGridEh + FibPlus сортировка.
    #38125373
дельфисты
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это наверное дельфисты лучше расскажут, они больше используют VCL, FibPlus и Ehlib.
Ради эксперимента поищите у FibPlus(DataSet) и Ehlib параметры со словом Refresh и по отключайте их все.
Сортировку делаете через SQL ORDER BY или средствами Ehlib кликом по имени колонки или по этому клику и происходит очередной запрос с ORDER BY?
...
Рейтинг: 0 / 0
DBGridEh + FibPlus сортировка.
    #38125378
rpalaznik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Refresh поищу, сортировка делается локально средствами FIBPlus
...
Рейтинг: 0 / 0
DBGridEh + FibPlus сортировка.
    #38125383
дельфисты
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rpalaznikRefresh поищу, сортировка делается локально средствами FIBPlus
Если бы делали сортировку через SQL ORDER BY или по клику в DBGridEh с запросом с ORDER BY, то все просто, только после коммита и рефреша DataSet-ом данные пересортируются.
...
Рейтинг: 0 / 0
DBGridEh + FibPlus сортировка.
    #38125531
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rpalaznik, с обычным StringGrid делал так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
        // Запоминаем текущую строку
        int current_row=StringGrid2->Row;

        //Изменяем запись
        ...

        // Обновляем StringGrid
        ...

        // Восстанавливаем строку
        StringGrid2->Row=current_row;

у DBGrid должно быть что-то похожее на свойство Row
...
Рейтинг: 0 / 0
DBGridEh + FibPlus сортировка.
    #38135515
rpalaznik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
m_Slarpalaznik, с обычным StringGrid делал так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
        // Запоминаем текущую строку
        int current_row=StringGrid2->Row;

        //Изменяем запись
        ...

        // Обновляем StringGrid
        ...

        // Восстанавливаем строку
        StringGrid2->Row=current_row;

у DBGrid должно быть что-то похожее на свойство Row

У DBGrid есть такой механизм, с помощью букмарков можно сделать сохранение текущей записи, но в таком случае, при возврате к этой записи грид может переместиться, если поле сортировки будет изменено, а как раз этого и нужно избежать.
...
Рейтинг: 0 / 0
DBGridEh + FibPlus сортировка.
    #38135638
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rpalaznikm_Sla...у DBGrid должно быть что-то похожее на свойство RowУ DBGrid есть такой механизм, с помощью букмарков можно сделать сохранение текущей записи, но в таком случае, при возврате к этой записи грид может переместиться, если поле сортировки будет изменено, а как раз этого и нужно избежать.Делай сохранение не текущей, а следующей за ней записи.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / DBGridEh + FibPlus сортировка.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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