從 SSRS 文本框項執行 SQL 儲存過程 - 是否可能
我知道我們可以在 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。
其次,使用 SSRS 嵌入自定義程式碼(這裡有一些我認為有用的範例):
http://www.davidgiard.com/2012/09/07/EmbeddedCodeInAnSSRSReport.aspx
最後,創建一個程序集來呼叫自定義函式(呼叫您的過程):
http://davidgiard.com/2012/09/11/CallingAnExternalAssemblyFromSSRS.aspx