2

SQL Server Reporting Services(SSRS)へのレポートの一括アップロードに優れたRSBuildを使用しましたが、画像を一括アップロードする方法が見つかりません。レポートマネージャーを使用して一度に1つの画像をアップロードするのはばかげています。問題は、RSBuildが使用するSQL ServerReportingWebサービスが画像のアップロードをサポートしていないことです。他の方法でSSRSに画像を一括アップロードする方法はありますか?

4

2 に答える 2

1

最初に1つの画像を手動でアップロードして、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
于 2012-06-01T17:21:10.443 に答える
1

SSRSソリューションで複数の画像を読み込むには、次の方法を使用しました。とても簡単ですまず、レポート内の外部画像をリンクする新しい画像フォルダをレポートマネージャに作成します

  1. VisualStudioを開きます
  2. ファイルに移動
  3. [開く]を選択します
  4. ファイルを選択
  5. 「画像」などと呼ばれる新しいフォルダを作成します
  6. このフォルダに必要なすべての画像を貼り付けます
  7. 次に、ソリューションエクスプローラーに移動します
  8. 「レポート」を選択して右クリック
  9. [追加]、[既存のアイテム]の順に選択します
  10. 作成したばかりの新しいフォルダに移動します
  11. 下部のファイルタイプを「すべてのファイル」に変更します
  12. 必要なすべての画像を選択します。すべてを選択するためのショートカットは、Ctrlキーと文字Aです。
  13. 「追加」をクリックします
  14. すべての画像は、ソリューションエクスプローラーのレポートの下に追加されます
  15. [デバッグ]メニューに移動し、ここに示すようにソリューションのプロパティを選択します ソリューションのプロパティ

  16. レポートマネージャーで作成した新しい画像フォルダーの名前と一致するように、TargetReportFolderを一時的に変更します

  17. ソリューションエクスプローラーで、(レポートではなく)すべての画像を右クリックします
  18. 「デプロイ」を選択します

Visual Studioで展開が成功したことを確認してから、レポートマネージャーフォルダーに移動し、イメージがそこにあることを確認します。

忘れないでください:TargetReportFolderを前の値にリセットしてください!

レポートマネージャーの画像フォルダー

于 2017-07-07T16:29:41.730 に答える