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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.11.2009, 09:48   #1  
VasVovec is offline
VasVovec
Участник
Аватар для VasVovec
 
145 / 10 (1) +
Регистрация: 13.04.2007
Имеется ли возможность в расчете значения поля типа FlowField сделать несколько условий? А также, чтобы в условиях можно было использовать, скажем, WORKDATE. Что-то типа
Цитата:
Если Поле < WORKDATE, то значение FlowField = ЗначениеA
Если Поле > WORKDATE, то значение FlowField = ЗначениеБ
И если нельзя сделать через стандартную CalcFormula, то можно ли как-то в обход? Я делал расчет этого поля в форме на OnAfterGetRecord. Значение конечно выводится, но по нему нельзя наложить фильтр, так что этот вариант мне не подходит.
Старый 17.11.2009, 10:29   #2  
VasVovec is offline
VasVovec
Участник
Аватар для VasVovec
 
145 / 10 (1) +
Регистрация: 13.04.2007
Эх. Дизайн форума переделали, не могу понять как свои сообщения теперь редактировать. Немножко по-другому сформулирую условие. Допустим, есть ПолеА типа Дата и ПолеБ типа FlowField
Цитата:
Если ПолеА = 0D, то ПолеБ = Lookup по таблице с фильтром, не учитывающим ПолеА,
Если ПолеА <> 0D, то ПолеБ = Lookup по таблице с фильтром, использующим ПолеА
И еще, метод Lookup в CalcFormula берет первую попавшую в фильтр запись, а как задать, чтобы использовалась последняя из отфильтрованных записей?
Старый 17.11.2009, 11:26   #3  
apanko is offline
apanko
MCTS
MCBMSS
Лучший по профессии 2009
 
1,164 / 139 (7) +++++
Регистрация: 24.02.2005
Цитата:
Сообщение от VasVovec Посмотреть сообщение
Эх. Дизайн форума переделали, не могу понять как свои сообщения теперь редактировать. Немножко по-другому сформулирую условие. Допустим, есть ПолеА типа Дата и ПолеБ типа FlowField
Цитата:
Если ПолеА = 0D, то ПолеБ = Lookup по таблице с фильтром, не учитывающим ПолеА,
Если ПолеА <> 0D, то ПолеБ = Lookup по таблице с фильтром, использующим ПолеА
И еще, метод Lookup в CalcFormula берет первую попавшую в фильтр запись, а как задать, чтобы использовалась последняя из отфильтрованных записей?

Попробуйте ПолеА сделать типа Текст, а в CalcFormula в фильтрах поставить флажок в ValueIsFilter
(Если в поле есть данные, то вам не удастся таблицу).

Насчет "последней записи" - попробуйте использовать не Лукап, а Макс.
Старый 17.11.2009, 11:58   #4  
VasVovec is offline
VasVovec
Участник
Аватар для VasVovec
 
145 / 10 (1) +
Регистрация: 13.04.2007
Цитата:
Сообщение от apanko Посмотреть сообщение
Попробуйте ПолеА сделать типа Текст, а в CalcFormula в фильтрах поставить флажок в ValueIsFilter
(Если в поле есть данные, то вам не удастся таблицу).

Насчет "последней записи" - попробуйте использовать не Лукап, а Макс.
Тогда уж надо сделать ПолеС типа текст и заполнять текстовым фильтром в зависимости от содержимого ПоляА.
Но метод Макс мне не подойдет, т.к. он я полагаю из названия берет маскимальное значение поля из найденых записей, а у меня же сортировка не по нужному мне полю, а по ключу. Тобишь только в ключевом поле у последней записи будет максимальнео значение, а в остальных полях Макс найдет мне значение не из последней записи, а максимальное значение,тем более в моем случае нужное поле - текстовое
Как быть?
Старый 17.11.2009, 12:16   #5  
apanko is offline
apanko
MCTS
MCBMSS
Лучший по профессии 2009
 
1,164 / 139 (7) +++++
Регистрация: 24.02.2005
Цитата:
Сообщение от VasVovec Посмотреть сообщение
Тогда уж надо сделать ПолеС типа текст и заполнять текстовым фильтром в зависимости от содержимого ПоляА.
Совершенно верно.

Цитата:
Сообщение от VasVovec Посмотреть сообщение
Но метод Макс мне не подойдет, т.к. он я полагаю из названия берет маскимальное значение поля из найденых записей, а у меня же сортировка не по нужному мне полю, а по ключу. Тобишь только в ключевом поле у последней записи будет максимальнео значение, а в остальных полях Макс найдет мне значение не из последней записи, а максимальное значение,тем более в моем случае нужное поле - текстовое
Как быть?
Использовать два вычисляемых поля:
В первом использовать МАСК, но не по нужному полю, а по ключу (надеюсь он не составной).
Добавить второе вычисляемое поле, где сделать лукап уже по нужному полю, а в качестве фильтра использовать значение ключа (из предыдущего вычисляемого поля).
Старый 17.11.2009, 14:20   #6  
VasVovec is offline
VasVovec
Участник
Аватар для VasVovec
 
145 / 10 (1) +
Регистрация: 13.04.2007
Зело мудреный способ. Я сам бы очень долго до него додумывался. Спасибо
Старый 27.11.2009, 12:57   #7  
VasVovec is offline
VasVovec
Участник
Аватар для VasVovec
 
145 / 10 (1) +
Регистрация: 13.04.2007
А существует ли всеже возможность использовать в CalcFormula переменные типа TODAY, WORKDATE?
Старый 27.11.2009, 23:55   #8  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
ага, кривой
можно создать еще поле (на этом месте все начали истрерически смеяться) с типом flowfilter, назвать DateFilter
а в вычисляемом сделать дополнительное условие по нему.
только при открытии формы необходимо будет его устанавливать
Старый 03.12.2009, 09:11   #9  
VasVovec is offline
VasVovec
Участник
Аватар для VasVovec
 
145 / 10 (1) +
Регистрация: 13.04.2007
Я так и знал
 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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