2016-04-27 2 views
3

Наша организация имеет множество настраиваемых отчетов SSRS, которые мы запускаем из встроенного интерфейса SSRS - где пользователь может видеть и устанавливать параметры и нажимать «Просмотр отчета» для создания рендеринг HTML по умолчанию. Затем появляется небольшая панель инструментов, позволяющая им экспортировать отчет в PDF, Excel и т. Д.SSRS экспортируется в PDF автоматически со стандартного встроенного интерфейса

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

Преимущества использования встроенного интерфейса SSRS состоит в том, что мы можем писать отчеты с параметрами, значения/выбор которых генерируются в зависимости от ранее выбранных параметров. Например, если у меня есть два параметра отчета: «Школьный год» и «Название школы», я могу сделать список выпадающих списков для изменения «Название школы» в зависимости от того, что пользователь выбирает для первого параметра «Школьный год», ; и я могу сделать это внутри SSRS без найма программиста для кодирования пользовательского интерфейса выбора/генерации отчетов.

Но то, что я не могу сделать, это автоматизировать - со стандартного интерфейса - экспорт отчета в PDF после пользователь выбирает параметры и нажимает «Просмотр отчета». Но некоторые сообщения, с которыми я столкнулся сегодня, заставляют меня поверить, что мы могли бы взломать стандартный интерфейс SSRS, отредактировав файл ReportViewer.apsx на сервере SSRS.

Click here для примера взлома этого файла, чтобы добавить дополнительную функциональность в кнопку «Просмотр отчета».

Итак, все, что вы, гуру javascript, можете найти способ взломать встроенную в SSRS кнопку «Просмотр отчета», чтобы параметры были отправлены, и отчет формата PDF автоматически возвращается? (Если jQuery поможет, мы можем добавить ссылку для него).

+0

какая у вас веб-платформа? –

+0

Я предполагаю, что SSRS запускает свой встроенный интерфейс в Microsoft IIS. Так как есть файлы .aspx и все такое. – Baodad

ответ

3

То, что я собираюсь сказать вам, несомненно, не будет вашим ответом, но я думаю, что это может быть ответ, который вам нужно услышать. То, что вы запрашиваете у кого-то, что вам нужно, действительно не является лучшей практикой по многим причинам. Вот некоторые из них:

  1. Если вы нашли способ адаптировать SSRS конфигурация и исходные файлы (например, ReportViewer.aspx), такое изменение приведет к изменению пути любым и все докладов об генерируется весь сервер отчетов. Например, вы никогда не сможете генерировать отчет в формате MHTML с динамическими параметрами с использованием интерфейса SSRS.

  2. В настоящее время страница ReportViewer.aspx не настроена для отображения PDF-файла. Чтобы получить PDF-файл, вы должны использовать функции экспорта на панели инструментов SSRS или использовать параметр rs: Format, оба из которых будут загружать отчет в формате PDF.

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

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

предоставить пользователям ссылки открыть отчеты в нужном формате Вполне возможно, создавать отчеты, использующие параметры SSRS и предоставляют пользователю ссылки, которые будут генерировать файл в любом формате, определенном, и все это просто нажав на ссылку. Например, на всех наших панелях мониторинга есть ссылка «Распечатать эту страницу», которая генерирует PDF-файл со всеми соответствующими параметрами отчета.

Один конкретный пример: у нас есть панели мониторинга для наших сотрудников, которые будут отображать верхние записи Х на основе некоторых бизнес-потребностей, а затем предоставить ссылку внизу этого раздела в отчет, содержащий все записи в формате PDF в формате для печати , PDF переносит любые значения параметров, уже введенные в Dashboard в отчет PDF, оптимизируя работу пользователя.

Кроме того, вы можете создавать и настраивать то, что я называю «отчеты портала» для загрузки с минимального количества данных, чтобы минимизировать время загрузки. Для меня «Отчеты портала» предоставляют пользователям небольшую информацию, основанную на значениях параметров из восходящих отчетов или из параметров отчета в отчете портала. Затем предоставляются ссылки, позволяющие пользователю генерировать файл, содержащий конкретный набор данных, в любом формате, в котором они нуждаются. Ниже приведен снимок экрана упрощенного примера, который я использовал для своего босса. Он считывает текущее системное время и генерирует различные отчеты, доступные в форматах, которые необходимы или нужны одним нажатием кнопки. Верьте или нет, страница, которую вы видите ниже, а также все наборы данных, создаваемые по ссылкам, являются частью одного отчета.

Using links to control render format

Кроме того, вы можете контролировать, какие файлы пользователей экспортировать, контролируя то, что SSRS параметры панели инструментов пользователь видит. Вы можете изменить стиль StyleSheet по умолчанию или предоставить свои собственные StyleSheets с помощью rc: StyleSheet, чтобы отключить кнопку печати (которая редко работает в настоящее время в любом случае) или экспортировать или находить функции панели инструментов SSRS. Вот ссылка technet о том, как это сделать.

Наконец, если у вас есть ноу-хау JavaScript и некоторый опыт работы с vb.net или C# .net, вы можете обрабатывать специализированные ситуации с веб-страницей, которая запрашивает минимальный объем данных из вашей системы (систем) и предоставляет раскрывающимся спискам пользователя после чего следует ссылка для создания отчета в любом формате. Эти ориентированные на проект, одноразовые веб-страницы намного проще строить, чем полностью гибкий интерфейс .NET SSRS.

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

+0

Спасибо за ваш ответ. Это полезно. Я пытаюсь обдумать концепцию. IIUC, я могу предварительно построить и включить ссылки в свои отчеты, которые при нажатии на них по существу повторно отображают отчет с параметрами, уже выбранными пользователем в интерфейсе SSRS, а при добавлении & rs: Format = PDF, чтобы отчет попал -up или загрузить в формате PDF. Или создайте две версии одного и того же отчета с теми же параметрами, но один из них просто «портал» для рендеринга другого с выбранными параметрами? – Baodad

+1

@Baodad Да, вы, кажется, понимаете мои вопросы. При использовании любого параметра rs: или rc: URL, вы должны использовать страницу ReportViewer.aspx, а не Report.aspx. Кроме того, если время загрузки является проблемой, и вы не хотите, чтобы все загружалось дважды, у вас может быть отчет, который по сути просто загружает параметры параметров и ссылки на другие отчеты. Они, если все сделано правильно, могут загружаться почти мгновенно, что позволяет вам дважды загружать один и тот же отчет. –

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