30.01.2007, 17:18 | #1 |
Участник
|
CustomerLE.SETRANGE("Posting Date", 0D, BeginDate - 1);
CustomerLE.CALCFIELDS(Amount,"Amount (LCY)"); поле Amount FlowField Но после этого выводит все равно 0 |
|
30.01.2007, 18:51 | #2 |
Участник
|
поле Amount "собирает" суммы по таблице "Detailed Cust. Ledg. Entry" а не по Customer Ledger Entry
используйте поле Date Filter вместо Posting Date и, кстати, какая цель этого куска кода? |
|
31.01.2007, 10:26 | #3 |
Участник
|
Код правильный, ошибка где-то в другом месте. Вероятно код написан не на том триггере. По информации, которая дана нельзя ничего сказать определенно.
|
|
31.01.2007, 10:51 | #4 |
Участник
|
код кривоват...
Нет позиционирования на CustomerLE, надо бы FIND добавить.... да и по логике кода не видно чего хочет программер
__________________
Want to believe... |
|
31.01.2007, 11:20 | #5 |
Участник
|
Цитата:
Код: Sum("Detailed Cust. Ledg. Entry".Amount WHERE (Cust. Ledger Entry No.=FIELD(Entry No.), Entry Type=FILTER(бла-бла-бла), Posting Date=FIELD(Date Filter))) |
|
31.01.2007, 11:56 | #6 |
Участник
|
Я и говорю что не скажешь ничего, но калкфиклдс вычислит поля для текущей записи независимо от фильтра на DateFilter. Если FIND поставить.
|
|
31.01.2007, 12:07 | #7 |
Участник
|
Как это независимо от фильтра, если этот фильтр участвует в формуле?
|
|
31.01.2007, 12:35 | #8 |
Участник
|
Для одной записи посчитает, которая уже отфильтрована по Posting Date.
Amo := 0; AmoLCY := 0; CustomerLE.RESET; //CustomerLE.SETRANGE(... CustomerLE.SETRANGE("Posting Date", 0D, BeginDate - 1); IF CustomerLE.FIND('-') THEN REPEAT CustomerLE.CALCFIELDS(Amount,"Amount (LCY)"); Amo += CustomerLE.Amount; AmoLCY += CustomerLE."Amount (LCY)" UNTIL CustomerLE.NEXT = 0; Либо как ты говоришь на Date Filter тогда без цикла. |
|
31.01.2007, 12:45 | #9 |
Участник
|
еще раз говорю не хватает только FIND после установки фильтра... datefilter вообще ни причем.
__________________
Want to believe... |
|
31.01.2007, 13:07 | #10 |
Участник
|
DateFilter может и причем все-таки мы не знаем точно чего хочет автор.
А вот циклы в таких случаях точно не лучшее решение. Лучше попробовать что-то типа этого: Код: "Detailed Cust. Ledg. Entry".SETRANGE("Customer No.", CustomerFilter); "Detailed Cust. Ledg. Entry".SETRANGE("Posting Date", 0D, BeginDate - 1); "Detailed Cust. Ledg. Entry".CALCSUMS(Amount); |
|
31.01.2007, 13:26 | #11 |
Участник
|
|
|
31.01.2007, 13:30 | #12 |
Участник
|
Автора в студию
|
|
31.01.2007, 13:34 | #13 |
Участник
|
Он просто разместил объяву
|
|