[英]RS.exe subscribe report with parameters
我正在嘗試通過 rs.exe 創建動態報告訂閱。 我怎么不能讓參數工作。 enddate 值是數據/時間,所以我認為這可能是造成它的原因,但我不知道該怎么辦。 我試過鑄造,但錯誤消息。 保持不變。
rs.exe 調用:
C:\Program Files (x86)\Microsoft SQL Server\130\Tools\Binn>rs.exe -i C:\Users\me\Desktop\rss_gen\subs.rss -s "localhost/ReportserverT"
subs.rss 文件:
Public Sub Main()
rs.Credentials = System.Net.CredentialCache.DefaultCredentials
Dim desc As String = "Report description"
Dim eventType As String = "TimedSubscription"
Dim scheduleXml As String = "<ScheduleDefinition><StartDateTime>2017-12-08T15:00:00</StartDateTime><WeeklyRecurrence><WeeksInterval>1</WeeksInterval><DaysOfWeek><Thursday>True</Thursday></DaysOfWeek></WeeklyRecurrence></ScheduleDefinition>"
Dim parameters() As ParameterValue
' If you need setup parameters
Dim parameter As ParameterValue
parameter.Name = "enddate"
parameter.Value = "2017-12-30 10:03:01.250" 'this is date/time
parameters(0) = parameter
Dim matchData As String = scheduleXml
Dim returnValue As String
Dim reports() As String = { _
"/My Folder/report"}
For Each report As String In reports
returnValue = rs.CreateSubscription(report, parameters)
Console.WriteLine(returnValue)
Next
End Sub 'Main`enter code here`
錯誤消息:
C:\\Users\\mee\\AppData\\Local\\Temp\\11\\dhexge0m.1.vb(43):錯誤 BC30455:未為“公共函數 CreateSubscription(報告為字符串,擴展設置為 Microsoft)的參數”指定參數.SqlServer.ReportingServices2005. ExtensionSettings, Description As String, EventType As String, MatchData As String, Parameters() As Microsoft.SqlServer.ReportingServices2005.ParameterValue) As String'。
讓我教你一個在 .Net 和一般情況下編程的技巧。 聽起來很簡單,您需要做的就是傳遞他們期望的功能。 讓我給你舉個簡單的例子。
使用此代碼,我遇到了與您類似的錯誤:
CS7036 沒有給出與“FileInfo.FileInfo(string)”的所需形式參數“fileName”相對應的參數
波浪形的紅線告訴您問題出在哪里。 如果我輸入左括號,它會給我一個工具提示,其中包含它所期望的內容:
好的,它需要一個字符串,所以我聲明了一個字符串並按預期將其提供給函數:
所以你的問題是因為你沒有給CreateSubscription
函數它期望的參數。
未為“公共函數 CreateSubscription”的參數“Parameters”指定參數
要修復它,請向ReportingService2005.CreateSubscription 方法提供所有必需參數:
public static void Main()
{
ReportingService2005 rs = new ReportingService2005();
rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
string report = "/SampleReports/Employee Sales Summary";
string desc = "Send email to anyone@microsoft.com";
string eventType = "TimedSubscription";
string scheduleXml = @"<ScheduleDefinition><StartDateTime>2003-02-24T09:00:00-08:00</StartDateTime><WeeklyRecurrence><WeeksInterval>1</WeeksInterval><DaysOfWeek><Monday>True</Monday></DaysOfWeek></WeeklyRecurrence></ScheduleDefinition>";
ParameterValue[] extensionParams = new ParameterValue[8];
extensionParams[0] = new ParameterValue();
extensionParams[0].Name = "TO";
extensionParams[0].Value = "dank@adventure-works.com";
extensionParams[1] = new ParameterValue();
extensionParams[1].Name = "ReplyTo";
extensionParams[1].Value = "reporting@adventure-works.com";
ParameterValue parameter = new ParameterValue();
parameter.Name = "EmpID";
parameter.Value = "38";
ParameterValue[] parameters = new ParameterValue[1];
parameters[0] = parameter;
string matchData = scheduleXml;
ExtensionSettings extSettings = new ExtensionSettings();
extSettings.ParameterValues = extensionParams;
extSettings.Extension = "Report Server Email";
try
{
rs.CreateSubscription(report, extSettings, desc, eventType, matchData, parameters);
}
catch (SoapException e)
{
Console.WriteLine(e.Detail.InnerXml.ToString());
}
}
作為 2005 年 ms SQL 報告服務的一部分,傳遞給 CreateSubscription 的參數都不是可選的。 請參考鏈接並更新您調用該函數的方式。 錯誤很明顯,您缺少最后一個參數。 查看頁面底部的示例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.