Хотя библиотека с открытым исходным кодом QRCode4CS, использованная в статье "Генерация двумерных штрих-кодов QR Code® в отчете SSRS", позволяет отображать QR-коды в отчетах SSRS, оказалось, что она поддерживает только стандарт Micro QR Code, который ограничивает строку ввода до 34 символов. В отличие от этого, библиотека QRCoder с открытым исходным кодом может поддерживать строку ввода до 2952 символов. В этой статье используется код, извлеченный из архива проекта QRCoder: https://github.com/codebude/QRCoder/archive/master.zip >> QRCoder-master.zip. Вот шаги, необходимые для создания отчета SSRS, который отображает символы QR-кода с помощью библиотеки QRCoder Получите существующие или скомпилируйте две сборки QRCoder со строгими именами и атрибутом PartiallyTrustedCallers*. Установите их в глобальный кэш сборок (GAC) с помощью утилиты gacutil.exe Создайте новый отчет SSRS, который запрашивает таблицу тестовых данных. Добавьте ссылку на сборку QRCoderImageToByteArray в GAC  Добавьте функцию пользовательского кода, которая отправляет строку в сборку QRCoderImageToByteArray и принимает в ответ массив байтов Добавьте поле в отчет и увеличьте его физические размеры для размещения развернутого символа QR-кода Перетащите компонент изображения в новое поле, чтобы появился диалоговое окно свойств изображения. Измените источник изображения на Database (база данных), добавьте функцию, ссылающуюся на функцию пользовательского кода, и измените тип MIME на image/png (изображение/png). Установите свойство размера компонента изображения, чтобы заполнить доступное пространство поля, сохраняя при этом исходное соотношение сторон. Выполните отчет, чтобы отобразить данные и QR-код, сгенерированный на их основе. * Для вставки сборки в GAC требуется сильное имя. SSRS требует, чтобы сборки, на которые он ссылается, включали атрибут PartiallyTrustedCallers. Распакуйте приаттаченный файл QRCoderResources.zip и перейдите к извлеченной папке QRCoderResources в File Explorer. Папка QRCodeDemoExe содержит исполняемый файл, который можно использовать для тестирования выходных данных библиотеки QRcode. Папки QRCoderDemoSln, QRCoderImageToByteArraySln и QRCodeSln содержат проекты C#, используемые для компиляции демонстрационного приложения QR Coder и сборок. (При желании вы можете загрузить эти проекты в Visual Studio или SharpDevelop и скомпилировать их самостоятельно). Папка StronglyNamedPartiallyTrustedCallersDLLs содержит сборки, которые будут использоваться для генерации QR-кодов в отчете SSRS. Файл QRCoder-master.zip - это оригинальный архив QRCoder, загруженный с github. Перейдите в папку QRCoderDemoExe, чтобы отобразить сборку QRCoder.dll и приложение QRCoderDemo, которое использует ее для генерации QRC-кодов. Дважды кликните по приложению QRCodeDemo, чтобы сгенерировать символ QRCode. По умолчанию приложение генерирует QR-код для строки 1234567890. Но вы можете ввести любые значения в текстовое поле, чтобы сгенерировать символ для данного ряда. Протестируйте приложение с типичными строками из знаков, которые вы хотите преобразовать в символы QR-кода. Считайте полученные символы с помощью выбранного вами устройства для чтения QR-кодов, чтобы убедиться, что библиотека подходит для ваших целей. Перейдите в папку StronglyNamedPartiallyTrustedCallersDLLs. Сборка QRCoder.dll может генерировать символы QR-кода из входной строки в различных форматах изображений, включая растровые. Однако SQL Server Reporting Services не может отображать изображения напрямую, а требует, чтобы они передавались в виде массивов байтов. Для решения этой проблемы сборка QRCoderImageToByteArray.dll передает входную строку в функцию BitmapByteQRCode() сборки QRCoder.dll и направляет возвращаемое растровое изображение в виде массива байтов в SSRS. Найдите файл gacutil.exe с помощью Agent Ransack или File Explorer. Скопируйте путь к соответствующей 32- или 64-битной версии gacutil.exe: Откройте командную консоль от имени администратора и перейдите в папку StronglyNamedPartiallyTrustedCallersDLLs. Установите сборки в GAC с помощью следующих команд: Убедитесь, что сборки были добавлены в папку C:\Windows\Microsoft.NET\assembly\GAC_MSIL. Откройте новое окно запроса в SQL Server Management Studio и вставьте в него следующий SQL-код. Выполните запрос чтобы создать базу данных TestDB и таблицу TestData, которая содержит определенную информацию о почтовом индексе. Запустите мастер создания нового проекта Report Server Project в Visual Studio. Вставьте соответствующую информацию о строке подключения. Вставьте следующий код в текстовое поле Query string (Строка запроса). Выберите табличный тип отчета. Переместите поля "city" (город) и "zip" (почтовый индекс) в текстовое поле "Details" (подробности). Кликните на кнопку Finish (Завершение). Выберите Report Properties (Свойства Отчета) в меню Report (Отчет). Кликните на вкладку References (Ссылки), затем кнопку add (Добавить),  потом вкладку browse (Обзор) и найдите сборку QRCoderImgeToByteArray.dll в GAC. Кликните на вкладку Code (Код) и добавьте следующую функцию в текстовое поле пользовательского кода: Кликните правой кнопкой мыши в верхней части столбца zip (почтовый индекс) и вставьте новый столбец справа. Увеличьте высоту строки данных и ширину нового столбца, чтобы освободить место для развернутого символа QRCode. Перетащите компонент изображения в новое поле, чтобы открыть окно свойств изображения. Выберите Database (База данных) в качестве источника изображения и кликните на функциональную кнопку Use this field (Использовать это поле). Введите следующий код в текстовое поле выражения: Выберите image/png (изображение/png) в качестве MIME-типа: Кликните по узлу size (размер), выберите радиокнопку fit proportional (вписать в пропорции) и нажмите OK. Кликните на вкладку Preview (Предварительный просмотр) консоли отчета. В отчете отображаются city (город), zip (почтовый индекс) и QR-код для скомпонованных города и почтового индекса. Приложение для сканирования штрихкодов на моем телефоне правильно расшифровывает стоящий первым в списке символ QR-кода. В предыдущей статье об отображении символов QR-кода в отчетах SSRS использовалась библиотека с открытым исходным кодом. В то время она еще мне была неизвестна и поддерживала только стандарт Micro QR Code.standard, что приводило к ограничению входной строки в 34 символа. Библиотека QRCoder является более строгой имплементацией стандарта ISO/IEC 18004 QR Code. Она кодирует до 2952 буквенно-цифровых символов, что является максимальным значением для стандарта в двоичном формате/байтах. Ресурсы QRCoderResources.zip Материал подготовлен в рамках курса "MS SQL Server Developer". Редактор