AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.01.2007, 17:18   #1  
iolanna is offline
iolanna
Участник
 
38 / 10 (1) +
Регистрация: 25.10.2006
CustomerLE.SETRANGE("Posting Date", 0D, BeginDate - 1);
CustomerLE.CALCFIELDS(Amount,"Amount (LCY)");
поле Amount FlowField
Но после этого выводит все равно 0
Старый 30.01.2007, 18:51   #2  
OntheJump is offline
OntheJump
Участник
 
165 / 10 (1) +
Регистрация: 31.10.2006
поле Amount "собирает" суммы по таблице "Detailed Cust. Ledg. Entry" а не по Customer Ledger Entry

используйте поле Date Filter вместо Posting Date


и, кстати, какая цель этого куска кода?
Старый 31.01.2007, 10:26   #3  
Corleone is offline
Corleone
Участник
 
355 / 10 (1) +
Регистрация: 27.05.2004
Адрес: London
Цитата:
Сообщение от OntheJump Посмотреть сообщение
поле Amount "собирает" суммы по таблице "Detailed Cust. Ledg. Entry" а не по Customer Ledger Entry

используйте поле Date Filter вместо Posting Date
Код правильный, ошибка где-то в другом месте. Вероятно код написан не на том триггере. По информации, которая дана нельзя ничего сказать определенно.
Старый 31.01.2007, 10:51   #4  
DA_NEAL is offline
DA_NEAL
Участник
Аватар для DA_NEAL
Лучший по профессии 2017
Лучший по профессии 2009
 
788 / 54 (3) ++++
Регистрация: 05.08.2002
Адрес: Королев
код кривоват...

Нет позиционирования на CustomerLE, надо бы FIND добавить.... да и по логике кода не видно чего хочет программер
__________________
Want to believe...
Старый 31.01.2007, 11:20   #5  
OntheJump is offline
OntheJump
Участник
 
165 / 10 (1) +
Регистрация: 31.10.2006
Цитата:
Сообщение от Gmc Посмотреть сообщение
Цитата:
Сообщение от OntheJump Посмотреть сообщение
поле Amount "собирает" суммы по таблице "Detailed Cust. Ledg. Entry" а не по Customer Ledger Entry

используйте поле Date Filter вместо Posting Date
Код правильный, ошибка где-то в другом месте. Вероятно код написан не на том триггере. По информации, которая дана нельзя ничего сказать определенно.
вот формула поля Amount
Код:
Sum("Detailed Cust. Ledg. Entry".Amount WHERE 
(Cust. Ledger Entry No.=FIELD(Entry No.),
Entry Type=FILTER(бла-бла-бла),
Posting Date=FIELD(Date Filter)))
Интересно, каким образом на поле Amount будет влиять фильтр по полю "Posting Date"?
Старый 31.01.2007, 11:56   #6  
Corleone is offline
Corleone
Участник
 
355 / 10 (1) +
Регистрация: 27.05.2004
Адрес: London
Я и говорю что не скажешь ничего, но калкфиклдс вычислит поля для текущей записи независимо от фильтра на DateFilter. Если FIND поставить.
Старый 31.01.2007, 12:07   #7  
OntheJump is offline
OntheJump
Участник
 
165 / 10 (1) +
Регистрация: 31.10.2006
Как это независимо от фильтра, если этот фильтр участвует в формуле?
Старый 31.01.2007, 12:35   #8  
Corleone is offline
Corleone
Участник
 
355 / 10 (1) +
Регистрация: 27.05.2004
Адрес: London
Для одной записи посчитает, которая уже отфильтрована по 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  
DA_NEAL is offline
DA_NEAL
Участник
Аватар для DA_NEAL
Лучший по профессии 2017
Лучший по профессии 2009
 
788 / 54 (3) ++++
Регистрация: 05.08.2002
Адрес: Королев
еще раз говорю не хватает только FIND после установки фильтра... datefilter вообще ни причем.
__________________
Want to believe...
Старый 31.01.2007, 13:07   #10  
OntheJump is offline
OntheJump
Участник
 
165 / 10 (1) +
Регистрация: 31.10.2006
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  
Corleone is offline
Corleone
Участник
 
355 / 10 (1) +
Регистрация: 27.05.2004
Адрес: London
Цитата:
Сообщение от OntheJump Посмотреть сообщение
DateFilter может и причем все-таки мы не знаем точно чего хочет автор.

А вот циклы в таких случаях точно не лучшее решение.
Ты же не знаешь чего хочет автор, может цикл это как раз то чего он хочет. Или он хочет код на OnAfterGetRecord написать.
Старый 31.01.2007, 13:30   #12  
OntheJump is offline
OntheJump
Участник
 
165 / 10 (1) +
Регистрация: 31.10.2006
Автора в студию
Старый 31.01.2007, 13:34   #13  
Corleone is offline
Corleone
Участник
 
355 / 10 (1) +
Регистрация: 27.05.2004
Адрес: London
Он просто разместил объяву
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 15:48.