|
11.08.2009, 13:06 | #1 |
Участник
|
Ошибки с явной фильтрацией
как многие источники рекомендуют начал изучения данного вопроса с разбора стандартных отчетов CRM 4.0 . Все замечательно вытащил отчет вставил в VS2005 запустил настроил датасет все работает, попробывал внести корректировку сразу ошибка : Must declare the scalar variable "@CRM_Filtered ....
какие бы танцы с бубном я не делал ошибка не исчезает. в итоге решил пользуясь SDK сделать примитивный отчет свой, но выходит таже фигня : Код: DECLARE @SQL nvarchar(4000) DECLARE @SQL1 nvarchar(4000) DECLARE @SQL2 nvarchar(4000) --DECLARE @CRM_FilteredActivityPointer nvarchar(4000) SET @SQL = ' /* Creating Temp table to store all the data for final query */ CREATE TABLE #temp ( [activityid] [uniqueidentifier] PRIMARY KEY , [activitytypecodename][nVarchar](100) NULL , [owneridname] [nVarchar](100) NULL, ) ' SET @SQL1 = ' insert #temp SELECT activityid ,activitytypecodename, owneridname FROM ('+@CRM_FilteredActivityPointer+') AS FA ' SET @SQL2 = ' /* Select statement to retrieve data from Temp table */ select count(activityid) AS activitycount, activitytypecodename, owneridname from #temp group by activitytypecodename, owneridname ' EXEC (@SQL+@SQL1+@SQL2) PS. ой не в той области разместил (можно перенести в подкаталог Разаработки) |
|
11.08.2009, 13:12 | #2 |
Чайный пьяница
|
Добрый день.
Объявите этот параметр, как параметр в датасете в отчёте.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
11.08.2009, 13:19 | #3 |
Участник
|
он объявлен в Report Parametrs.
|
|
11.08.2009, 13:37 | #4 |
Чайный пьяница
|
Параметры отчёта и параметры датасета - разные вещи. Этот параметр ещё надо объявить и для датасета. Смотрите скриншот.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
За это сообщение автора поблагодарили: e.pasechny (1). |
11.08.2009, 13:43 | #5 |
Участник
|
Супер, заработало. неделю уже маюсь.
|
|
11.08.2009, 13:44 | #6 |
Чайный пьяница
|
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
17.02.2014, 17:08 | #7 |
Участник
|
День добрый. Подскажите пожалуйста. Пытаюсь реализовать предварительную фильтрацию, но ничего не получается, постоянно где то ошибки валятся.
1. Создал отчет. 2. В Параметрах создал переменную CRM_FilteredOpportunity 3. Создал датасет с таким запросом: Цитата:
DECLARE @SQL nvarchar(4000)
SET @SQL = 'SELECT name, ISNULL ((SELECT SUM(new_estimatedvaluethisyear) FROM ('+@CRM_FilteredOpportunity+') as fa where (new_mgt = FilteredBusinessUnit.businessunitid)),0) FULLVALUE, ISNULL ((SELECT SUM(new_estimatedvaluethisyear) FROM ('+@CRM_FilteredOpportunity+') as fa where (new_mgt = FilteredBusinessUnit.businessunitid) and (new_Probability = 100000000)),0) F0, ISNULL ((SELECT SUM(new_estimatedvaluethisyear) FROM ('+@CRM_FilteredOpportunity+') as fa where (new_mgt = FilteredBusinessUnit.businessunitid) and (new_Probability = 100000001)),0) F1, ISNULL ((SELECT SUM(new_estimatedvaluethisyear) FROM ('+@CRM_FilteredOpportunity+') as fa where (new_mgt = FilteredBusinessUnit.businessunitid) and (new_Probability = 100000002)),0) F2 from FilteredBusinessUnit GROUP BY name, businessunitid' EXEC (@SQL) Но вся эта связка не работает. Прошу помощи. |
|
17.02.2014, 17:44 | #8 |
Чайный пьяница
|
А вы принтом посмотрите какой у вас запрос получается. Я сходу не понял, что вы хотите получить в результате:
Код: Declare @CRM_FilteredOpportunity VarChar(Max) Set @CRM_FilteredOpportunity = 'Select * From FilteredOpportunity' DECLARE @SQL nvarchar(4000) SET @SQL = 'SELECT name, ISNULL ((SELECT SUM(new_estimatedvaluethisyear) FROM ('+@CRM_FilteredOpportunity+') as fa where (new_mgt = FilteredBusinessUnit.businessunitid)),0) FULLVALUE, ISNULL ((SELECT SUM(new_estimatedvaluethisyear) FROM ('+@CRM_FilteredOpportunity+') as fa where (new_mgt = FilteredBusinessUnit.businessunitid) and (new_Probability = 100000000)),0) F0, ISNULL ((SELECT SUM(new_estimatedvaluethisyear) FROM ('+@CRM_FilteredOpportunity+') as fa where (new_mgt = FilteredBusinessUnit.businessunitid) and (new_Probability = 100000001)),0) F1, ISNULL ((SELECT SUM(new_estimatedvaluethisyear) FROM ('+@CRM_FilteredOpportunity+') as fa where (new_mgt = FilteredBusinessUnit.businessunitid) and (new_Probability = 100000002)),0) F2 from FilteredBusinessUnit GROUP BY name, businessunitid' Print @sql EXEC (@SQL)
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
17.02.2014, 18:05 | #9 |
Участник
|
Если без "print @Sql", то выдает именно то что надо, список дирекций, и в столбцы суммы по определенным полям разбитые на статусы.
Проблема в том, что если оставить запрос как Вы предлагаете, т.е. с объявлением переменной непосредственно в запросе, то он не работает в CRM, но отлично себя чувствует в редакторе. А если переменная создана а Параметрах, то вообще не работает нигде. |
|
Теги |
parameters passing, reporting services, report |
|
|