Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.11.2010, 16:17   #1
George2010
Пользователь
 
Регистрация: 31.08.2010
Сообщений: 11
По умолчанию Info Power DBGrid

Я работаю с Info Power DBGrid, Подключился к ClientDataSet через
DataSource.

И у меня возникла следущая проблема:
В SQL запросе я указываю следующие поля Select ID,Naim,DataFakt...
ID - это уникальный идентификатор. В DBGrid отображаются все
поля кроме ID(это служебная информация, которую пользователю
знать не обязательно).Я этот столбец скрываю
DBGrid.Columns[0].Visible := false. Но программе надо знать этот
столбец. Через компонент DBGrid (св-во GetFieldValue) можно
получить значения только тех ячеек, которые отображаются на экране.
Когда выделена одна запись значение ID я получаю через ClientDataSet
ID := ClientDataSet1.FieldByName('ID').As Integer.

Как получить значения ID когда выделено несколько записей я не знаю.
Перерыл все св-ва Info Power DBGrid и ClientDataSet, но ничего не
нашел. Менять DBGrid на другой уже поздно.

Поскажите, что делать в такой ситуатции.
Заранее благодарен.
George2010 вне форума Ответить с цитированием
Старый 08.11.2010, 16:32   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Поскажите, что делать в такой ситуатции.
Идти в штатный хэлп и смотреть свойства DBGrid.
Есть такое свойство - SelectedRows с примером использования в Дельфи.
mihali4 вне форума Ответить с цитированием
Старый 08.11.2010, 16:46   #3
Antimol
Пользователь
 
Регистрация: 07.04.2007
Сообщений: 11
По умолчанию

Я подозреваю что Info Power DBGrid наследуется от стандартного DBGrid, Есл это так, то ищи в сторону Bookmark, как я понимаю туда заносится список выделенных элементов.
Лучшее спасибо это "+" к репутации
Информатизация: Delphi,SQL, Разбор ошибок и проектов....
Antimol вне форума Ответить с цитированием
Старый 08.11.2010, 17:09   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

SelectedRows как раз с букмарками и работает
mihali4 вне форума Ответить с цитированием
Старый 09.11.2010, 11:09   #5
George2010
Пользователь
 
Регистрация: 31.08.2010
Сообщений: 11
По умолчанию

Получить список выделенных строк я могу.
С помощью св-в GetRowCount, SetActiveRow, IsSelected.
А вот как считать ID(значение столбца, который не видим)
я не знаю.
Насчет BookMark я посмотрю.
George2010 вне форума Ответить с цитированием
Старый 09.11.2010, 11:45   #6
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Цитата:
А вот как считать ID(значение столбца, который не видим)
я не знаю.
Значит, обращайся не к Grid-у, а к DataSet-у.
Поле ID у тебя в запросе стоит первым... т.е. с нулевым индексом.
Вот и вытаскиваем все значения ID в выделенных строках:

Код:
var i: Integer;
  SL: TStringList;
begin
  SL := TStringList.Create;
  if Grid.SelectedRows.Count > 0 then
    with Grid.DataSource.DataSet do
      for i := 0 to Grid.SelectedRows.Count - 1 do
      begin
        GotoBookmark(pointer(Grid.SelectedRows.Items[i]));
        SL.Add(Fields[0].AsString);
      end;
  ShowMessage(SL.Text);
  SL.Free;
end;
_SERGEYX_ вне форума Ответить с цитированием
Старый 11.11.2010, 11:33   #7
George2010
Пользователь
 
Регистрация: 31.08.2010
Сообщений: 11
По умолчанию

Через BookMark получилось считать ID
у выделенных строк.

Спасибо.
George2010 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить Version Info FelixKoT Общие вопросы Delphi 7 11.01.2010 01:45
Ip info CodSharp Общие вопросы .NET 7 29.10.2009 15:28
MiTeC System Info CraZZy RabbIt Компоненты Delphi 2 01.05.2009 14:04
WDF/Info Slava62 Софт 1 17.03.2009 12:39