click fraud detection

Отбор данных с использованием триггеров OnFindRecord, OnNextRecord формы в Navision

Дата публикации: 15.01.2013

Цель данной публикации – описать возможность фильтрации данных в форме по «виртуальным» полям с использованием методов OnFindRecord и OnNextRecord формы в системе Navision (Dynamics NAV). Данный вопрос частично освещён на многих Интернет-ресурсах, но полного разложения «по полочкам» с конкретными примерами найти практически нереально. В рамках подготовки публикации были собраны почти все «шишки» данного метода фильтрации. Если внимательные читатели при анализе решения обнаружат неточность – просим сообщать незамедлительно.

Используемые термины:
•    «виртуальное» поле формы – некое поле записи, отображаемое на форме. Не связано ни с одним полем таблицы. Значение поля вычисляется в триггере OnAfterGetRecord формы.

История вопроса
Заказчик имел ряд форм, в которых использовались «виртуальные» поля. Необходимо было сделать механизм отбора записей. При этом пользователь должен был иметь возможность отобрать записи по одному из следующих алгоритмов – все записи, только записи с определённым статусом, только записи без определённого статуса.

Варианты решения
•    Использование механизма маркировки записей. Недостаток - много времени уходит на перебор записей и проставление маркировок, затраты времени.
•    Подмена записей в форме данными из виртуальной таблицы с использованием методов OnFindRecord и OnNextRecord формы. Недостаток - необходимость управлять временной таблицей при любом изменении записей, затраты времени.
•    Игнорирование записей, не удовлетворяющих условию отбора, с использованием методов OnFindRecord и OnNextRecord формы. Недостаток – работает немного дольше, чем обычная форма.

Как догадался читатель, был выбран последний вариант.

Реализация
На форме были добавлены 4 функции:
1.    ShowThisRecord

 
2.    FINDPosition  


3.    NEXTPosition

 
4.    CheckAdditionsExists

 

В триггеры формы был внесён следующий код:
1.    OnFindRecord

 
2.    OnNextRecord  

Финализация
Решение работает достаточно быстро и удовлетворяет требования Заказчика.

Автор: Батыршин Рафаэль  

 

Акция "Тест-драйв Сопровождения"

Попробуй сопровождение АХ до подписания договора!


Узнать подробнее

Другие записи в блоге

16.08.2017
В AX7 весь код X ++, без исключения, работает на уровне сервера. Компилятор игнорирует ключевые слова client и server.Когда вы сталкиваетесь с чем то, из следующего списка, удаляйте это без сожаления:
08.08.2017
Недавно один из наших клиентов захотел объединить кастомизацию, распределенную между двумя различными слоями (CUS и USR) в один слой (CUS). В идеале, все настройки пользователей должны располагаться...
08.06.2017
Заметки о саммите и российском рынке Dynamics  Компания Neti специализируется на разработке AX с 2003 года. Наш конек — передовые технологии MS Dynamics: мы находим, изучаем и внедряем в...

Подпишитесь на блог

Все интересные статьи нашего блога на Вашем почтовом ящике!


Подписка

Служба контроля качества сервиса

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


Письмо директору