2009-04-25 2 views
4

Отчеты SQL Server могут встраивать vbscript и выполнять клиентскую часть, но можно ли это сделать с помощью javascript? Я думаю, что было бы большой полезностью, чтобы иметь возможность запускать клиентскую часть jQuery и CSS, чтобы создать более интерактивный процесс сверления.Можно ли встроить javascript в отчет SSRS?

ответ

3

Речь идет о службах SQL Server Reporting Services?

Если это так, я никогда не видел метода для этого. Я признаю, что понятие заставляет меня сканировать кожу.

Редактировать

Вот small example из, чтобы открыть отдельное окно в гиперссылке с помощью JavaScript.

Это blog article может содержать еще более подробную информацию о некоторых интересных методах JavaScript в службах отчетности.

+0

Да - но то, что пугает вас о что? –

+0

Спасибо, чувак! Просто пытаюсь придумать из этого вопроса. –

+2

У меня странные страхи. Не слишком мне много – TheTXI

3

Мне кажется, что Reporting Services - это неправильный интерфейс для вашей работы. Файлы RDL (определение отчета) в основном представляют собой XML. Я не знаю, как добавить код в XML.

Если вы считаете выход RDL своим «данным», то на самом деле не имеет смысла вмешиваться в какое-либо поведение здесь любым способом. Вместо этого вы можете захотеть создать передний конец, который может потреблять окончательный вывод отчета, а затем предоставить опыт, который вы ищете.

+0

Я согласен с этим по большей части. Я, как правило, хочу уклониться от запросов, которые пытаются сделать отчет, сделать гораздо больше, чем нужно. Когда я разрабатываю отчеты в SSRS, я хочу, чтобы что-то было лучше, когда печаталось (так как это основной носитель, который будет доставлен в стороне от PDF). – TheTXI

+0

При разработке отчетов существует множество возможностей и возможностей для кодовых выражений в тексте, цветах, размерах и т. Д., Не говоря уже о функциях VBscript на уровне отчета. –

1

Я знаю, что это старый пост, однако что-то вроде этого работает отлично

= "JavaScript: недействительным (window.open ('https: //"! + Параметры ServerName.Value + "/ ReportServer/Страницы/ReportViewer.aspx?% 2f "+ Параметры! Environment.Value +"% 2fSSRS + Reports% 2fReports% 2fVE% 2fMy + Reports% 2fData + View% 2fReport + Name% 2f60-Your-Report & rs: Command = Render ',' _blank '))»

+0

+1 - спасибо за ответ. –

+2

не работает для меня, просто отображается как текст – kravits88

0

У меня есть важное замечание, чтобы добавить это сообщение, если вы попытаетесь проверить javascript в своем отчете SSRS с помощью PREVIEW в Visual Studio (BIDS), он НЕ будет запускаться в режиме предварительного просмотра, но после развертывания отчета до фактического сервер отчетов, тогда javascript будет работать при просмотре отчета в веб-браузере. Это вызвало у меня много путаницы, я надеюсь спасти других.

0

Вот пример того, когда и почему я часто использую javascript в SSRS. В отчетах SSRS приятно иметь гиперссылки на веб-службы или другие приложения за пределами SSRS. В приведенном ниже примере поле «ссылка» создается в SQL и используется в отчете SSRS для создания гиперссылки на MS Dynamics CRM на конкретную возможность конкретного руководства.

Сначала создайте поле ссылки http с чем-то вроде этого ... игнорируйте оператор case, если вам не нужно иметь другую ссылку для разных сред.

,case 
     when @@SERVERNAME like '%CF-PROD%' then 'http://cf-prod-crm01:5559/crm.ashx?id=' + CAST(c.OpportunityID as varchar(36)) 
     when @@SERVERNAME like '%CF-STG%' then 'http://cf-stg-crm01:5559/crm.ashx?id=' + CAST(c.OpportunityID as varchar(36)) 
     when @@SERVERNAME like '%CF-QA%' then 'http://cf-qa-crm01:5559/crm.ashx?id=' + CAST(c.OpportunityID as varchar(36)) 
     when @@SERVERNAME like '%CF-DEV%' then 'http://cf-dev-crm01:5559/crm.ashx?id=' + CAST(c.OpportunityID as varchar(36)) 
     END AS 'CRMOpportunityLink' 

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

В докладе, такие как SSRS, вы можете создать гиперссылку, используя Javascript в области действий в TextBox, выберите «Перейти к URL» и вставьте следующее:

"javascript:void(window.open('" + Fields!CRMOpportunityLink.Value + "','_blank'))") 
Смежные вопросы