(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Microsoft Reporting Services советы начинающим

Источник: habrahabr
sashka304

Предисловие

Исторически сложилось так, что придя на новое рабочее место, мне было поручено создать несколько отчетов используя Microsoft Reporting Services. До моего прихода, компания, в которой я работаю по сей день, использовала для построения отчетов Sybase DataWindow. Но в момент моего прихода было принято решение о переходе на Reporting Services, таким образом мне выпала честь пройтись этим тернистым путем и набить не одну шишку. В процессе создания отчетов накопилось достаточно много полезных советов новичкам, некоторыми из них хочу сегодня поделиться.

0) Старайтесь использовать таблицы там где это возможно

Использование таблиц позволяет избежать большому числу проблем связанными с форматированием данных в отчете.
Рассмотрим пример с использованием texboxes:
image
Данный способ будет работать корректно до тех пор пока данные не превысят длины texboxa. Как только длина будет больше, текстбокс изменит свою высоту, что приведет либо к перекрытию остальных контролов находящихся снизу, либо остальные будут смещены вниз.

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

Примечание: посути таблица это контейнер для других контролов. Каждая ячейка по умолчанию является texbox-ом

1) Не забывайте устанавливать размеры отчету

Этим вы избежите проблем при экспорте отчета например в PDF формат. Если не указать размеры, то высока вероятность получить в место одной страницы - две и более.
В большинстве случаев отчеты печатают на лист А4, поэтому приведу пример как это может выглядеть:

1) Кликам правой клавишей на отчете и выбираем "Report properties
2) Выбираем положение(Orientation) в зависимости от отчета
3) Выбираем размер бумаги(Paper size) равный А4
4) Устанавливаем поля(В моем случае это 1 см)
5) Нажимаем "Ок"
6) Последний важный штрих: Устанавливаем ширину страницы для тела (Body) отчета. В моем случае это 19см т.к ширина А4 21см, а отступ слева и справа по 1 см. Получаем размера тела 21-2 = 19. Если использовать положение страницы Landscape (29.7 cm) то размер тела будет 27.7 см. Этот момент очень важен, если тело будет хотябы на 1 мм длиннее то при экспорте в PDF получим 2 листа вместо 1.

2) Используйте проверку на null и приведение типов при арифметических операциях

Если в ячейке таблицы задана арифметическая формула, добавьте проверку на null(Метод IsNothing ) и используйте приведение типов.
В случае с числами с плавающей точкой преобразуйте к double (Метод CDbl )
Пример использования: Допустим, что у нас в таблице есть поле которое состоит из суммы нескольких полей(Данный пример возможно не самый лучший, т.к эту сумму можно получить на уровне SQL, но для наглядности подойдет). Имеем поле А(в базе данных тип INT) и поле В(а базе данных тип Numeric(28,12)). Тогда Expression для вычисляемого поля будет выглядеть следующим образом:
=CDBl(IIF(IsNothing(Fields!A.Value),0, Fields!A.Value)) + CDBl(IIF(IsNothing(Fields!B.Value),0, Fields!B.Value))
Собственно что происходит: производим проверку значения на null если значение равно null, берем 0, иначе используем значение поля. Производим приведение к типу double(CDBl) и слаживаем. Приведение к типу double не обязательно но желательно, т.к в случае больших чисел есть большая вероятность в место результата получить #Error

3) Повторение шапки сложной таблицы на каждой странице

Для простых таблиц все просто, выставляем в свойстве таблицы флаг "Repeat header columns on each page" и дело в шляпе. В сложных таблицах(состоящих из нескольких групп ) такой способ работать не будет. Для этого нужно открыть "Advanced Mode"
image
И выбирая соответствующие строки устанавливать свойство "RepeatOnNewPage" на True
image

4) Разбивка на страницы при экспорте в Excel

Очень часто при экспорте данных в таблицу Excel возникает потребность разбивать данные на листы. Причин может быть несколько, например при использовании старых версий Excel(версия 2003 или ниже ) существуют ограничения на максимальное количество строк на 1 листе(65536 строк) или нужно на каждой странице отобразить сгруппированные данные. Для этого нам в помощь приходит группировка.
Рассмотрим пример с экспортом набора данных который превышает 65536 строк.
1) Создаем группу
2) В свойстве группы нажимаем кнопку для ввода Expression
image
и вводим условие:
=CInt(Ceilng(RowNumber(Nothing)/65000))
3) В свойствах группы на закладке Page Breaks устанавливаем флаги как показано на рисунке

5) Раскрашиваем строки

Часто необходимо произвести выделение иным цветом какие-то данные(Например сделать раскраску аля "зебра") Делается это написанием условия(Expression) для свойства BackgroundColor

= IIF(RowNumber(Nothing) Mod 2, "White", "Gainsboro")
Если необходимо выделить например отрицательные значения красным цветом, то это можно сделать следующим условием в свойстве ячейки "Color"
=IIF(ReportItems!YourCell.Value < 0, "Red", "Black")

6) Разрыв страницы

Иногда нужно вставить разрыв страницы за определенным блоком, сделать это очень просто. Необходимо разместить объект типа "Rectangle" в том месте где это необходимо.
В свойствах Rectangle установить PageBreak-BreakLocation = Between. Здесь так же есть полезное свойство "ResetPageNumber" используемое в случае если необходимо сбросить нумерацию страниц

На этому пока все, новая партия советов в следующем выпуске. Нетрадиционное использование Microsoft Reporting Services

Ссылки по теме


 Распечатать »
 Правила публикации »
  Обсудить материал в конференции Microsoft »
Обсудить материал в конференции Дизайн, графика, обработка изображений »
Написать редактору 
 Рекомендовать » Дата публикации: 19.12.2013 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Microsoft SQL Server Standard Edition 2017 Sngl OLP 1License NoLevel
Microsoft Windows Professional 10, Электронный ключ
Microsoft Office 365 Бизнес премиум. Подписка на 1 рабочее место на 1 год
Microsoft SQL CAL 2017 Sngl OLP 1License NoLevel UsrCAL
Microsoft Office 365 Профессиональный Плюс. Подписка на 1 рабочее место на 1 год
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Компьютерные книги. Рецензии и отзывы
Windows и Office: новости и советы
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
Обсуждения в форумах
Надстройка "Поиск решения" MS Excel (6)
Помогите решить задачу с помощью " поиск решения" мука яйца ...
 
Модульный метод создания сайтов (4)
Модульный метод создания (компоновки) сайтов на основе наборов типовых отлаженных функциональных...
 
Corel. Сохранение файла в старом формате. (27)
у меня есть горящий вопрос по Корелу и никто мне не может дать на него ответ. Я работаю в...
 
Рисунок/разработка персонажа (1)
Приветик всем. Увидел здесь...
 
Настройка меню "Пуск" Windows 7 при помощи реестра (3)
Скажите пожалуйста, а как можно закрепить ярлыки программ с помощью твиков реестра в левой части...
 
 
 



    
rambler's top100 Rambler's Top100