2012-06-07 4 views
1

Я разработал отчет с тремя различными параметрами, чтобы пользователи могли регистрироваться в ad hoc и выбирать, что им нужно, и запускать отчет. Добавление всех различных комбинаций параметров и 150 отчетов.ssrs запустить все параметры опции

Теперь требования были изменены так, что нам нужны все 150 отчетов, выполненных в Excel и сохраняемых в сети каждый месяц. Как я могу запланировать все 150 вариантов для запуска и сохранения в excel (без 150 подписки). Thanks

ответ

1

Вы используете Enterprise Edition? Если это так, вы можете создать подписку на основе данных. Вам нужно будет настроить таблицу с 150 строками в ней, по крайней мере, с тремя столбцами, представляющими каждый параметр. Для гибкости я бы добавил столбец для формата рендеринга (EXCEL) и для целевой папки. Затем вы можете создать одну подписку.

В противном случае, если у вас есть только стандартная версия, ваш единственный выбор - создать 150 подписчиков. В этом случае я был бы склонен писать сценарий для использования с RS.EXE для создания 150 подписчиков.

Вот пример сценария, который создает файл Excel. Я перечитываю ваше сообщение и решил, что вам действительно не нужен аспект подписки. Вам просто нужно отобразить отчет, а затем запланировать его, просто создайте командный файл для командной строки и запланируйте его с помощью агента SQL Server.

Этот код взят из образца при http://msdn.microsoft.com/en-us/library/reportexecution2005.reportexecutionservice.render(v=sql.100).aspx#Y1258

Вы печатаете это с помощью блокнота, а затем сохраните файл как renderExcel.rss. Расширение файла важно - не сохраняйте его как txt-файл. Конечно, измените путь к файлу, имена параметров и значения. Я просто попросил их выполнить на моей машине dev и убедиться, что это действительно работает!

Public Sub Main() 

    rs.Credentials = System.Net.CredentialCache.DefaultCredentials 

    ' Render arguments 
    Dim result As Byte() = Nothing 
    Dim reportPath As String = "/Sales/Reseller Sales Cumulative Sales" 
    Dim format As String = "EXCEL" 
    Dim historyID As String = Nothing 
    Dim devInfo As String = Nothing 


    ' Prepare report parameter. 
    Dim parameters(2) As ParameterValue 
    parameters(0) = New ParameterValue() 
    parameters(0).Name = "SalesTerritoryGroup" 
    parameters(0).Value = "Europe" 
    parameters(1) = New ParameterValue() 
    parameters(1).Name = "Year" 
    parameters(1).Value = "2007" 
    parameters(2) = New ParameterValue() 
    parameters(2).Name = "Quarter" 
    parameters(2).Value = "1" 

    Dim credentials As DataSourceCredentials() = Nothing 
    Dim showHideToggle As String = Nothing 
    Dim encoding As String 
    Dim mimeType As String 
    Dim warnings As Warning() = Nothing 
    Dim reportHistoryParameters As ParameterValue() = Nothing 
    Dim streamIDs As String() = Nothing 

    Dim execInfo As New ExecutionInfo 
    Dim execHeader As New ExecutionHeader() 
    Dim SessionId As String 
    Dim extension As String = "" 

    rs.ExecutionHeaderValue = execHeader 

    execInfo = rs.LoadReport(reportPath, historyID) 

    rs.SetExecutionParameters(parameters, "en-us") 

    SessionId = rs.ExecutionHeaderValue.ExecutionID 
    Console.WriteLine("SessionID: {0}", rs.ExecutionHeaderValue.ExecutionID) 


    Try 
    result = rs.Render(format, devInfo, extension, _ 
      encoding, mimeType, warnings, streamIDs) 


    Catch e As SoapException 
    Console.WriteLine(e.Detail.OuterXml) 
    End Try 
    ' Write the contents of the report to an Excel file. 
    Try 
    Dim stream As FileStream = File.Create("myReport.xls", result.Length) 
    Console.WriteLine("File created.") 
    stream.Write(result, 0, result.Length) 
    Console.WriteLine("Result written to the file.") 
    stream.Close() 
    Catch e As Exception 
    Console.WriteLine(e.Message) 
    End Try 
End Sub 

Чтобы выполнить это, вам нужно запустить в командной строке:

rs -i renderExcel.rss -s http://localhost/reportserver -e Exec2005 

Этот код создает только один файл. Вам нужно добавить путь к нему, чтобы установить параметры для каждой комбинации параметров, а затем визуализировать.

+0

Спасибо Stacia. У меня нет корпоративного издания. Можете ли вы сделать образец сценария для меня, который отображает отчет, чтобы выбрать специальный параметр? – user1443202

+0

Я могу - но это будет несколько дней. Сейчас я под ружьем. – Stacia

+0

Несомненно, без проблем я ценю вашу помощь. – user1443202

Смежные вопросы