Гость
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Подсчет суммы циклом / 9 сообщений из 9, страница 1 из 1
22.09.2006, 06:37
    #34004794
nothx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет суммы циклом
Почему получается сумма равная 100, хотя должно быть 90.

Вот формула по кот эта сумма считается:
Код: plaintext
1.
2.
3.
4.
5.
6.
WhilePrintingRecords;
numberVar  i;
numberVar  c:= 0 ;
for  i:= 1   to count({tab1.id_s}) do
c:= c + {tab1.summa};
c;
...
Рейтинг: 0 / 0
22.09.2006, 11:36
    #34005505
Peter Kirillow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет суммы циклом
цикл здесь можно использовать только из любви к искусству )
и то это не верный подход...

просто добавить сумму по колонке не проще ?
...
Рейтинг: 0 / 0
22.09.2006, 12:04
    #34005650
nothx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет суммы циклом
конечно проще, просто хочу понять как цикл работает и почему неправильную сумму показывает и как это исправить?
...
Рейтинг: 0 / 0
22.09.2006, 12:18
    #34005714
Peter Kirillow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет суммы циклом
все просто
если приведенная формула расположена в RF, то она 5 раз просумировала последнюю сумму (20)
)))
...
Рейтинг: 0 / 0
22.09.2006, 12:31
    #34005763
nothx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет суммы циклом
ну, так тогда подсчитать все равно не могу понять, может это не возможно сделать?
...
Рейтинг: 0 / 0
22.09.2006, 12:44
    #34005819
Peter Kirillow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет суммы циклом
ну почему невозможно
стандартный подход здесь описывался не раз

создаем инициализатор переменных и вставляем его в ту секцию, где они должны обнуляться (если достаточно одного раза, то в RH)

_initialize:
WhilePrintingRecords;
NumberVar total_sum;
total_sum := 0;

потом переменную, где все будет считаться (_calculate)

WhilePrintingRecords;
NumberVar total_sum;
total_sum := total_sum + {tab1.summa}

в нашем случае помещаем в Details и скрываем
все. на выходе получаем сумму в переменной total_sum.

заводим еще одну переменную в которую вставляем сл. код:
WhilePrintingRecords;
NumberVar total_sum;
total_sum

но вот именно в данном случае не стоит так извращаться. это требуется исключительно в сложных ситуациях.
...
Рейтинг: 0 / 0
22.09.2006, 15:02
    #34006474
nothx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет суммы циклом
хм, работает, хороший способ, но только опять я не вижу цикла(
Код: plaintext
for
) :), все таки с помощью
Код: plaintext
 for 
это не возможно сделать :)
...
Рейтинг: 0 / 0
22.09.2006, 15:18
    #34006556
Peter Kirillow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет суммы циклом
ну не может быть в этом контексте цикла !
мы же написали WhilePrintingRecords, а значит вычисления последовательные и бесповоротные.
Получить доступ к полю можно только когда оно считывается или выводится процессом и поэтому тут совсем другая идеология. Советую почитать таки в мануале про концепцию.
...
Рейтинг: 0 / 0
22.09.2006, 16:44
    #34006865
nothx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет суммы циклом
понял, спасибо
...
Рейтинг: 0 / 0
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Подсчет суммы циклом / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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