Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Обновление данных в cxGrid и сохранение выделенной записи в Delphi XE2

Delphi , Базы данных , Sybase

Обновление данных в cxGrid и сохранение выделенной записи в Delphi XE2

При разработке программного обеспечения с использованием Delphi XE2 и компонентов cxGrid часто возникает необходимость обновлять данные в гриде и сохранять выделенную запись. В этой статье мы рассмотрим несколько способов решения этой задачи.

Поддержка свежих данных в cxGrid

Чтобы обновить данные в cxGrid, вам необходимо обновить связанный с ним набор данных. Одним из простых способов добиться этого является закрытие и последующее открытие набора данных. Вот пример кода на Object Pascal (Delphi), демонстрирующий это:

dataset.Close;
dataset.Open;

После выполнения этого кода cxGrid автоматически обновит отображаемые данные.

Если вы хотите обновить данные вручную, вы можете использовать метод RefreshExternalData компонента cxGridTableView.DataController. Этот метод обновляет данные в гриде, не меняя текущую позицию или выделение. Вот пример кода:

cxGridTableView.DataController.RefreshExternalData;

Сохранение выделенной записи в cxGrid

Чтобы сохранить выделенную запись в cxGrid и вернуть к ней фокус после обновления данных, можно использовать несколько подходов.

  1. Использование закладок (bookmarks)

Один из способов сохранить выделенную запись - использовать закладки (bookmarks) набора данных. Закладка - это маркер, который позволяет быстро перемещаться к определенной записи в наборе данных. Чтобы сохранить текущую запись, вы можете использовать метод GetBookmark набора данных:

Bookmark := dataset.GetBookmark;

После обновления данных вы можете вернуть фокус к сохраненной записи, используя метод GotoBookmark:

dataset.GotoBookmark(Bookmark);
  1. Использование метода locate набора данных

Вместо закладок вы можете использовать метод locate набора данных, чтобы сохранить и восстановить выделенную запись. Для этого нужно сохранить значение первичного ключа текущей записи и использовать его для поиска записи после обновления данных. Вот пример кода:

KeyValue := dataset.FieldByName('PK').AsDataType;
dataset.Close;
dataset.Open;
dataset.Locate('PK = ?', [KeyValue]);

В этом примере 'PK' - это имя поля первичного ключа в наборе данных. Замените 'PK' на имя своего первичного ключа.

  1. Использование компонента cxStatusKeeper

Если вы предпочитаете не использовать закладки или метод locate, вы можете воспользоваться компонентом cxStatusKeeper, разработанным Devexpress. Этот компонент позволяет сохранять и восстанавливать состояние грида, включая выделение и фокус. Вот пример кода, демонстрирующий использование cxStatusKeeper:

FGridStatus := TcxGridDBTableKeeper.Create(self);
FGridStatus.LoadExpanding   := False;
FGridStatus.LoadSelection   := True;
FGridStatus.LoadFocus       := True;
FGridStatus.LoadTopRecord   := False;
FGridStatus.LoadWithDetails := False;
FGridStatus.LoadFocusedView := True;
FGridStatus.LoadFocusedItem := True;
FGridStatus.View            := gvTableElementi;

FGridStatus.Store;

if FGridStatus.GridStored then
  FGridStatus.Restore;

В этом примере мы создаем экземпляр cxStatusKeeper, настраиваем его свойства и сохраняем текущее состояние грида с помощью метода Store. После обновления данных мы восстанавливаем состояние грида, используя метод Restore.

Заключение

В этой статье мы рассмотрели несколько способов обновлять данные в cxGrid и сохранять выделенную запись в Delphi XE2. Вы можете выбрать наиболее подходящий для вас метод, в зависимости от ваших конкретных требований и предпочтений. Независимо от выбранного метода, важно помнить, что правильное управление данными и сохранение выделенной записи могут значительно улучшить пользовательский интерфейс вашего приложения.

Создано по материалам из источника по ссылке.

В данном контексте рассматривается задача обновления данных в компоненте cxGrid и сохранения выделенной записи в приложении, разработанном с использованием Delphi XE2.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




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


:: Главная :: Sybase ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 13:19:41/0.0055711269378662/1