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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.06.2009, 18:09   #1  
RedFox is offline
RedFox
Участник
 
1,441 / 10 (0) +
Регистрация: 28.12.2004
Адрес: Киев
Вот возник вопрос, по поводу которого сходу ответа-решения не нашёл.
Из-за малого времени экспериментировать не стал и переделал код.
Но вопрос остался - например мы имеем код:
IF "Bill-to Customer No." <> xRec."Bill-to Customer No." THEN BEGIN
SalesLine.SETRANGE("Document Type",SalesLine."Document Type"::Order);
SalesLine.SETRANGE("Document No.","No.");
SalesLine.CALCSUMS("Outstanding Amount","Shipped Not Invoiced");
"Amount Including VAT" := SalesLine."Outstanding Amount" + SalesLine."Shipped Not Invoiced";
END;

Вопрос: CALCSUMS("Outstanding Amount") работает только по 1 строке или для всех строк, попадающих в фильтр?
Тоесть если у меня несколько строк попали в фильр, то система посчитает по каждой строке для каждой строки или суммарно по группе строк, но выведет инфу в 1 строку??
Старый 11.06.2009, 18:19   #2  
Lrundom is offline
Lrundom
Участник
 
76 / 10 (1) +
Регистрация: 24.08.2007
из хелпа:
Use this function to total columns in a table. This function operates only on records that meet the conditions of any filters associated with the record.

отсюда можно предположить, что для каждой.

проверила. обновляются все строки.
Старый 11.06.2009, 18:34   #3  
apanko is offline
apanko
MCTS
MCBMSS
Лучший по профессии 2009
 
1,164 / 139 (7) +++++
Регистрация: 24.02.2005
Цитата:
Сообщение от Lrundom Посмотреть сообщение
из хелпа:
Use this function to total columns in a table. This function operates only on records that meet the conditions of any filters associated with the record.

отсюда можно предположить, что для каждой.

проверила. обновляются все строки.

В чем заключалась проверка?

Чистое любопытсво.
Старый 11.06.2009, 18:37   #4  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
допустим, в фильтр попали 3 строки:

normal .......................... flowfield
Outstanding Amount ...... Reserved Qty. (Base)
100 ............................. 5
150 ............................. 2
20 ............................... 4

CALCSUMS("Outstanding Amount") посчитает 270, потому что он кальк СУМЗЗЗЗЗЗЗ

а CALCFIELDS("Reserved Qty. (Base)") вернет не 11, а 5 (ну или какая там строка стоит), потому что он кальк ФИЛДЗЗЗЗЗЗЗ
Старый 11.06.2009, 19:53   #5  
RedFox is offline
RedFox
Участник
 
1,441 / 10 (0) +
Регистрация: 28.12.2004
Адрес: Киев
Цитата:
Сообщение от Sancho Посмотреть сообщение
допустим, в фильтр попали 3 строки:

normal .......................... flowfield
Outstanding Amount ...... Reserved Qty. (Base)
100 ............................. 5
150 ............................. 2
20 ............................... 4

CALCSUMS("Outstanding Amount") посчитает 270, потому что он кальк СУМЗЗЗЗЗЗЗ

а CALCFIELDS("Reserved Qty. (Base)") вернет не 11, а 5 (ну или какая там строка стоит), потому что он кальк ФИЛДЗЗЗЗЗЗЗ
Тоесть в обоих случая будет 1 строка значений, правильно?
Старый 11.06.2009, 21:46   #6  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
да
это неочевидно, поэтому очень опасно
Старый 11.06.2009, 22:56   #7  
apanko is offline
apanko
MCTS
MCBMSS
Лучший по профессии 2009
 
1,164 / 139 (7) +++++
Регистрация: 24.02.2005
Цитата:
Сообщение от Sancho Посмотреть сообщение
это неочевидно, поэтому очень опасно
За это и хотят сменить C/AL на C#.
Старый 12.06.2009, 11:19   #8  
RedFox is offline
RedFox
Участник
 
1,441 / 10 (0) +
Регистрация: 28.12.2004
Адрес: Киев
Talking
Цитата:
Сообщение от Sancho Посмотреть сообщение
это неочевидно, поэтому очень опасно
Это не то, чтобы "неочевидно", а "нелогично и неразумно.." (старый анекдот про студента-любовника). Но мы с Вами догадываемся нашей логикой. А вот документ по помощи ничего про это не говорит..
По CALCFIELDS хоть про записать говорят...
Поэтому я и вынес такое на обсуждение - хотел узнать Ваше, уважаемые коллеги, мнение.

Цитата:
Сообщение от apanko Посмотреть сообщение
За это и хотят сменить C/AL на C#.
Угу, так проще типа программить и что угодно можно делать с кодом..
Хотя на секундочку представте как будет работать ядро, если кто-то его случайно совсем (я уже молчу про умышленно) "перегрузит" в какой-нибудь функции..

Вобщем у меня почти холодный пот от этой мысли.
 


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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:41.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.