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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.06.2006, 16:52   #1  
Vavilon is offline
Vavilon
Участник
 
17 / 10 (1) +
Регистрация: 03.03.2006
Помогите, плиз, как всегда, мудрым советом!
Проблема:
в одной табличке есть FlowField, на которое прописан Lookup
Lookup(Table1.Filed1 WHERE (Field2=FIELD(Filed3)))
//понятно, что поля Field1, Field2 принадлежат Table1, Field3 - другой...
Проблема в том, что это метод, по сути, получения inner join'a, а мне тут нужен left outer join, т.е. если Field3 = '' (пустое), то нужно, чтобы в FlowField тоже было пусто, а если не пусто - то вытаскивать по связке значения из Table1......
Спасибо заранее!
Старый 21.06.2006, 18:05   #2  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Регистрация: 15.02.2005
Если задать такой tablefilter:
Field2=FIELD(Field3),Field2=FILTER(<>'')

?
Старый 22.06.2006, 10:29   #3  
Vavilon is offline
Vavilon
Участник
 
17 / 10 (1) +
Регистрация: 03.03.2006
Не получилось так. Еще хуже стало - для каждого значения Field3 (даже пустого) стал подставлять одно и то же значение Field2 (неправильное)
Старый 22.06.2006, 11:35   #4  
bird_imported is offline
bird_imported
Участник
 
45 / 10 (1) +
Регистрация: 11.05.2006
Порядок строчек фильтра играет важную роль.
Нужно поменять местами фильтры:

Lookup(table2.field1 WHERE (field2=FILTER(<>''),field2=FIELD(field3)))


У меня так работает

Т.е. смысл фильтра: он отбирает сначала записи с непустым значением поля field2 , а потом из них отбирает запись, в которой field2 = field3
Старый 22.06.2006, 18:41   #5  
e-statik is offline
e-statik
Участник
 
102 / 11 (1) +
Регистрация: 06.07.2005
Цитата:
Сообщение от Bird Посмотреть сообщение
Т.е. смысл фильтра: он отбирает сначала записи с непустым значением поля field2 , а потом из них отбирает запись, в которой field2 = field3
А может быть и наоборот было бы: отбирает запись, в которой field2 = field3, но если там значение '', то исключает?
К сожалению, ваша логика не работает. Я попробовал, покрутил - у меня выходит, что срабатывает только последнее условие: если FIELD(Field3),Field2=FILTER(<>''), то показывает первую попавшуюся, где <>''; если field2=FILTER(<>''),field2=FIELD(field3), то ту, где значения совпадают. Не дополняют друг друга условия каскадно, наложенные на одно поле.

И полагаю я, что FlowField - это только простой inner join.
 


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

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

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