Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

DBGridEh.SumList [D6, D7, MSSQL]


Andriy Tysh ©   (2003-12-30 11:16:00) 

Есть DBGridEh на ClientDataSet"е. В гриде есть футер по калькулитивному полю Suma. В ClientDataSet на OnCalcFields исчисляется Suma. Оно исчесляется в зависимости от общей площади, и эта зависимость задает результат для каждого значения Суммы. Но по окончанию редактирования записи, футер показывает неверное число. Тоесть подсчитывает плохо.

В чём проблема? Может подсчёт футера быстрее происходит чем "калькуляция" полей в Клиенте? И как этого избежать?


Andriy Tysh   (2003-12-30 14:54:00) [1]

Ставлю перещёт руками на АфтерПост клыента - всё нормально.
А если там же ставить SumList.RecalcAll - ноль реакции.

Прикол в том, что есть ещё две суммы по полях Kilk и Square, то они чётко общитываются. Это и понятно! А эта нет.

Ещё, на OnCalcFields стоит присвоение значений полю Suma, напр.,

FieldByName("Suma").AsFloat:=ifthen(Общая площадь < 20, 30,
ifthen(Общая площадь < 30, 28))

Такий вложений проверок условий 5. Может тут собака зарыта?


Andriy Tysh   (2003-12-30 13:13:00) [2]


> Всё вроде бы верно...Если учесть, что и SumList.Active True

True точно! А VirtualRecord и ExternalRecalc = False.


Johnmen   (2003-12-30 12:55:00) [3]

>Andriy Tysh © (30.12.03 12:51)

Всё вроде бы верно...Если учесть, что и SumList.Active True


Andriy Tysh   (2003-12-30 12:51:00) [4]


> Johnmen © (30.12.03 11:50) [6]

Нет сети к моему компу, то попробую приблезительно описать.
У колонки, которая отображает поле Suma в свойстве Footer изменил лиш два свойства Field и тип(не помню название этого значения точно), но поставил Суммировать(там есть статик текст, ноу, коунт и т.д.). Вот и все. Потом делается калькуляция. Но видимо она позже идет, чем исчисление общей суммы.


> Hooch © (30.12.03 11:50) [7]
> странно, у меня без всяких RecalcAll работает. Ты точно
> по Enter запись постиш ?

Вообщето да. Я как бросил Грид, так кроме внешнего вида ничего не менял. Но если я случайно это сделал, то подскажите "что я сделал", ибо не запомнил!


Johnmen   (2003-12-30 11:50:00) [5]

Последний вопрос. Как был задан футер с суммой ?


Hooch   (2003-12-30 11:50:00) [6]

странно, у меня без всяких RecalcAll работает. Ты точно по Enter запись постиш ?


Andriy Tysh   (2003-12-30 11:40:00) [7]


> Johnmen © (30.12.03 11:36) [4]
По какому полю сумма ?

по калькулитивному полю Suma типа ftFloat

> И показывается ли она в отсутствии редактирования ?

да, в футере


Johnmen   (2003-12-30 11:36:00) [8]

>Andriy Tysh ©

По какому полю сумма ? И показывается ли она в отсутствии редактирования ?


Andriy Tysh   (2003-12-30 11:33:00) [9]


> Johnmen © (30.12.03 11:23) [1]

Делал - не помогает. Актив:=Фалсе; Актив:=Тру. Тоже делал.

> Hooch © (30.12.03 11:24) [2]

Согласен, но ставлю на АфтерПост - SumList.RecalcAll; - ему до фени.
Вед должен бы был перещитать принудительно все поля, но...
Может только у меня, но примочек крутых я не делал!


Hooch   (2003-12-30 11:24:00) [10]

что значит "по окончании редактирования" ? Запись то постится, пока Post не сделается футеры не пересчитаются


Johnmen   (2003-12-30 11:23:00) [11]

SumList.RecalcAll;


Наверх

Титульная страница Поиск, карта сайта Написать письмо