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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.01.2017, 14:03   #1  
Kadawrik is offline
Kadawrik
Участник
 
279 / 11 (1) +
Регистрация: 04.11.2010
Что лучше: переменная ил Flowfield?
Коллеги, нужен совет бывалых (вроде мелочь, но хотелось бы сделать правильнее)
Имеем таблицу 37. В ней есть доп. поле "Cites_OK" (тип boolean)
Имеется тж таблица 92210, куда по отределенным правилам копируется инфа из Т37 + есть доп. поля для доп. служебной информации.
К этой таблице имеется форма 92216, отображающая ее строки в форме списка.
Нужно, чтобы в форме было видно значение поля CITES_OK (из Т37).
Колонку я в форму добавила. Вопрос мой касается того, какое выражение этой колонке назначить (т.е. что указать в SourceExpr этой колонки)?
Я вижу 3 возможных варианта решения:
1) в таблице 92210 создать новое поле Flowfield с формулой
Lookup(T37.CITES_OK WHERE (фильтр)) и потом это поле отображать в нужной колонке
2) Никаких доп.полей в Т92210 не заводить. Вместо этого в форме завести переменную CitesOK, которой в триггере OnAfterGetRecord нашей формы присваивать значение:

IF SalesLine.GET(SalesLine."Document Type"::Order, Ordernr, OrderLineNr) THEN
CITESOK := SalesLine.CITES_OK;
И эту переменную прописать в SourceExpr нужной колонки.

3) Обойтись без переменной и напрямую показывать SalesLine.CITES_OK в колонке

Какой вариант предпочтительнее с т.зр. оптимальности и правильности/удобства? или в данном случае без разницы?

Последний раз редактировалось Kadawrik; 26.01.2017 в 14:07.
Старый 26.01.2017, 14:52   #2  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
3-й вариант не понял.

с точки зрения производительности нужен 4-й вариант: создать нормальное (не вычисляемое) поле "Line Cites OK" в таблице 92210, устанавливать и обновлять его, вывести на форму.

разница между первым и вторым - первый ищется и фильтруется (пусть и медленно)
второй - не ищется и не фильтруется
Старый 26.01.2017, 15:28   #3  
Kadawrik is offline
Kadawrik
Участник
 
279 / 11 (1) +
Регистрация: 04.11.2010
Цитата:
Сообщение от Sancho Посмотреть сообщение
3-й вариант не понял.
ну это то же самое что и во втором варианте, только без переменной. т.е. мы SalesLine.GET делаем, но переменной не присваиваем. а вместо этого в SourceExp пишем SalesLine.Cites_OK
Но это, полагаю, сути не меняет.

Цитата:
Сообщение от Sancho Посмотреть сообщение
с точки зрения производительности нужен 4-й вариант: создать нормальное (не вычисляемое) поле "Line Cites OK" в таблице 92210, устанавливать и обновлять его, вывести на форму.
Этот вариант тоже обдумывала. Но лень было заморачиваться с T37.OnValidate (хоть там и писанины пару строк, но все-таки)
Форма должна только показывать поле (оно, т.е. в F92216 not editable)

Цитата:
Сообщение от Sancho Посмотреть сообщение
разница между первым и вторым - первый ищется и фильтруется (пусть и медленно)
второй - не ищется и не фильтруется
Я правильно понимаю, что GET работает быстрее, чем формула в FlowField?

Может я вообще хря заморачиваюсь, т.к. Т37 у нас относительно небольшая: одномоментно в ней находится примерно 40-50 тыщ записей
Старый 26.01.2017, 16:25   #4  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
про вариант 3 понял, да, он как 2.

я бы сделал вариант 1.
если начнет тормозить - вариант 4.

переменные это когда что-то уж очень сложно найти...
Старый 28.01.2017, 14:11   #5  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
Вопрос в том, что требуется от поля.
Фильтровать по нему планируете, например?
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Обработка изменения текстового FlowField grif NAV: Программирование 9 21.12.2012 13:36
переменная определена более одного раза flov_imported NAV: Программирование 3 12.07.2010 19:05
Вопрос по FlowField VasVovec NAV: Программирование 8 03.12.2009 09:11
Можно ли сортировать по FlowField??? Greggy NAV: Программирование 3 25.11.2004 03:11
Дублирование FlowField Nataly NAV: Программирование 7 21.01.2004 12:38

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

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

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