Как рассчитать [Оставшуюся сумму] в отчете Dynamics Nav?

Как рассчитать [Remaining Amount] в отчете Dynamics Nav:

Receivables / Customers / Costomer No. / List of Ledger Entries

Я добираюсь до NAV только по SQL. Из каких таблиц и столбцов следует брать данные?

Обновить. Мое предположение состоит в том, что со стола [Cust_ Ledger Entry] я должен взять [Open]=1, а со стола [Detailed Cust_ Ledg_ Entry] я должен взять поле [Amount].

Это дополнительный вопрос. Как рассчитать Remaining Amount для заданной даты в прошлом. Я предполагаю, что на данный момент это проще.


person Przemyslaw Remin    schedule 27.05.2016    source источник
comment
Вы знаете, что можете искать ответ в самой Nav, даже если у вас нет лицензии. Ctrl+F2 открывает дизайнер для любого объекта, а shift+F4 показывает свойства. Вы не можете видеть исходный код без лицензий, но в вашем случае в этом нет необходимости. Таблица Customer Ledger Entry. В чем проблема с датой не знаю. Просто выберите сумму всех предыдущих записей.   -  person Mak Sim    schedule 28.05.2016
comment
@MakSim В таблице Customer Ledger Entry нет такого столбца, как Amount. Возможно, мне придется покопаться в таблице [Detailed Cust_ Ledg_ Entry]. Должен ли я суммировать [Amount] всех записей до выбранной даты независимо от [Entry Type]? К сожалению, ваш трюк с заглядыванием в нутро Nav без лицензии Designer в моем случае не работает.   -  person Przemyslaw Remin    schedule 01.06.2016
comment
Ну да. То, что вы описали, - это то, как поле потока Remaining Amount вычисляется в форме Customer Ledger Entry. Это сумма Amount всех подробных операций, где Entry No. = Cust. Ledger Entry No. и Posting Date отфильтрованы соответственно.   -  person Mak Sim    schedule 02.06.2016
comment
А я только что протестировал. Вы можете видеть свойства полей в таблице даже без лицензии разработчика. Все, что вам нужно, это роль пользователя, такая как SUPER или что-то еще, что дает доступ к дизайнеру.   -  person Mak Sim    schedule 02.06.2016


Ответы (1)


чтобы получить баланс на дату, вам просто нужно суммировать [Amount] в [Detailed Cust_ Ledg_ Entry] до целевой даты без каких-либо других фильтров(). Эта таблица содержит все операции

person xdd    schedule 03.06.2016
comment
Я почти уверен, что [Detailed Cust_ Ledg_ Entry] нужно соединить с [Entry Type]=1. Таким образом, он точно соответствует всем записям из [Cust_ Ledger Entry], ничего не добавляя. Почему вы считаете, что это не нужно? - person Przemyslaw Remin; 08.06.2016
comment
в зависимости от того, что вы хотите рассчитать: с [Entry Type]=1 вы рассчитываете чистый баланс, без отношений счет-оплата (заявки). Если вы хотите рассчитать оставшуюся сумму для определенного счета, вы должны использовать другие типы. - person xdd; 08.06.2016
comment
Я провел тест на соединение с [Entry Type]=1 и без него, разница небольшая. Как статистик я бы счел это бессмысленным, но для бухгалтера это может быть важно - в чем разница? Особенно для [Open]=1 транзакций. Я награждаю вас наградой в надежде, что вы найдете время, чтобы объяснить это. Я не приму ответ как решенный до этого времени :-) - person Przemyslaw Remin; 08.06.2016
comment
Я пробую пример: у вас есть два заказа с одним клиентом o1 и o2, оба по 50 долларов. вы выставили им счет. у вас есть LE1 (запись в книге) с DLE1 (подробная запись) с type=1, сумма 50, open=1 и LE2, DLE2 одинаковы. Клиент платит вам 100 долларов, это LE3 за -100. теперь у вас есть общий баланс 50+50-100 = 0. теперь вы применяете оплату к счетам. например, клиент платит 50 за o1, 20 за o2 и вносит предоплату за другой o3. получается DLE1_2 для -50, а LE1 open=0' with remaining 0. DLE2_2 for -20, and LE2 open=1' и остальные 50-20=30. и DLE3_2, DLE3_3 для -50 и -20. баланс не изменился = 0 - person xdd; 09.06.2016
comment
ПРОДОЛЖЕНИЕ: но вы все еще частично оплатили o2 и ждете денег. и у вас есть предоплата за о3, и вы должны начать свою работу с ней. - person xdd; 09.06.2016