Худшие практики в дизайне отчётов 2.0

У сотрудницы, занимающейся Основными Средствами раньше был отчёт в RGW, но по каким-то причинам перестал работать. Обсудили что делать и договорились, что создадим взамен новый отчёт на сервере отчётности. Ну, вы, наверное, уже знаете, что я всегда предлагаю делать отчёты на сервере отчётности (MS SQL Server Reporting Services). Это не потому, что я не люблю RGW, с RGW я прекрасно работаю, дело не в конкретном инструменте построения отчётов, будь то RGW, Excel со встроенным VBA кодом для обращения к базе данных или какой-то Access’овский файл. У всех этих отчётов помимо удобства (за что пользователи их очень любят), есть один недостаток, а именно то, что это отдельные файлы, которые содержат не только результат, но и саму «запускалку». Эти файлы сохраняются пользователями на сетевых дисках, на локальных дисках, на флешках, отправляются по электронной почте и так далее. Никогда нельзя знать, является ли такой файл последней версией отчёта или содержит устаревший алгоритм. Иногда мы вносим изменения в отчёт, а потом пользователь не может найти последнюю версию и недоумевает, куда делось то поле, которое мы добавляли 3 месяца назад. Иное дело, когда отчёт опубликован на сервере отчётов. Вы так же можете сохранить его в виде файла с результатом отчёта, но не саму «запускалку»! Сама структура отчёта и запрос данных хранятся на сервере, что гарантирует тот факт, что это «та самая» версия. Но это так, вступление, не более того.

Я помню, что похожий отчёт был сделан лет 15 назад, когда я работал в СоюзБалтКомплекте. Поискал в «закромах Родины», но не нашёл, значит не я был его автором. Попросил коллег покопаться в архивах и, о чудо, они прислали мне нужную форму. Однако, радовался я недолго, только пока не открыл присланный отчёт:

ОС-6. Старая форма отчёта

Сразу видно, что автор раньше пользовался отчётным инструментом под названием Crystal. Вместо того, чтобы использовать объект «таблица», понавставлял отдельные текстовые поля, линии и т.п. В худших традициях Crystal’а! Воистину, хочешь сделать хорошо, сделай сам. В итоге, сэкономить время не удалось, пришлось делать «с нуля», хотя, наверняка, у кого-то из коллег это уже сделано. Жаль, что мы так и не договорились обмениваться какими-то наработками по принципу «ты мне, я тебе». Ну да бог с ним. Я обычно использую один элемент «таблица» и это, на мой взгляд, «лучшие практики»:

Новая форма отчёта ОС-6, используется элемент "таблица"

Резюме: на мой взгляд, в отчёте SSRS не следует делать то же самое, что в убогом Кристале, где нет такого объекта «таблица», нужно пользоваться преимуществами, а не следовать правилу «как привык». А вы со мной согласны?