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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.04.2003, 17:36   #1  
Alex_V is offline
Alex_V
Участник
 
159 / 10 (1) +
Регистрация: 19.02.2003
большое кол-во фильтров
необходимо отфильтровать таблицу(MyTable) по большому количеству полей (22) и затем подсчитать сумму decimal поля.
подход может быть наипростешим:
SETFILTER(Field1, 'Filter1');
...
SETFILTER(Field22, 'Filter22');
IF FIND('-') THEN
REPEAT
Amount := Amount + "Decimal Field Value";
UNTIL NEXT = 0;

но работает это все естественно медленно при большом кол-ве записей.

другой подход через SumIndexField - но здесь проблема - ключ не может быть больше определенного кол-ва байт - не составить необходимый ключ

и еще один подход - создать дополнительную таблицу
с полями "Field1 Filter" (Flow Filter), ....., "Field22 Filter" (Flow Filter)
поле "Decimal Field Value" (FlowField) Table Relation у нее будет следующий:
MyTable."Decimal Field Value" WHERE (Field1=FIELD(Field1 Filter),...Field22=FIELD(Field22 Filter))
но и здесь свои грабли - при добавлении 22 фильтра для "Decimal Field Value" - при попытке сохранить таблицу возникает ошибка "Размер Источника больше буфера получателя"

может есть какие нибудь советы для решения подобной задачи?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Именение значений поля в очень большом кол-ве записей TeHb NAV: Программирование 3 07.12.2006 00:36
Как определеить кол-во рабочих дней в промежутке. Maks NAV: Программирование 6 22.04.2003 12:47
Attain. Траблы с установкой фильтров в правах. Evgeniy NAV: Программирование 0 26.03.2003 17:10

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

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

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