Мы использовали отличный RSBuild для массовой загрузки отчетов в службы отчетов SQL Server (SSRS), но я не нашел способа массовой загрузки изображений. Использование диспетчера отчетов для загрузки одного изображения одновременно является глупым. Трудность состоит в том, что веб-служба SQL Server Reporting, используемая RSBuild, не поддерживает загрузку изображений. Есть ли способ массовой загрузки изображений в SSRS каким-то другим способом?Массовая загрузка изображений в SSRS
ответ
Прежде всего вам необходимо загрузить одно изображение, чтобы вы прочитали содержимое таблицы Catalog для строки изображения, вставленной в базу данных ReportServer, и используйте ParentId, PolicyId и CreatedById и ModifiedById в следующем сценарии.
Конечно, это может быть дополнительно абстрагировано в приложении и быть более устрашающим.
BEGIN TRAN
DECLARE @ReportFolderPath NVARCHAR(MAX)
DECLARE @ImageFolderPath NVARCHAR(MAX)
DECLARE @ImageFileName NVARCHAR(MAX)
DECLARE @ImageFullFileName NVARCHAR(MAX)
DECLARE @ImageFileExtension NVARCHAR(MAX)
DECLARE @ImageMime NVARCHAR(MAX)
DECLARE @ImageFullPath NVARCHAR(MAX)
DECLARE @ParentId NVARCHAR(MAX)
DECLARE @PolicyId NVARCHAR(MAX)
DECLARE @CreatedModifiedId NVARCHAR(MAX)
DECLARE @SqlToGetImageContent NVARCHAR(MAX)
DECLARE @ImageContent VARBINARY(MAX)
SET @ReportFolderPath = '/MyReports/'
SET @ImageFolderPath = 'C:\Users\jdoe\Desktop\Reports\images\'
SET @ImageFileName = 'logo'
SET @ImageFileExtension = 'bmp'
SET @ImageFullFileName = @ImageFileName + '.' + @ImageFileExtension
SET @ImageFullPath = @ImageFolderPath + @ImageFileName
SET @ParentId = '0AAFF0D8-0616-4E63-9B1D-EBF99153B443'
SET @PolicyId = '8632B07A-EE75-4097-970C-18BE9958F7A2'
SET @CreatedModifiedId = 'C6121121-D0E4-4B25-BD4E-177EDA709ECB'
SET @SqlToGetImageContent = 'SELECT @ImageContent = BulkColumn FROM Openrowset(Bulk '''+ @ImageFolderPath + @ImageFullFileName +''', Single_Blob) AS ImageData'
IF(@ImageFileExtension = 'jpg')
BEGIN
SET @ImageMime = 'image/jpeg'
END
ELSE
BEGIN
SET @ImageMime = 'image/' + @ImageFileExtension
END
EXEC SP_EXECUTESQL
@Query = @SqlToGetImageContent
, @Params = N'@ImageContent VARBINARY(MAX) OUTPUT'
, @ImageContent = @ImageContent OUTPUT
INSERT INTO [ReportServer$DEV2012].[dbo].[Catalog] (ItemID, [Path], Name, ParentID, [Type], Content, [Intermediate], SnapshotDataID, LinkSourceID, Property, [Description], Hidden, CreatedByID, CreationDate, ModifiedByID, ModifiedDate, MimeType, SnapshotLimit, Parameter, PolicyID, PolicyRoot, ExecutionFlag, ExecutionTime, SubType, ComponentID)
VALUES(
NEWID(),
@ReportFolderPath + @ImageFullFileName,
@ImageFullFileName,
@ParentId,
3,
(SELECT @ImageContent),
NULL,
NULL,
NULL,
'<Properties />',
NULL,
0,
@CreatedModifiedId,
GETDATE(),
@CreatedModifiedId,
GETDATE(),
@ImageMime,
NULL,
NULL,
@PolicyId,
0,
1,
NULL,
NULL,
NULL
)
COMMIT TRAN
Чтобы загрузить несколько изображений в решение SSRS, я использовал следующий метод. Это довольно легко Во-первых, создать новую папку изображений в Report Manager, где вы хотите, чтобы связать внешние изображения в отчете
- Open Visual Studio
- Перейдите в меню Файл
- Выберите Открыть
- Выберите Файл
- Создать новую папку под названием «образы», или как
- Вставить все изображения нежелательны в этой папке
- N ой, перейдите в обозревателе решений
- Выберите «Отчеты» и щелкните правой кнопкой мыши
- Выберите Добавить, затем «существующий пункт»
- Перейдите в новую папку только что созданной
- Изменение Тип файла в нижней части, чтобы «все Файлы "
- Выберите все необходимое изображение. Быстрый доступ, чтобы выбрать все клавиши Ctrl плюс буква А
- Нажмите кнопку «добавить»
- Все изображения будут добавлены под любые отчеты в обозревателе решений
Перейдите в меню «Отладка» и выберите решение Свойства, как показано здесь Solution Properties
Временно изменить TargetReportFolder, чтобы соответствовать имя новой картинки папки, которые вы создали в диспетчере отчетов
- в обозревателе решений щелкните правой кнопкой мыши на всех изображениях (не отчеты)
- Выберите «Deploy»
Убедитесь, что развертывание было успешным в Visual Studio, то перейдите к папке диспетчера отчетов и проверки изображения есть!
НЕ ЗАБУДЬТЕ: Сбросьте TargetReportFolder на предыдущее значение!
- 1. Массовая загрузка веб-изображений
- 2. Массовая загрузка фоновых изображений
- 3. массовая загрузка в sql
- 4. массовая загрузка и триггер
- 5. Что означает «массовая загрузка»?
- 6. Массовая загрузка в Itunes магазине
- 7. Массовая загрузка данных в sqlite?
- 8. Массовая загрузка данных в Marklogic
- 9. Authorize.net - массовая загрузка через cim
- 10. Массовая загрузка с использованием свинью
- 11. Массовая загрузка и сервлеты Java
- 12. Массовая загрузка Роли - это возможно?
- 13. Массовая/пакетная загрузка пользователей/групп в Google
- 14. Ошибка «Невозможна массовая загрузка» в NetBeans.
- 15. Массовая загрузка многих текстовых файлов в MediaWiki
- 16. SQLXML Массовая загрузка атрибута в одну таблицу
- 17. Массовая загрузка мест в Карты Google
- 18. Массовая загрузка в базу данных SAP HANA
- 19. Массовая загрузка HTTP-запросов в JMeter
- 20. улучшить производительность Массовая загрузка в cassandra
- 21. Массовая загрузка пользовательских объектов в salesforce
- 22. Массовая начальная загрузка для postgresql в SymmetricDS
- 23. AppEngine Массовая загрузка вместе с файлами
- 24. SQL Server NOLOCK с JOIN, массовая загрузка
- 25. Массовая загрузка веб-страниц с использованием Qt
- 26. Postgres Массовая загрузка с использованием контрольной карты
- 27. eBay массовая загрузка продуктов (мульти вариантов)
- 28. Массовая загрузка файлов с помощью paperclip
- 29. Массовая загрузка PostgreSQL с удаленного клиента
- 30. Массовая загрузка через Google App Engine Backend
Вы используете RSBuild только публикации отчетов? Или вы используете его для чего-нибудь еще?Я спрашиваю, потому что у нас много серверов в более низких средах, где нам нужно регулярно создавать отчеты и синхронизировать их. Вы бы рекомендовали использовать RSBuild в этом случае? – VoodooChild
@ VoodooChild Мы используем RSBuild для публикации отчетов. Вы можете автоматизировать развертывание через RSBuild на своем сервере сборки. Используя TFS, я предполагаю, что это будет прорыв. Создайте шаблон процесса сборки для этой «регулярной основы» с расписанием. Создайте собственную сборку CustomProcess, используя элементы рабочего процесса, чтобы выполнить RSBuild, а затем загрузите изображения через пользовательскую сборку. Кроме того, вы можете просто вызвать тот же веб-сервис, что и RSBuild. –