|
Итоговая сумма - пересчет по фильтру
|
|||
---|---|---|---|
#18+
В проекте ленточная форма, в примечании которой поле выводящее итоговую сумму = Sum([SumDoc]), юзер накладывает фильтр, а сумма-то не пересчитывается. Как разрешить проблему без применения сервернрго фильтра? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2002, 10:50 |
|
Итоговая сумма - пересчет по фильтру
|
|||
---|---|---|---|
#18+
в A2002 можно сделать следующим образом выводишь сумму поле типа "список" источник записей для которого формируется программно в звисимости от фильтра типа sqlstring = "select sum(myfield) from mytable where 1=1 and " & me.filter me.spisok.recordsource = sqlstring ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2002, 15:05 |
|
Итоговая сумма - пересчет по фильтру
|
|||
---|---|---|---|
#18+
Не проходит.... У меня данные для формы собираютсяся очень геморно кучей UDF(такая мне досталась база), для ускорения и удобства юзера я конечный набор гружу во временную таблицу из которой форма его и отображает. Т.е. по моей задумке юзер будет фильтровать. сортировать и пр. без перезапуска всей вычислительной байды... Все работает хорошо за исключением злосчастного итога... запрос для списка не видит временную таблицу. Может в каком-то сервиспаке Билл устранил заморочку с итоговой суммой? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2002, 13:10 |
|
Итоговая сумма - пересчет по фильтру
|
|||
---|---|---|---|
#18+
Сумма считается к тому набору, который пришел с сервера. Значит что? Правильно. Надо применять фильтр на стороне сервера. Составьте правильный запрос, который Вам будет возвращать с сервера то, что нужно. После изменения фильтра заново обновляйте данные на форме (заново запускаете запрос). Работает как часы. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2002, 14:15 |
|
Итоговая сумма - пересчет по фильтру
|
|||
---|---|---|---|
#18+
Уважаемый Дид. Спасибо за совет, но Вы, вероятно, не поняли, что для меня не желательно перезапукать процедуры на сервере только для того , чтобы получить итог по поднабору данных т.е. серверный фильтр не подходит. Строка для формирования Источника строк к списку, имитирующему итоговое поле, не срабатывает, т.к. данные находятся во временной таблице - селект выражене почему-то ее не признает. Я придумал еще один ход: подсчитываю сумму в цикле Me.Recordset ... По событию Apply Filter применяю метод Filter к Rs = Me.Recordset и присваиваю это значение свободному полю. Работает... , а как пересчитать сумму после снятия фильтра? К какому событию привязать? Пока не знаю. может подскажете. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2002, 16:07 |
|
Итоговая сумма - пересчет по фильтру
|
|||
---|---|---|---|
#18+
У Вас форма типа: Товар1 1000 Товар2 2000 Товар3 3000 Сумма 6000 Вы накладываете фильтр по Товар1, т.е. на экране получаете Товар1 1000 Сумма 1000 Если запрос составить правильно, то форма будет выдавать то, что надо (и не надо страшиться запросов на сервер. они на то и существуют, чтобы Вам выдавать данные) Я Вам предлагаю самый ПРОСТОЙ путь, чем Вы хотите где-то отдельно считать и суммировать, а потом подставлять значение в суммирующее поле. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2002, 16:57 |
|
Итоговая сумма - пересчет по фильтру
|
|||
---|---|---|---|
#18+
Кажется мы друг друга не понимаем. Что значит - запрос сотавлен правильно - ? О каом запросе речь? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2002, 17:19 |
|
Итоговая сумма - пересчет по фильтру
|
|||
---|---|---|---|
#18+
У Вас форма типа: Товар1 1000 Товар2 2000 Товар3 3000 Сумма 6000 На форме имеется поле, в котором Вы задаете значение для фильтра. Значение может быть пустым или конкретным. впишите условие в ХП where (ПолеТаблицыГдеИдетПоиск=@T) or (@T is null) на экране получаете Товар1 1000 Сумма 1000 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2002, 17:38 |
|
|
start [/forum/topic.php?fid=45&fpage=1850&tid=1683396]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 265ms |
total: | 385ms |
0 / 0 |