是否可以将javascript嵌入到SSRS报告中?

SQL Server报告可以嵌入vbscript并执行客户端,但是可以使用javascript完成相同的操作吗? 我认为能够执行jQuery和CSS操作客户端以创建更具交互性的深入体验会有很大的实用性。

听起来像Reporting Services是你工作的错误前端。 RDL(报告定义)文件基本上是XML。 我不知道如何向XML添加代码。

如果您认为RDL输出是您的“数据”,那么以任何方式容纳任何行为都没有意义。 相反,您可能希望构建一个可以使用最终报告输出的前端,然后提供您正在寻找的体验。

我们在谈论SQL Server Reporting Services吗?

如果是这样,我从未见过这样做的方法。 不过,我承认这个概念会让我的皮肤爬行。

编辑

这是一个使用JavaScript在超链接中打开单独窗口的小例子 。

此博客文章可能包含有关报告服务中一些有趣的JavaScript技术的更好信息。

我知道这是一个老post,但这样的事情很好

=“javascript:void(window.open(’https://”+ Parameters!ServerName.Value +“/ ReportServer / Pages / ReportViewer.aspx?%2f”+ Parameters!Environment.Value +“%2fSSRS + Reports%2fReports %2fVE%2fMy +报告%2fData +查看%2fReport +名称%2f60-你-报告及RS:命令=渲染”, ‘_空白’))”

关于这篇文章,我有一个重要的注意事项,如果您尝试使用Visual Studio(BIDS)中的PREVIEW测试SSRS报告中的javascript,它将不会在预览模式下运行,而是在将报告部署到实际的报表服务器之后,然后在Web浏览器中查看报告时javascript将起作用。 这给我带来了很多困惑,希望能为别人省下一些麻烦。

以下是我在SSRS中经常使用javascript的具体示例。 在SSRS报告中,很高兴有超链接到Web服务或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等报表中,您可以在TextBox的Action区域中使用Javascript创建超链接,选择“Go to URL”并插入以下内容:

 "javascript:void(window.open('" + Fields!CRMOpportunityLink.Value + "','_blank'))")