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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.08.2005, 12:37   #1  
DA_NEAL is offline
DA_NEAL
Участник
Аватар для DA_NEAL
Лучший по профессии 2017
Лучший по профессии 2009
 
788 / 54 (3) ++++
Регистрация: 05.08.2002
Адрес: Королев
Тут в соответвии с одним обсуждением на Axforum решил сделать почти унивесальную итоговую формочку.

Для запуска сделайте следующее (пример для 32 таблички):

RecRef.OPEN(32);
RecRef.SETTABLE(Rec);

IF TOTALS.SetTotalonRecordRef(RecRef) THEN
TOTALS.RUNMODAL();

Есть ограничение на 25000 записей в наборе данных. Его можно поправить. Суммирует и флоуфилды.

Погоняйте кто-нибудь на реальных данных и скажите чего-нибудь. То что форма тормозит я и так знаю. Жду рекомендаций по оптимизации кода.
Вложения
Тип файла: txt MyTotals.txt (5.4 Кб, 457 просмотров)
__________________
Want to believe...
Старый 19.08.2005, 17:32   #2  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Регистрация: 15.02.2005
Имхо, бесполезная фича.
Вот если бы форма собирала суммы через запросы к sql сервру, да еще на кодовые поля count(distinct("Field Name")) засунуть (очень порой пользователей интересует скольким клиентам товар продали и от скольки поставщиков закупили, да еще из скольки стран везли , да по флоу полям полям в нужные таблицы лезла и правильный bucket выбирала - цены бы ей не было .
А еще (эх кто бы меня заткнул ) - поля бы ей передавать в разрезе которых отчет строить и в group by запроса их кинуть.

А так всеж-таки проще через calcsums работать. Неуниверсально, зато на порядки быстрее, имхо.
Старый 19.08.2005, 17:54   #3  
DA_NEAL is offline
DA_NEAL
Участник
Аватар для DA_NEAL
Лучший по профессии 2017
Лучший по профессии 2009
 
788 / 54 (3) ++++
Регистрация: 05.08.2002
Адрес: Королев
Post
calcsums частное решение... надо и ключ установить и фильтры только диапазонами да и по полям только ключевым...

Можно и анализатор запроса в принципе написать (тока для одной таблички) но такой запрос работать будет по пол - дня .
__________________
Want to believe...
Старый 19.08.2005, 18:32   #4  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Регистрация: 15.02.2005
Цитата:
Сообщение от DA_NEAL
calcsums частное решение... надо и ключ установить и фильтры только диапазонами да и по полям только ключевым...

Можно и анализатор запроса в принципе написать (тока для одной таблички) но такой запрос работать будет по пол - дня  .
Ну почему же для одной таблички?
есть волшебные таблицы database, company, field.., хотя без последней наверно можно обойтись.
Насчет скорости я бы поспорил. На миллионе записей в 32 табличке прямой запрос в базу все ж таки быстрее будет, нежели цикл по записям
Старый 22.08.2005, 09:01   #5  
DA_NEAL is offline
DA_NEAL
Участник
Аватар для DA_NEAL
Лучший по профессии 2017
Лучший по профессии 2009
 
788 / 54 (3) ++++
Регистрация: 05.08.2002
Адрес: Королев
Я имел ввиду что можно написать интерпретатор SQL для navision, но при своей работе он все равно будет использовать операторы C/AL. Таким образом о скорости и речи быть не может.
__________________
Want to believe...
Старый 22.08.2005, 09:42   #6  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Регистрация: 15.02.2005
Цитата:
Сообщение от DA_NEAL
Я имел ввиду что можно написать интерпретатор SQL для navision, но при своей работе он все равно будет использовать операторы C/AL. Таким образом о скорости и речи быть не может.

DA_NEAL - вы ошибаетесь .
Попробуйте в QA набрать select [Country of Origin Code], count(distinct([Item No_])), sum(Quantity) from [Имя_Фирмы_Item Ledger Entry] group by [Country of Origin Code], написать аналогичный код в С/A и сравнить скорость.

PS. Речь идет о версии под SQL сервер .
Старый 22.08.2005, 10:45   #7  
DA_NEAL is offline
DA_NEAL
Участник
Аватар для DA_NEAL
Лучший по профессии 2017
Лучший по профессии 2009
 
788 / 54 (3) ++++
Регистрация: 05.08.2002
Адрес: Королев
да я не ошибаюсь, я говорю о том что если средствами языка C/AL эмулировать работу select'а написав интерпретатор то такой запрос будет работать медленно так как будет базироваться на циклах и временных таблицах Navision. Я вообще не говорю про Query Analizer и т.д. Понятно что прямой SQL запрос работает быстрее но из navision вы его не вызовите... Надеюсь я понятно сейчас выразился
__________________
Want to believe...
Старый 22.08.2005, 10:48   #8  
DA_NEAL is offline
DA_NEAL
Участник
Аватар для DA_NEAL
Лучший по профессии 2017
Лучший по профессии 2009
 
788 / 54 (3) ++++
Регистрация: 05.08.2002
Адрес: Королев
кстати thx mazzy за респект... неужели хоть кому то пригодилось !
__________________
Want to believe...
Старый 22.08.2005, 10:59   #9  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Регистрация: 15.02.2005
DA_NEAL - ну почему же не вызову? ADO еще никто не отменял.
Старый 22.08.2005, 11:32   #10  
DA_NEAL is offline
DA_NEAL
Участник
Аватар для DA_NEAL
Лучший по профессии 2017
Лучший по профессии 2009
 
788 / 54 (3) ++++
Регистрация: 05.08.2002
Адрес: Королев
ну понятно... но ты же понял что я имел ввиду
__________________
Want to believe...
 


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

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

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