IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Навигация по DBGrid, Навигация в списке DBGrid
сообщение
Сообщение #1


Ветеран Броуновского Движения
***

Группа: Пользователи
Сообщений: 281
Пол: Мужской
Реальное имя: Сергей

Репутация: -  0  +


Добрый день! Может кто сталкивался с подобной проблемой. Использую DBGrid, ClientDataSet, DataSource для вывода данных из Оркалинной БД. Пользователь может добавлять, редактировать или удалять записи. Все действия выполняются отлично, но после выполнения обновления и чтоб наверняка обновляю запросом повторным, DBGrid улетает в начало списка. Как при добавлении записи перевести на новую запись, при редактировании оставить на отредактированной записи, при удалении оставить на месте предыдущей?
Еще вопрос, немного не в тему. Использую в качестве справочника DBLookupComboBox. Как перейти, при уже заполненном данными DBLookupComboBox к строке в которой такое же значение как и в поле редактируемой записи?

Сообщение отредактировано: Atreides -


--------------------
Отрадно спать, отрадней камнем быть, О, этот век, преступный и постыдный, Не жить, не чувствовать - удел завидный. Прошу, молчи, не смей меня будить!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Цитата
Как при добавлении записи перевести на новую запись, при редактировании оставить на отредактированной записи, при удалении оставить на месте предыдущей?
TBookmark использовать во всех трех случаях. Перед тем, как произвести действие с базой, запоминай в букмарке ту позицию, куда потом надо вернуться, после произведения действия - обновляй грид и возвращайся в запомненную позицию.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Ветеран Броуновского Движения
***

Группа: Пользователи
Сообщений: 281
Пол: Мужской
Реальное имя: Сергей

Репутация: -  0  +


Цитата(volvo @ 9.03.2011 12:47) *

TBookmark использовать во всех трех случаях. Перед тем, как произвести действие с базой, запоминай в букмарке ту позицию, куда потом надо вернуться, после произведения действия - обновляй грид и возвращайся в запомненную позицию.

А можно пример, пожалуйста, а то никогда не работал с такой компонентой. С добавлением нашел просто выход - ClientDataSet.Last

Сообщение отредактировано: Atreides -


--------------------
Отрадно спать, отрадней камнем быть, О, этот век, преступный и постыдный, Не жить, не чувствовать - удел завидный. Прошу, молчи, не смей меня будить!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Цитата
А можно пример, пожалуйста, а то никогда не работал с такой компонентой.
В хелпе должен быть пример использования. Вот из онлайн-документации: Marking and Returning to Records

Цитата
С добавлением нашел просто выход - ClientDataSet.Last
А если данные будут добавлены не в самый конец набора? Тогда что? Добавил в середину, и перешел к последнему элементу? Все ж зависит от того, как у тебя происходит сортировка при выводе...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Ветеран Броуновского Движения
***

Группа: Пользователи
Сообщений: 281
Пол: Мужской
Реальное имя: Сергей

Репутация: -  0  +


Цитата(volvo @ 11.03.2011 10:54) *

В хелпе должен быть пример использования. Вот из онлайн-документации: Marking and Returning to Records

Спасибо, пригодиться!

Цитата(volvo @ 11.03.2011 10:54) *

А если данные будут добавлены не в самый конец набора? Тогда что? Добавил в середину, и перешел к последнему элементу? Все ж зависит от того, как у тебя происходит сортировка при выводе...


А у меня в таблице добавленные записи всегда с новым идентификатором пишутся (+1). Подобрал вот такой способ для прыжка на место записи -
Код
  
  st := 'select * from .... order by идентификатор записи';
    Form1.ClientDataSet1.close;
    Form1.ClientDataSet1.DataRequest(st);
    Form1.ClientDataSet1.open;
FOrm1.ClientDataSet1.Locate('Искомое поле', VarArrayOf([TRIM(Form1.Edit2.text)]), [loPartialKey]);


--------------------
Отрадно спать, отрадней камнем быть, О, этот век, преступный и постыдный, Не жить, не чувствовать - удел завидный. Прошу, молчи, не смей меня будить!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 3.12.2020 23:28
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name