Настраиваемые сборки

image4

Сборка — модуль повторно используемого программного кода, обычно подготовленный с помощью языка программирования.NET в среде Visual Studio и часто скомпилированный в DLL-файл, содержащий повторно используемые функции и другую программную логику. Специализированную сборку можно применить, чтобы расширить функциональность отчетов на многие отчеты на одном сервере. Например, если нужно обработать параметрические бизнес-правила, распространяющиеся за рамки возможностей языка запросов, такого как Т-8 (или MDX), можно задействовать специализированную сборку для управления запросом к набору данных отчета и связанным поведением отчета. SQL — мощный язык, с помощью которого можно обработать достаточно громоздкую бизнес-логику. При возможности можно задействовать язык запросов — и особенно устойчивые объекты базы данных, такие как хранимые процедуры, — для инкапсуляции сложных правил. Лучшие примеры наиболее эффективного применения этого метода гораздо сложнее, чем я привожу в данной статье. Однако показанные приемы представляют интерес и в некоторых случаях могут оказаться необходимыми.
Создание специализированной сборки
В следующем примере показано, как построить специализированную сборку, которая собирает инструкцию T-SQL на основе нескольких параметризованных аргументов. Сборка проектируется в среде Visual Studio 2010 в проекте библиотеки классов, который может быть частью того же решения, что и проект отчета. После тестирования сборка развертывается в доверенных папках, где ее можно использовать в SQL Server Data Tools (SSDT) или конструкторе отчетов Business Intelligence Development Studio (BIDS) на сервере отчетов. Проект выполнен в Visual Basic.NET, но с тем же успехом можно использовать С. Рабочий экземпляр отчета и образцовый программный код проекта можно загрузить, нажав кнопку Download.
Создание представления и проекта библиотеки классов
Первая задача — создать представление vSalesByTimeAndTerritory в базе дан н ы х Ad ve n t u re Wo rks D W2 012. Убедившись, что вы имеете разрешение на создание объектов в этой базе данных, откройте окно запросов SQL Server Management Studio (SSMS) и выполните сценарий листинга 1, чтобы создать представление. Затем необходимо создать проект библиотеки классов в среде Visual Studio, выполнив следующие действия.
1. Из меню File в Visual Studio выберите New и пункт Project.
2. В окне Add New Project («Добавление нового проекта») выберите Visual Basic в области Installed Templates («Установленные шаблоны»).
3. На центральной панели выберите Class Library («Библиотека классов») и назовите проект Report_ Class_Lib.
4. В обозревателе решений измените имя класса файлов по умолчанию на ReportLib.cls.
5. Откройте ReportLib.cls в редакторе кода Visual Basic. Работая с этим редактором, рекомендуется включить функции завершения и отладки, чтобы упростить работу. Например, если представлен список объектов, можно выбрать нужный объект с помощью клавиш со стрелками, а затем добавить свой код нажатием клавиши Tab. Можно также нажать клавишу Enter, чтобы выбрать объект и добавить новую строку кода.
6. После объявления Public Class ReportLib введите исходный текст из листинга 2. Он создает функцию SalesQuery, которая строит запрос T — SQL на основе условной логики в программном коде. Обратите внимание, что символы продолжения строки необязательны и приведены только для того, чтобы исходный текст уместился на странице. При желании можно пропустить символы подчеркивания (_) и возвраты каретки в каждой строке, завершающейся символом подчеркивания.
7. Выполните проверку на наличие ошибок и предупреждений с красными или зелеными извилистыми линиями под ключевыми словами. 8. В обозревателе решений щелкните правой клавишей мыши проект Rcport_Class_Lib и выберите пункт Build («Сборка»).