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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.03.2010, 17:33   #1  
NaviStudent is offline
NaviStudent
Участник
 
5 / 10 (1) +
Регистрация: 11.03.2010
Здраствуйте!
Я уже некоторое время изучаю c/al и вот столкнулся с новым заданием. Задание такое: Нужно сформировать отчет, который должен формироваться по проданным товарам, должен формироваться за период, должен выводить информацию по реализации товара и фактическим оплатам этих продаж и содержать столбцы: продано товаров на сумму, из них оплачено, авансы (Не примененные оплаты) и сальдо (Сальдо = продано - оплачено - авансы). Отчет формируется только по учтенным данным.
Никак не могу понять из каких мест в системе берется информация, требуемая для отчета? отчет по базе cronus,Navision версии 5.0.
Заранее спасибо за помощь)
Старый 11.03.2010, 19:01   #2  
art06 is offline
art06
Участник
Аватар для art06
 
192 / 10 (1) +
Регистрация: 11.08.2006
Цитата:
Сообщение от NaviStudent Посмотреть сообщение
Здраствуйте!
Я уже некоторое время изучаю c/al и вот столкнулся с новым заданием. Задание такое: Нужно сформировать отчет, который должен формироваться по проданным товарам, должен формироваться за период, должен выводить информацию по реализации товара и фактическим оплатам этих продаж и содержать столбцы: продано товаров на сумму, из них оплачено, авансы (Не примененные оплаты) и сальдо (Сальдо = продано - оплачено - авансы). Отчет формируется только по учтенным данным.
Никак не могу понять из каких мест в системе берется информация, требуемая для отчета? отчет по базе cronus,Navision версии 5.0.
Заранее спасибо за помощь)
Операции по движению товара (продажа, покупка, расход, приход ) - таблица 32 (Item Ledger Entry)
Операции по оплатам от клиентов - таблица 21 (Cust. Ledger Entry)
Старый 11.03.2010, 22:05   #3  
NaviStudent is offline
NaviStudent
Участник
 
5 / 10 (1) +
Регистрация: 11.03.2010
Спасибо большое за ваш ответ!
Возник еще вот какой вопрос.
При использовании данных из таблицы Cust. Ledger Account для вычислений используется такая логика, насколько я понимаю:
Для получения суммы не примененных оплат, при типе документа оплата и сумме остатка меньше нуля суммируется остаток.
Для получения общей суммы продаж при типе счет идет сложение по полю сумма.
Для оплаченной суммы для типов счет складываются по строкам сумма-сумма остатка.
Вопрос в следующем: в report designer добавляется таблица Cust. Ledger Account, но фактически перед выводом значений в отчет должна применяться описанная логика.
Как это реализуется в системе?
Старый 11.03.2010, 23:35   #4  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
не Customer Ledger Account, а Customer Ledger Entry, наверное.
в этой таблице есть поля Сумма Продажи (Amount) и Сумма Остатка (Remaining Amount), т.е. сумма за вычетом применений, оплат.
эти поля физически в таблице не живут, они вычмсляются по другой таблице: Detailed Cust. Ledg. Entry, это детальная книга клиентских операций.
как они вычисляются:
Amount:
Sum("Detailed Cust. Ledg. Entry".Amount
WHERE (
Cust. Ledger Entry No.=FIELD(Entry No.),
Entry Type=FILTER(... тут много разных типов, кроме типа ПРИМЕНЕНИЯ ...),
Posting Date=FIELD(Date Filter)))

Remaining Amount:
Sum("Detailed Cust. Ledg. Entry".Amount
WHERE (
Cust. Ledger Entry No.=FIELD(Entry No.),
Posting Date=FIELD(Date Filter)))

как видим, фильтра по типам нет, значит в формуле участвуют все типы операций детальной книги, в том числе Применение.
в этом их основное различие.
на какую сумму было продаж? Calcfields(Amount), где Calcfields это "посчитать вычисляемое поле"
какая сумма остающейся задолженности? Calcfields("Remaining Amount")
сколько было оплат? Amount-"Remaining Amount"
Старый 11.03.2010, 23:46   #5  
NaviStudent is offline
NaviStudent
Участник
 
5 / 10 (1) +
Регистрация: 11.03.2010
Спасибо!
Старый 12.03.2010, 00:08   #6  
NaviStudent is offline
NaviStudent
Участник
 
5 / 10 (1) +
Регистрация: 11.03.2010
Цитата:
Сообщение от NaviStudent Посмотреть сообщение
Спасибо!
Я понимаю какие поля использовать. Я не понимаю вот что:
фактически в репорт дезайнере я добавляю таблицы Country/Region, Customer, Cust. Ledger Entry.
Регион связан с клиентом по коду, клиент с операциями по коду клиента.
В итоге в отчете я хочу увидеть числа суммы продаж, оплаченных продаж, не примененные оплаты и сальдо = продано-оплачено - авансы.
Фактичетки поле в отчете должно вычисляться с использованием условия по описанной выше логике.
Не ясно как я могу вычислять это значение
Старый 12.03.2010, 01:17   #7  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
у вас в отчете есть секции
например, секция Клиент, в ней как раз расположены поля, да?
так вот можно попасть в код (нажав F9) и там написать:
CALCFIELDS(Amount, "Remaining Amount");
формула (логика) для вычисления уже заложена в этих полях. осталось только вызвать колдовство запуска этой формулы.
 


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

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

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