Доброго времени суток, коллеги.
Имеется TerrasoftCRM 3.3.2.245. Нужно реализовать выборку данных, которую нельзя сделать посредством SelectQuery с передачей параметров в запрос и расчетом итоговой строки.
Почему нельзя использовать SelectQuery? В конструкторе запроса нельзя join-ить с подзапросом и нельзя join-ить более, чем по одному полю.
Вопрос 1: как реализовать расчет итоговой строки? DataGrid умеет считать итоги только в виде суммы, среднего, максимума и минимума колонки переданного набора данных. Я могу записать произвольное значение в область итогов DataGrid? Если не могу, то строку итогов мне придется считать в запросе и потом ее объединять с результатом запроса.
Вопрос 2: как можно получить данные в виде таблицы в обход SelectQuery?
- ExecuteCustomSQL - отпадает, так как не может вернуть таблицу (или я чего-то не знаю).
- Вызов хранимой процедуры в CustomSql колонке SelectQuery. Вариант в принципе годный. Есть некоторые проблемы с передачей параметров для Include фильтра, но решаемые.
- CustomQuery. Непонятный мне зверь. Может ли возвращать таблицу? Можно ли менять текст запроса в runtime или только хардкодить в Администраторе? В конфигурации я примеров использования не нашел, на этом форуме тоже (киньте ссылку, если не жалко).
- ADODataset. На первый взгляд тоже годный вариант, но есть свои "но". Хотелось бы, чтобы запрос выполнялся от имени текущего пользователя, со всеми его ограничениями доступа. В случае доменной аутентификации это решаемо, а как быть, если используется аутентификация СУБД? Я вряд ли смогу где-нибудь достать пароль текущего пользователя, могу только показать диалог с запросом пароля и сохранить его в базе.
Есть ли еще какие-либо варианты получения табличных данных?