Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как посчитать сумму выделеных ячеек DBGrid 
:(
    Опции темы
Snickbw
Дата 10.11.2006, 08:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 10.11.2006

Репутация: нет
Всего: нет




В Excel есть прибамбас, выделяем ячейки и если они числовые то в низу считается сумма всех выделеных ячеек.
Вопрос: как реализовать такую же возможность в DBGrid (DBGridEh).

В DBGridEh из библиотеки EhLib выделить отдельные ячейки просто, а вот как посчитать сумму этих ячеек не перебирая весь TDataSet к которому подключен DBGrid? 
PM MAIL   Вверх
Akella
Дата 10.11.2006, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Пример, как работать с выделенными ячейками
Код

 procedure TfmMain.OtborByEhGrid(FromGrid,ToGrid:TDBGridEh);
 var
  ASelectionType: TDBGridEhSelectionType;
  i:Integer;
 begin
   if (FromGrid = nil) or (ToGrid = nil) then Exit;

   Screen.cursor := crSQLWait;
   with FromGrid, FromGrid.datasource.dataset do
   try
    DisableControls;
    SaveBookmark;
    ASelectionType := Selection.SelectionType;

    case ASelectionType of
      gstRecordBookmarks: begin
        for i := 0 to  Selection.Rows.Count - 1 do begin
            Bookmark := Selection.Rows[I];
            OtborOneRecord(FromGrid.datasource.dataset, (ToGrid as TDBGridEh).datasource.dataset);
         end;
        Selection.Clear;
      end;

      gstRectangle:       begin
        Bookmark := Selection.Rect.TopRow;
        while True do begin
          OtborOneRecord(FromGrid.datasource.dataset, (ToGrid as TDBGridEh).datasource.dataset);
          if DataSetCompareBookmarks(FromGrid.DataSource.Dataset, Selection.Rect.BottomRow, Bookmark) = 0 then Break;
          Next;
          if Eof then Break;
        end;//while

      end;

      gstAll, gstColumns: begin
        first;
        while not eof do begin
          OtborOneRecord(FromGrid.datasource.dataset, (ToGrid as TDBGridEh).datasource.dataset);
          next;
        end;
      end;

      gstNon:             begin
        OtborOneRecord(FromGrid.datasource.dataset, (ToGrid as TDBGridEh).datasource.dataset);
      end;

    end;//case
   finally
    RestoreBookmark;
    EnableControls;
    Screen.cursor := crDefault;
   end;//try-finally
 end;


PM MAIL   Вверх
Snickbw
Дата 10.11.2006, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



Ok. Спасибо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.1837 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.