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