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

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

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

Devexpress ExpressQuantumGrid.

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

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

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

Нужно изучать сам код.
...
Рейтинг: 0 / 0
01.06.2018, 15:58
    #39654089
Кроик Семён
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Установить курсор на новой записи CXGrid
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
01.06.2018, 16:14
    #39654101
zinpub
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Установить курсор на новой записи CXGrid
Получать значение генератора через DB.GenID, а потом locate
...
Рейтинг: 0 / 0
04.06.2018, 08:04
    #39654643
aidynchik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Установить курсор на новой записи CXGrid
X11Как вариант, настроить в НД TpFIBDataset свойства, отвечающие за получение нового ID
блин может я туплю, но где просмотреть-то этот новый ID? как его получить? не нашел свойства такого в датасете, там есть свойсвто UseReturningFields, но куда они возвращаются не пойму
...
Рейтинг: 0 / 0
04.06.2018, 08:05
    #39654644
aidynchik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Установить курсор на новой записи CXGrid
X11,

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

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


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