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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2009, 23:57   #1
Mayday_007
 
Регистрация: 03.04.2008
Сообщений: 7
Восклицание вычисления и изменения ячеек в dbgrid

Здравствуйте, имеется dbgrid --> dataSource--> query
1) как посчитать сумму столбца dbgrid???
2) допстим у нас 2 поля, ID_CLIENT && ID_TOVAR, как зная ID_CLIENT изменить ссответствующее поле ID_TOVAR в dbgrid
Заранее благодарю.
Mayday_007 вне форума Ответить с цитированием
Старый 29.05.2009, 00:18   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Значения полей меняются не в дбгриде, а в связанном с ним датасете, данные из которого он может ТОЛЬКО ОТОБРАЖАТЬ.
Поэтому, например, чтобы посчитать сумму по столбцу, нужно пробежаться по всем записям таблицы и сложить в итоговой переменной значения из поля таблицы, соответствующего этому столбцу... Либо через SQL, функция SUM.
По второму вопросу. Либо через SQL-запрос (что проще), либо сначала Locate на нужный ID_TOVAR по известному ID_CLIENT, а затем Edit, Post...

Последний раз редактировалось mihali4; 29.05.2009 в 00:22.
mihali4 вне форума Ответить с цитированием
Старый 29.05.2009, 00:20   #3
Mayday_007
 
Регистрация: 03.04.2008
Сообщений: 7
По умолчанию

я так понимаю, что это делается все в sql, а я владею им на уровне SELECT...FROM..., не подскажите как это можно организовать на примере
Mayday_007 вне форума Ответить с цитированием
Старый 29.05.2009, 00:31   #4
Mayday_007
 
Регистрация: 03.04.2008
Сообщений: 7
По умолчанию

Удалось и без SQL
Вот код
Код:
   dbgrid7.DataSource.DataSet.First;
   s:=0;
   while dbgrid7.DataSource.DataSet.Eof<>true do begin
   t:=strtoint(dbgrid7.DataSource.DataSet.FieldByName('cena').Text);
   s:=s+t;
   dbgrid7.DataSource.DataSet.Next;
   end;
 edit17.Text:=inttostr(s);
Есть правила раздела. А в них - пункт 3.
По поводу нескольких постов подряд и насчет использования кнопки "Правка"...
Один товарищ на меня сегодня уже обиделся. Пришлось штрафануть.
Так что рекомендую почитать правила.

Последний раз редактировалось mihali4; 29.05.2009 в 00:37.
Mayday_007 вне форума Ответить с цитированием
Старый 29.05.2009, 00:34   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

1. Select sum(qty) FROM sales
2. update Table2 SET Table1ID = 0 where PoleID = OLD.ID;
mihali4 вне форума Ответить с цитированием
Старый 29.05.2009, 00:37   #6
Mayday_007
 
Регистрация: 03.04.2008
Сообщений: 7
По умолчанию

спасибо, все вышло
Mayday_007 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перенос данных из DBGrid в DBGrid KingSize БД в Delphi 17 24.04.2009 09:30
Изменения данных большого числа ячеек NDEV Microsoft Office Excel 2 21.11.2008 13:49
запомнить значения ячеек dbgrid unit-85 Помощь студентам 4 22.10.2008 12:04
Выборка значений ячеек DBGrid Македонский БД в Delphi 3 05.12.2007 07:10