Опишу возникшую проблему.
Стандартная форма Axapta SalesQuickQuote работает не совсем корреектно в некоторых случаях.
Возникла необходимость в изменении поведения данной формы (создаю новую):
1. Данные отсортировать по номенклатурной группе, затем по наименованию
2. Подключить таблицу InventBatch (к примеру) и отсортировать по полю ProdDate
3. Выводить только товар имеющийся на определенном складе
Проблема с подключением InventBatch:
1. Объединяем с InventSum через Outer Join
2. Как установить условие InventBatch.ItemID==InventSum.ItemID ?
Сделал через AddDynaLink. Прошло - SQL запрос сформировался верным (смотрю через мониторинг)
Напрашивается решение через расширенный фильтр, но не получилось.
Следующая проблема - наложения условия на InventDim.InventLocationID
При выполнении AddRange условие добавляется в ON, а необходимо в WHERE.
В виду того что объединение внешнее, то записи все равно выводятся, но с пустым InventLocationID (если уловие не выполняется)
Решил проблему следующим образом - подключил через InnerJoin еще InventDim и объеденил с первым InventDim и на добавленный InventDim наложил условие по InventLocationId.
В результате получили
InventTable
-ij InventSum
--oj InventDim
---oj InventBatch
---ij InventDim
Криво все это. Чего то я не понимаю (не знаю).
|