Использование хранимой процедуры SQL в качестве данных для отчета Microsoft Dynamics CRM - PullRequest
0 голосов
/ 13 июля 2009

Нам нужно иметь полусложный отчет в CRM, который отображает некоторые накопленные значения отведений. Единственный способ работы этого отчета - написать хранимую процедуру, которая создает пару временных таблиц и рассчитывает / накапливает данные с использованием курсоров. Затем возникает проблема получения доступа к данным из хранимой процедуры из отчета сервера отчетов. Кто-нибудь знает, возможно ли это? Если бы у меня была возможность написать собственный оператор SQL для генерации данных отчета, это было бы просто превосходно.

Есть указатели?

Edit:

Чтобы пояснить, как я использую курсоры, я могу точно объяснить, что я с ними делаю.

Основой для моего отчета (который, между прочим, должен быть график) является таблица (table1) с тремя соответствующими столбцами:

Start date
Number of months
Value

Я создаю временную таблицу (temp1), которая содержит следующие столбцы:

Year
Month number
Month name
Value

Сначала я перебираю строки в первой таблице и вставляю строку в таблицу для каждого месяца, увеличивая месяц, одновременно устанавливая значение в общее значение, деленное на месяцы. То есть:

2009-03-01,4,1000 в таблице 1 дает

2009,03,March,250
2009,04,April,250
2009,05,May,250
2009,06,June,250

в таблице temp1.

Затем используется новый курсор для суммирования и создания промежуточной суммы из значений в temp1 и передачи ее в temp2, которая возвращается вызывающей стороне в качестве данных для построения диаграммы.

пример данных temp1:

2009,03,March,250
2009,04,April,200
2009,04,April,250
2009,05,May,250
2009,05,May,100
2009,06,June,250

возвращает данные temp2:

2009,03,March,250,250
2009,04,April,450,700
2009,05,May,350,1050
2009,06,June,250,1300

Последний столбец - это промежуточные итоги, которые начинаются с нуля для каждого нового года.

Ответы [ 4 ]

0 голосов
/ 24 июля 2009

Я нашел решение. Скачанный построитель отчетов 2.0 от Microsoft. Это позволяет мне писать запросы и вызывать хранимые процедуры для данных отчета.

Ссылка для построителя отчетов Microsoft SQL Server

0 голосов
/ 13 июля 2009

Я этого не делал - просто думал, как начать. Я бы удостоверился, что когда хранимые процедуры заполняют временные таблицы, они используют фильтрованные представления для извлечения данных. Затем я бы назначил доступ для выполнения SP так, чтобы он имел те же роли безопасности, что и фильтрованные представления (что должно быть достаточно для того, чтобы разрешить членам PrivReportingGroup).

Я бы подумал, что это позволит вам выполнить SP в вашем отчете. Я полагаю, если вы настроите SP заранее, у дизайнера SSRS есть несколько способов показать вам, какие данные доступны, и выбрать SP во время разработки. Но я точно не знаю.

0 голосов
/ 14 июля 2009

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

Еще одна возможная мысль, если вы делаете что-то наподобие подсчета итогов в курсоре, можете ли вы создать представление в качестве источника без промежуточной суммы и сделать так, чтобы сам отчет выполнял такие вычисления?

Кроме того, отчеты SSRS могут использовать хранимые процедуры в качестве источника данных, подробнее об этом см. В электронной документации.

0 голосов
/ 13 июля 2009

Рассматривали ли вы использование представлений. Используйте иерархию представлений, если она очень сложная. Каждое представление будет представлять одну из ваших временных таблиц.

РЕДАКТИРОВАТЬ На основе комментариев

Я думал о представлениях SQL, в основном о том же SQL, который вы написали бы в своих хранимых процедурах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...