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, но отлично себя чувствует в редакторе. А если переменная создана а Параметрах, то вообще не работает нигде. |
|
17.02.2014, 18:13 | #10 |
Чайный пьяница
|
Цитата:
Сообщение от FeRRum17
Если без "print @Sql", то выдает именно то что надо, список дирекций, и в столбцы суммы по определенным полям разбитые на статусы.
Проблема в том, что если оставить запрос как Вы предлагаете, т.е. с объявлением переменной непосредственно в запросе, то он не работает в CRM, но отлично себя чувствует в редакторе. А если переменная создана а Параметрах, то вообще не работает нигде. Пересмотрел ещё раз запрос. Стало понятно что и как вы выбираете. Сразу не понял глубину замысла. Сходу - ошибку не видно. Запрос честный, должен работать. Потому сразу задам несколько вопросов-советов: 1. Какой тип датасорса используете в отчёте? Должен быть Embedded (никаких там Shared). 2. Попробуйте удалить отчёт из CRM и пересоздать его заново. 3. Если это не поможет - включайте трейсинг, перезапускайте ИИС и запускайте заново отчёт - должно принести читабельную ошибку что же там не так. 4. Если и это не поможет - то профайлер вам в помощь. Аминь. PS Если что - пишите о результатах, постараюсь помочь.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
За это сообщение автора поблагодарили: FeRRum17 (1). |
17.02.2014, 18:44 | #11 |
Участник
|
Очень большое спасибо за наведение на нужную мысль. Проблема была на поверхности и заключалось в незнании и малом опыте. Я привык что, поля в запросе прописываются автоматически при выполнении запроса, а оказалось, что при подобном раскладе их необходимо прописывать ручками в соответствующий раздел свойств набора данных.
|
|
17.02.2014, 18:54 | #12 |
Чайный пьяница
|
Цитата:
Сообщение от FeRRum17
Очень большое спасибо за наведение на нужную мысль. Проблема была на поверхности и заключалось в незнании и малом опыте. Я привык что, поля в запросе прописываются автоматически при выполнении запроса, а оказалось, что при подобном раскладе их необходимо прописывать ручками в соответствующий раздел свойств набора данных.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit Последний раз редактировалось a33ik; 17.02.2014 в 18:57. |
|
Теги |
parameters passing, reporting services, report |
|
|