powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Установить курсор на новой записи CXGrid
12 сообщений из 12, страница 1 из 1
Установить курсор на новой записи CXGrid
    #39653400
aidynchik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброго дня!
Имеется приложение Delphi + Firebird 2.5 + FIBPlus7.3
Подскажите как установить курсор на новой записи, созданной через InsertSQL FIBDataset-а?
Схема работы такая - каждый раз, когда нажимаю Enter, я делаю FIBDataset.Append. Появляется новая пустая строка, я ввожу данные и нажимаю Enter, данные вставляются в таблицу. Но курсор при этом убегает на другую строку.
Без Locate это как-то можно решить? А если с Locate, то как получить новую ID, и в какой момент делать - в AfterInsert?
ПРобовал включить свойства poKeepSorting, но не помогло
...
Рейтинг: 0 / 0
Установить курсор на новой записи CXGrid
    #39653452
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что за грид? Есть ли какая-то клиентская сортировка?

Обычно комбинация
Код: pascal
1.
2.
3.
DataSet.Insert;
......
DataSet.Post;

работает именно так, как вам нужно
...
Рейтинг: 0 / 0
Установить курсор на новой записи CXGrid
    #39653648
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вставлять новую запись через DataController самого cxgrid'а, а не датасета.
...
Рейтинг: 0 / 0
Установить курсор на новой записи CXGrid
    #39653671
aidynchik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_Что за грид?

Devexpress ExpressQuantumGrid.

Post и так происходит, строка вставляется, просто курсор убегает после рефреша датасета я так понимаю
...
Рейтинг: 0 / 0
Установить курсор на новой записи CXGrid
    #39654079
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если добавление происходит не в сетке и НД переоткрывается, то никто не знает заранее будущий ID.

Как вариант, настроить в НД TpFIBDataset свойства, отвечающие за получение нового ID, т.е. раскрыть ветку AutoUpdateOptions и там указать таблицу, генератор, ключевое поле и обязательно указать wgOnNewRecord в свойстве WhenGetID. Само собой, что и свойства SQLs.InsertSQL/SQLs.RefreshSQL должны быть заполнены правильными запросами.
Тогда и НД, и сетка будут знать новый ID.
Ну и про UpdateTransaction не забыть.
...
Рейтинг: 0 / 0
Установить курсор на новой записи CXGrid
    #39654080
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aidynchikкурсор убегает после рефреша датасета

Может, сортировка включена?
Может, происходит не refresh, а reopen?

Нужно изучать сам код.
...
Рейтинг: 0 / 0
Установить курсор на новой записи CXGrid
    #39654089
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aidynchik,

Не знаю, как там в cxDBGrid, а в dxDBGrid было свойство OptionsBehavior --> [edgoEnterThrough]. Может его отключить (если оно еще осталось, конечно)

из справки :
edgoEnterThrough - ENTER press moves focus to the next column. This option is only effective when edgoEnterShowEditor is active.
...
Рейтинг: 0 / 0
Установить курсор на новой записи CXGrid
    #39654101
zinpub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Получать значение генератора через DB.GenID, а потом locate
...
Рейтинг: 0 / 0
Установить курсор на новой записи CXGrid
    #39654643
aidynchik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Как вариант, настроить в НД TpFIBDataset свойства, отвечающие за получение нового ID
блин может я туплю, но где просмотреть-то этот новый ID? как его получить? не нашел свойства такого в датасете, там есть свойсвто UseReturningFields, но куда они возвращаются не пойму
...
Рейтинг: 0 / 0
Установить курсор на новой записи CXGrid
    #39654644
aidynchik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

забыл написать, что да так и сделал, настроил AutoUpdate
...
Рейтинг: 0 / 0
Установить курсор на новой записи CXGrid
    #39654655
aidynchik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zinpubПолучать значение генератора через DB.GenID, а потом locate
сделал так, не замечал раньше такого свойства у DataBase
Спасибо!
...
Рейтинг: 0 / 0
Установить курсор на новой записи CXGrid
    #39654674
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aidynchikблин может я туплю, но где просмотреть-то этот новый ID? как его получить?

Он автоматически прописывается в поле ID, ну т.е. в ключевое поле.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Установить курсор на новой записи CXGrid
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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