SQL Server Reporting Services レポート実行の抑制方法:その他の方法
SQL Server Reporting Services: レポート実行の抑制方法
SQL Server Reporting Services (SSRS) は、レポートの作成、配信、管理を可能にする強力なツールです。しかし、特定の状況では、レポートを開いたときに自動的に実行されるのを抑制したい場合があります。
方法
レポート実行を抑制するには、以下の方法があります。
レポートパラメータを使用する
レポートパラメータを使用して、レポートの実行を制御できます。例えば、IsRun
という名前のブール型パラメータを作成し、デフォルト値を False
に設定できます。レポートを開くときに、このパラメータを True
に設定することで、レポートを実行できます。
レポートを開くための URL にパラメータを追加することで、レポートの実行を制御できます。例えば、?IsRun=False
というパラメータを追加することで、レポートを開いても実行されません。
レポートプロパティを使用する
レポートプロパティを使用して、レポートの自動実行を無効にすることができます。レポートのプロパティダイアログで、実行時にパラメータをプロンプト表示
オプションをオフにします。
コードを使用する
レポートコードを使用して、レポートの実行を制御できます。例えば、ReportViewer
クラスの Render
メソッドを使用する前に、IsRunning
プロパティを False
に設定できます。
- 上記の方法のいずれを使用する場合でも、レポートが既に実行されている場合は、レポートの実行を中止することはできません。
- レポートの実行を抑制する必要がある場合は、セキュリティ上の理由から、レポートパラメータまたは URL パラメータを使用することをお勧めします。
@IsRun bool
SELECT
*
FROM
[AdventureWorks].[Sales].[SalesOrderHeader]
WHERE
@IsRun = True
http://localhost/Reports/Report.aspx?IsRun=False
- レポートのプロパティダイアログを開きます。
- 実行時にパラメータをプロンプト表示 オプションをオフにします。
using System;
using System.Drawing;
using System.Windows.Forms;
using Microsoft.Reporting.WinForms;
namespace ReportViewerExample
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// レポートパラメータを作成します。
ReportParameter isRunParameter = new ReportParameter("IsRun", "False");
// レポートにパラメータを追加します。
reportViewer1.LocalReport.SetParameters(new ReportParameter[] { isRunParameter });
// レポートを表示します。
reportViewer1.RefreshReport();
}
}
}
- 上記のコードは、C# で記述されています。
- コードを実行するには、Visual Studio などの開発環境が必要です。
レポートサブスクリプションを使用して、レポートを特定のスケジュールで配信できます。サブスクリプションを作成する際に、レポートの実行を抑制するオプションを選択できます。
ロールセキュリティを使用する
レポートの実行を許可するユーザーを制御するために、ロールセキュリティを使用できます。特定のユーザーロールに対して、レポートの実行権限を付与しないことで、レポート実行を抑制できます。
データソースの接続を切断する
レポートがデータソースに接続できない場合、レポートは実行されません。レポート実行前に、データソースへの接続を切断することで、レポート実行を抑制できます。
レポートファイルを削除する
レポートファイルが存在しない場合、レポートは実行されません。レポート実行前に、レポートファイルを削除することで、レポート実行を抑制できます。
カスタムコードを使用する
レポートの実行を制御するために、カスタムコードを使用できます。例えば、レポートサーバーの拡張機能を作成して、レポートの実行を許可するかどうかを判断できます。
これらの方法は、状況によっては有効ですが、上記で紹介した方法よりも複雑な場合があります。これらの方法を使用する前に、それぞれの方法の詳細を理解する必要があります。
sql-server reporting-services