![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вычисляемые поля [D6, Paradox]
BAYES © (2003-07-10 17:05:00)Всем привет!! а тем Мастерам кто поможет с вопросом ПРОСТО ОГРОМНЕЙШИЙ ПРИВЕТИШЕ. Проблема простая(для меня сложная), так вот, есть форма на ней DBGrid, Table1, DataSource1 ну и все такое что нужно для работы с БД. Есть у меня столбец(Сумма) в нем есть записи 1..n, необходимо просчитать все поля столбца и получить что-то типа, "Итого" и отобразить в Label.
Огромное спасибо кто понял мой бред и помог.
Rolf (2003-07-12 20:14:00) [1]Почитай может кое-что
об Items.Count и т п
MsGuns (2003-07-11 13:31:00) [2]Чтобы приведенный Соловьев © пример не "портил прическу" гриду (т.е. не швырял произвольно курсор с записи, где был юзер, в последнюю) и не "тормозил", сделай одно из двух:
1. Перед подсчетом запомни тек.запись (в букмарке, например), затем запрети отображение таблицы в датасорсе (Grid1.DataSource1.Enabled := false).
После завершения подсчета вернись в тек.запись юзверя (GoToBookMark или MoveBy) и включи отображение (Grid1.DataSource1.Enabled := true).
2. Используй еще один TTable на ту же таблицу. Его отображать не надо (т.е. не надо ни грида, ни источника данных), но по нему просто делать искательный цикл.
А вообще-то правильнее и существенно быстрее (да и профессиональнее) это делать запросом. В этом случае не надо проверять, в частности, наличие значения поля в КАЖДОЙ записи таблицы. Вместо лабеля можно использовать DB-Aware контролы и тогда для "освежения" суммы (или сумм) просто переоткрывать запрос.
Соловьев (2003-07-11 12:01:00) [3]
> BAYES (11.07.03 11:49)
не зачто. пример из хелпа :)))
ЮЮ (2003-07-11 11:56:00) [4]>BAYES (11.07.03 11:49)
Не забудь корректировать Label1.Text при вставке/удалении/корректировке записей, включении/выключении фильтра и т.д.
BAYES (2003-07-11 11:49:00) [5]Спасибо, друг-товаричь Соловьев!!! Все работает отлично, конечно пришлось немного подкоректировать, ну да ладно.
Вопрос? Почему те кто писал с верху начали отправлять меня к "ликбезу", почему просто не ответить если понял, а не разводить дискусию. Конечно и Вам спасибо, постораюсь не писать так дурно, буду следовать точно как написано в первоисточниках. Спасибо.
Соловьев (2003-07-10 18:07:00) [6]Что-то типа такого
with CustTable do
begin
DisableControls;
try
First;
while not Eof do
begin
Sum := Sum + FieldByName("Field2").AsInteger;
Next;
end;
finally
EnableControls;
end;
Label1.Text := IntToStr(Sum);
end;
XanderMan (2003-07-10 17:20:00) [7]> Johnmen
Согласен, но RTFM пока никто не отменял :-)
Johnmen (2003-07-10 17:19:00) [8]А если совсем серьезно, то отложи в сторону свою прогу и иди читать литературу по программированию БД.
>XanderMan © (10.07.03 17:16)
>то сделай это с помощью запроса.
Такие ответы порождают шквал новых вопросов, когда у человека нет начальных знаний предмета...:)
XanderMan (2003-07-10 17:16:00) [9]А если серьезно, то сделай это с помощью запроса.
Mike1 Kouzmine1 (2003-07-10 17:15:00) [10]Возьми TDBGRIDEh, настрой Footer и все.
XanderMan (2003-07-10 17:09:00) [11]> необходимо просчитать все поля столбца
Ты сам понял, что сказал?