![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Помогите плиз перечитал кучу статей на форуме так и не смог сделать то что надо
Есть база созданная а access в ней есть строка "summ" - в делфи в эту строку через dbedit1 вносять сумму услуги и надо чтоб все суммы услуг суммировались в dbedit2 или лучше в lebel что-бы отредактировать по считанную сумму нельзя было. фото прикладываю в архиве, буду очень благодарен за помощь!!! |
|
#2
|
|||
|
|||
|
Вариант 1.
Считаем локально. При изменении датасета сохраняем позицию курсора, потом отключаем визуальные компоненты, проходимся по датасету суммируя, потом возвращаемся к сохраненной позиции курсора. Типа так: Код:
var
S : Currency;
BM : Pointer;
begin
S := 0;
BM := ADOQuery1.GetBookmark;
ADOQuery1.DisableControls;
Try
ADOQuery1.First;
While Not ADOQuery1.Eof Do
Begin
S := S + ADOQuery1.FieldByName('Summa').AsCurrency;
ADOQuery1..Next;
End;
Finally
ADOQuery1.GotoBookmark(BM);
ADOQuery1.EnableControls;
End;
label1.Caption := CurrToStr(S);
end;Вариант 2. На тот же момент просто вызываем запрос вида: Код:
SELECT SUM(Summa) AS Total FROM MyTable WHERE Parikmakher_id = :id Вариант 3. Пользуемся бесплатным сыром. Берем что-нить типа devExpress или похожих мощных библиотек. Там обычно такие функции уже встроенны, просто делаем настройку на показ соотв. агрегатной функции. Ну и куча промежуточных решений. У каждого есть свои плюсы и минусы. |
| Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
Ekler1 (13.06.2017)
| ||