RS.exe подписать отчет с параметрами

Я пытаюсь создать динамические подписки на отчеты через rs.exe. Как бы то ни было, я не могу заставить параметры работать. Конечным значением является дата / время, поэтому я думаю, что это может быть причиной, но я не знаю, что с этим делать. Я пробовал кастинг, но ошибка msg. остается такой же.

вызов 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: Аргумент n не задан для параметра "Параметры" публичной функции CreateSubscription(отправка в виде строки, расширение набора в качестве Microsoft.SqlServer.ReportingServices2005. ExtensionSettings, Описание в виде строки, EventType в виде строки, MatchData в виде строки, Parameters() в виде Microsoft.SqlServer.ReportingServices2005.ParameterValue) в виде строки '.

2 ответа

Решение

Позвольте мне научить вас, как программировать в.Net. Звучит просто, все, что вам нужно сделать, это передать функции, что они ожидают. Позвольте мне привести простой пример.

С этим кодом у меня есть похожая ошибка:

CS7036 Не указан аргумент, который соответствует обязательному формальному параметру 'fileName' файла 'FileInfo.FileInfo (string)'

Красная линия в кривых показывает, в чем проблема. Если я наберу открывающую скобку, она даст мне всплывающую подсказку:

Хорошо, ей нужна строка, поэтому я объявляю строку и передаю ее функции, как ожидается:

Итак, проблема у вас в том, что вы не даете CreateSubscription функционировать параметры, которые он ожидает.

Аргумент не указан для параметра "Параметры" открытой функции CreateSubscription

Чтобы исправить это, предоставьте все обязательные параметры для метода 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, не является обязательным. Пожалуйста, обратитесь к ссылке и обновите способ вызова функции. Ошибка ясна, вам не хватает параметров, который является последним. Посмотрите на нижнюю часть страницы для примера.

https://technet.microsoft.com/en-us/library/microsoft.wssux.reportingserviceswebservice.rsmanagementservice2005.reportingservice2005.createsubscription(v=sql.90).aspx

Другие вопросы по тегам