+7 (495) 229-0436   shopadmin@itshop.ru 119334, г. Москва, ул. Бардина, д. 4, корп. 3
 
 
Вход
 
 
Каталог
 
 
Подписка на новости
Новости ITShop
Windows 7 и Office: Новости и советы
Обучение и сертификация Microsoft
Вопросы и ответы по MSSQLServer
Delphi - проблемы и решения
Adobe Photoshop: алхимия дизайна
 
Ваш отзыв
Оцените качество магазина ITShop.ru на Яндекс.Маркете. Если вам нравится наш магазин - скажите об этом Google!
 
 
Способы оплаты
 
Курс расчета
 
 1 у.е. = 94.09 руб.
 
 Цены показывать:
 
 
 
 
  
Новости, статьи, акции
 

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

19.12.2013 11:52
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

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

  
Помощь
Задать вопрос
 программы
 обучение
 экзамены
 компьютеры
Бесплатный звонок
ICQ-консультанты
Skype-консультанты

Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 
Бестселлеры
Курсы обучения "Atlassian JIRA - система управления проектами и задачами на предприятии"
Microsoft Windows 10 Профессиональная 32-bit/64-bit. Все языки. Электронный ключ
Microsoft Office для Дома и Учебы 2019. Все языки. Электронный ключ
Курс "Oracle. Программирование на SQL и PL/SQL"
Курс "Основы TOGAF® 9"
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год. Электронный ключ
Курс "Нотация BPMN 2.0. Ее использование для моделирования бизнес-процессов и их регламентации"
 

О нас
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.

На протяжении многих лет интернет-магазин предлагает товары и услуги, ориентированные на бизнес-пользователей и специалистов по информационным технологиям.

Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе.

В нашем магазине вы можете приобрести лицензионное ПО выбрав необходимое из широкого спектра и ассортимента по самым доступным ценам. Наши менеджеры любезно помогут определиться с выбором ПО, которое необходимо именно вам. Также мы проводим учебные курсы. Мы приглашаем к сотрудничеству учебные центры, организаторов семинаров и бизнес-тренингов, преподавателей. Сфера сотрудничества - продвижение бизнес-тренингов и курсов обучения по информационным технологиям.



 

О нас

 
Главная
Каталог
Новинки
Акции
Вакансии
 

Помощь

 
Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 

Способы оплаты

 

Проекты Interface Ltd.

 
Interface.ru   ITShop.ru   Interface.ru/training   Olap.ru   ITnews.ru  
 

119334, г. Москва, ул. Бардина, д. 4, корп. 3
+7 (495) 229-0436   shopadmin@itshop.ru
Проверить аттестат
© ООО "Interface Ltd."
Продаем программное обеспечение с 1990 года