Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Итоговая сумма - пересчет по фильтру / 9 сообщений из 9, страница 1 из 1
16.08.2002, 10:50
    #32043807
MichaelGK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итоговая сумма - пересчет по фильтру
В проекте ленточная форма, в примечании которой поле выводящее итоговую сумму = Sum([SumDoc]), юзер накладывает фильтр, а сумма-то не пересчитывается. Как разрешить проблему без применения сервернрго фильтра?
...
Рейтинг: 0 / 0
16.08.2002, 15:05
    #32043931
alk
alk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итоговая сумма - пересчет по фильтру
в A2002 можно сделать следующим образом

выводишь сумму поле типа "список"
источник записей для которого формируется программно в звисимости от фильтра

типа

sqlstring = "select sum(myfield) from mytable where 1=1 and " & me.filter

me.spisok.recordsource = sqlstring
...
Рейтинг: 0 / 0
20.08.2002, 13:10
    #32044533
MichaelGK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итоговая сумма - пересчет по фильтру
Не проходит.... У меня данные для формы собираютсяся очень геморно кучей UDF(такая мне досталась база), для ускорения и удобства юзера я конечный набор гружу во временную таблицу из которой форма его и отображает. Т.е. по моей задумке юзер будет фильтровать. сортировать и пр. без перезапуска всей вычислительной байды... Все работает хорошо за исключением злосчастного итога... запрос для списка не видит временную таблицу. Может в каком-то сервиспаке Билл устранил заморочку с итоговой суммой?
...
Рейтинг: 0 / 0
20.08.2002, 14:15
    #32044584
ДиД
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итоговая сумма - пересчет по фильтру
Сумма считается к тому набору, который пришел с сервера. Значит что? Правильно. Надо применять фильтр на стороне сервера. Составьте правильный запрос, который Вам будет возвращать с сервера то, что нужно. После изменения фильтра заново обновляйте данные на форме (заново запускаете запрос). Работает как часы.
...
Рейтинг: 0 / 0
20.08.2002, 16:07
    #32044647
MichaelGK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итоговая сумма - пересчет по фильтру
Уважаемый Дид. Спасибо за совет, но Вы, вероятно, не поняли, что для меня не желательно перезапукать процедуры на сервере только для того , чтобы получить итог по поднабору данных т.е. серверный фильтр не подходит. Строка для формирования Источника строк к списку, имитирующему итоговое поле, не срабатывает, т.к. данные находятся во временной таблице - селект выражене почему-то ее не признает. Я придумал еще один ход: подсчитываю сумму в цикле Me.Recordset ... По событию Apply Filter применяю метод Filter к Rs = Me.Recordset и присваиваю это значение свободному полю. Работает... , а как пересчитать сумму после снятия фильтра? К какому событию привязать? Пока не знаю. может подскажете.
...
Рейтинг: 0 / 0
20.08.2002, 16:57
    #32044670
ДиД
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итоговая сумма - пересчет по фильтру
У Вас форма типа:
Товар1 1000
Товар2 2000
Товар3 3000
Сумма 6000
Вы накладываете фильтр по Товар1, т.е. на экране получаете
Товар1 1000
Сумма 1000
Если запрос составить правильно, то форма будет выдавать то, что надо (и не надо страшиться запросов на сервер. они на то и существуют, чтобы Вам выдавать данные)
Я Вам предлагаю самый ПРОСТОЙ путь, чем Вы хотите где-то отдельно считать и суммировать, а потом подставлять значение в суммирующее поле.
...
Рейтинг: 0 / 0
20.08.2002, 17:19
    #32044683
MichaelGK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итоговая сумма - пересчет по фильтру
Кажется мы друг друга не понимаем. Что значит - запрос сотавлен правильно - ? О каом запросе речь?
...
Рейтинг: 0 / 0
20.08.2002, 17:38
    #32044696
ДиД
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итоговая сумма - пересчет по фильтру
У Вас форма типа:
Товар1 1000
Товар2 2000
Товар3 3000
Сумма 6000
На форме имеется поле, в котором Вы задаете значение для фильтра. Значение может быть пустым или конкретным.
впишите условие в ХП where (ПолеТаблицыГдеИдетПоиск=@T) or (@T is null)

на экране получаете
Товар1 1000
Сумма 1000
...
Рейтинг: 0 / 0
20.08.2002, 17:50
    #32044700
MichaelGK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итоговая сумма - пересчет по фильтру
Спасибо, но так я умею и меня это не устраивает...
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Итоговая сумма - пересчет по фильтру / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]