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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2010, 18:20   #1
tavrocotaps
Пользователь
 
Аватар для tavrocotaps
 
Регистрация: 16.08.2008
Сообщений: 56
По умолчанию dbGridEh и выбор нескольких строк

Нужно обеспечить выбор строк в таблице произвольно, с возможностью обрабатывать только выбранные строки, пробовал создать подстановочное с CheckBox-ами из виртуальной таблици - Column в dbGridEh не активен, пробовал добавить поле в DataSet - тот же результат, в крайнем случае подойдет и MultiSelect, но как обрабатывать только выбранные строки?
Для доступа к БД использую ODAC, для отображения данных EhLib. Для грида, датасета, column в датасете и гриде поле ReadOnly установленео в false, но редактировать ни одно поле в гриде все равне недает.
forever trusting who we are...
tavrocotaps вне форума Ответить с цитированием
Старый 20.01.2010, 18:55   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

А что, стандартных свойств дбгрида:
SelectedField
SelectedIndex
SelectedRows

не хватает ?

ДБГрид показывает выборку, а не всю таблицу ?
Тогда редактируйте SQL-запросом.
Не даст она вам редактировать выборку.

Последний раз редактировалось mihali4; 20.01.2010 в 19:12.
mihali4 вне форума Ответить с цитированием
Старый 20.01.2010, 22:26   #3
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

С dbGridEh я делал так (я про выбранные строки) :
Код:
  ...
  ...
if Grid.SelectedRows.Count >= 0 then   // если есть выбраные строки - идем по ним, 
                                                              // если интересует ситуация только если выбрано 2 и более строк, то делал условие : 
                                                              // if Grid.SelectedRows.Count >= 2 then
    begin
        ABSQuery.DisableControls;// если выбранных строк довольно много - это увеличит скорость прохода по ним...
        for i := 0 to Grid.SelectedRows.Count-1 do
          begin
          ...
          ABSQuery.GotoBookmark(TBookmark(Grid.SelectedRows[i]));  // встали на очедную "выбранную" строку грида, т.е. соответствующую запись
          ... здесь что-то делаем с соответствующей записью
          ...
          end;
        ABSQuery.EnableControls;
Здесь:
Grid - это dbGridEh;
ABSQuery - запрос к которому привязан грид (Grid)
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 20.01.2010, 23:31   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

А если Bookmark-и не ставились ?
А если попроще ?
Код:
Table1.First;
while not Table1.Eof do
begin
if DBGrid1.SelectedRows.CurrentRowSelected then
//Ту мы что-то делаем - показываем содержимое какого-то поля только в выбранных записях
ShowMessage(Table1.FieldByName('Numb').AsString);
Table1.Next;
Application.ProcessMessages;
end;
mihali4 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выбор ячеек по условию из нескольких листов hamlook Microsoft Office Excel 10 10.11.2009 16:00
Матрица, паскаль. Выбор строк. ene21 Помощь студентам 4 26.09.2009 00:40
Выбор нескольких максимумов romir Microsoft Office Excel 4 18.09.2009 11:18
Копирование нескольких строк из dbgrida в dbgrid eviL_exP БД в Delphi 2 11.06.2009 12:37
SQL-запрос на выбор повторяющихся строк stepchild БД в Delphi 2 07.06.2008 10:52