我知道我们可以在 SSRS 中使用自定义代码,并且我知道您对 SSRS 报告中的文本框项目有操作。
是否可以为以下内容“组合”此功能,我很欣赏这与 SSRS 的正常使用完全不同
我希望从我们的 ERP 系统的 SQL 表中生成一份未完成的采购订单申请清单。在针对每个项目的报告中,将是一个带有“批准”一词的文本框,该想法是用户希望批准的申请,他们将单击“批准”,然后使用自定义代码将触发 SQL 过程,通过在申请程序的 ID 中。该程序将与 ERP 系统交互以进行审批。
这可能吗?
SSRS 报告代码的一些伪代码
Imports System.data.sqlclient
Dim connectionString AS String = "Server=XXXXXXX;Database=db1234;User Id=user_name;Password=my_password"
Dim Command As New SQLCommand("[CHC_AppBuilder].[Testssrscall]", connectionString)
Command.CommandType = CommandType.StoredProcedure
Command.ExecuteNonQuery()
SQL 过程[CHC_AppBuilder].[Testssrscall]
当前只是对我自己执行 dbmail
到目前为止的问题:
根据您在visual studio中添加引用的位置
System.data.sqlclient.dll
,到目前为止无法测试代码。触发每个项目的存储过程。
我认为当 SQL Server 在 SQL 2005/2008 中包含 SOAP/Web 服务时,这曾经更容易。使用 SOAP,您可以为 SQL Web 服务创建一个包装器,该服务将使用 URL 调用存储过程。Microsoft 在 SQL Server 2012 及更高版本的未来版本中删除了该功能。我想念功能。
我可以想到三种方法来处理这个问题,但可能还有更多:
首先创建一个 ASP.NET Web 服务
这是一个教程,可让您连接到数据库并使用 HTML 访问 Web 服务。所以基本上,你可以从任何地方调用你的存储过程——而不仅仅是 SSRS。
https://learn.microsoft.com/en-us/aspnet/web-api/overview/older-versions/build-restful-apis-with-aspnet-web-api#Exercise3
其次,使用 SSRS 嵌入自定义代码(这里有一些我认为有用的示例):
http://www.davidgiard.com/2012/09/07/EmbeddedCodeInAnSSRSReport.aspx
https://social.msdn.microsoft.com/Forums/sqlserver/en-US/cdf290fb-153d-4bc2-8964-8b550df7a087/calling-stored-procedure-from-custom-code?forum=sqlreportingservices
最后,创建一个程序集来调用自定义函数(调用您的过程):
http://davidgiard.com/2012/09/11/CallingAnExternalAssemblyFromSSRS.aspx