Динамически хранить и отправлять отчеты SSRS в формате PDF с помощью C #

У меня есть отчет в SSRS, который берет в качестве параметра SalesRepCode и Email для получения квитанции PDF. Он работает, как и должно быть, если я использую средство просмотра отчетов.

С помощью C # я хотел бы автоматически генерировать PDF-файл для каждого SalesRep, который существует, после того, как PDF-рендеринга, я хотел бы сохранить его в папке, а затем отправить его в виде вложения электронной почты.

Я просмотрел документацию MSDN класса ReportingService2005 , но это относится к версии 2005 года, и я использую SSRS 2012, и я до сих пор не нашел вещи, связанные с используемой версией.

Есть ли способ сделать это возможным?

Вы можете использовать метод Render ReportExecutionService без каких-либо проблем. Вам необходимо добавить ссылку на службу ReportExecution2005, которая является конечной точкой выполнения сервера отчетов.

пример

Ниже приведен пример из msdn и используется некоторыми небольшими изменениями. Чтобы увидеть исходный пример, посмотрите пример msdn . При использовании обратите внимание на использование PDF качестве формата, а также путь к отчету, который должен быть для вашего отчета, начиная с / и заканчивая именем отчета без .rdl .

 ReportExecutionService rs = new ReportExecutionService(); rs.Credentials = System.Net.CredentialCache.DefaultCredentials; rs.Url = "http://MyServer/reportserver/ReportExecution2005.asmx"; /* Render arguments */ byte[] result = null; string reportPath = "/MyFolder/MyReport"; string format = "PDF"; string historyID = null; string devInfo = @"<DeviceInfo><Toolbar>False</Toolbar></DeviceInfo>"; /* Prepare report parameter.*/ ParameterValue[] parameters = new ParameterValue[1]; parameters[0] = new ParameterValue(); parameters[0].Name = "SomeParameter"; parameters[0].Value = "SomeValue"; DataSourceCredentials[] credentials = null; string showHideToggle = null; string encoding; string mimeType; string extension; Warning[] warnings = null; ParameterValue[] reportHistoryParameters = null; string[] streamIDs = null; ExecutionInfo execInfo = new ExecutionInfo(); ExecutionHeader execHeader = new ExecutionHeader(); rs.ExecutionHeaderValue = execHeader; /*Load and Render Report*/ execInfo = rs.LoadReport(reportPath, historyID); rs.SetExecutionParameters(parameters, "en-us"); String SessionId = rs.ExecutionHeaderValue.ExecutionID; result = rs.Render(format, devInfo, out extension, out encoding, out mimeType, out warnings, out streamIDs); execInfo = rs.GetExecutionInfo(); /*Save File*/ System.IO.File.WriteAllBytes(@"d:\report.pdf", result); 

Я использовал веб-службу ReportingService2005 с SQL 2012 и отлично работает.

Вкратце – вы добавляете ссылку на веб-службу, Bind Params, Call Render () с PDF и сохраняете ByteStream в качестве локального файла.

Смутно 2 веб-службы (служба отчетов и служба выполнения отчетов)

Я думаю, вы можете уйти, просто используя службу выполнения отчетов.

Первое, что нужно проверить, это увидеть файл .asmx на странице SSRS ( http: //…ReportExecution2005.asmx )

  • Отправить отчет SSRS по электронной почте
  • Как перемещать столбцы деталей между родительскими группами в SSRS
  • Отобразить имя столбца SQL как значение строки в SSRS-матрице
  • Перемещение только подписки с SSRS 2008 на SSRS 2012
  • Отчет SQL Server Reporting Studio с сообщением «ERROR #» или недопустимой ошибкой типа данных
  • Несколько отчетов в SSRS с использованием той же хранимой процедуры
  • Как я могу заставить мои источники данных SSRS / наборы данных работать параллельно?
  • SSRS Subreport выполняется несколько раз, я хочу, чтобы он выполнялся один раз
  • Добавление функции «Предыдущий и следующий месяц» в календарь
  • Как создать гистограмму на SSRS
  • Какие учетные данные необходимо передавать при доступе к отчету SSRS через URL-адрес?
  • Interesting Posts

    как перемещать данные из одной базы данных в другую без пакета SSIS

    Преобразование нулевых полей даты и времени SQL Server

    Как настроить процессы контроля качества и выпуска

    Получить XML-столбец из XML в SQL Server

    Связанный сервер SQL 2008 возвращает разные результаты, чем локальный запрос

    sql Выберите идентификатор, соответствующий сочетанию столбца

    Использует ли SSL внутреннее использование хэширования?

    Должна ли таблица иметь ПК, когда у нее есть уникальный FK?

    Редактирование задачи / компонента скрипта SSIS занимает 15 секунд. открыть

    Как избежать MSDTC?

    Сценарий SQL Server 2008 – как получить текущую дату из системы и сохранить ее в столбце даты

    Вложенный оператор select в SQL Server

    Обновить таблицу из другой таблицы в SQL дает неожиданный результат

    Недопустимое имя объекта: начинающий, используя базу данных AdventureWords db из класса

    Как обновить экземпляр SQL Server Express с 2012 по 2014 год

    Давайте будем гением компьютера.