Как многие знают, есть такое ограничение на использование CustomSQLColumn-а: датафилд, полученный по нему, нельзя фильтровать (как быстрым фильтром, так и фильтром из FilterBuilder-а), что значительно ограничивает нас при реализации сложных запросов с использованием функций и хранимых процедур. Но недавно случайно один из разработчиков (Дмитрий Мушенко - страна должна знать своих героев :)) обнаружил, что в случае, если завернуть CustomSQLColumn в subselect, то все будет нормально работать. Т.е. датасет, полученный по запросу вида
select
ID as ID,
Amount1 - Amount2 as Difference
from tbl_MyTable
где Amount1 - Amount2 - это CustomSQLColumn,
не будет фильтроваться по датафилду Difference
Но если видоизменить запрос на
select
ID as ID,
(select top 1
m.Amount1 - m.Amount2
from tbl_MyTable m
where m.ID = tbl_MyTable) as Difference
from tbl_MyTable
то все будет работать замечательно.
Прим.: Единственный неприятный момент, что удалось обнаружить, - эта фича не работает со строковыми полями. Т.е. если Вы в таком поле получаете дату, числовое значение или значение из справочника (GUID-ное значение), все будет фильтроваться нормально. Если же строку - фильтрация работать не будет.