ウェブサイトで使用する多くのレポートがあります。一部のレポートをPDFとしてエクスポートすると、ファイルサイズが大きくなり、サーバーがロードのためにクラッシュします。したがって、PDFオプションへのエクスポートを、特定の問題のあるレポートに対してのみ無効にすることができればすばらしいと思います。
では、個々のレポートについて、レポートビューアー9.0(SSRS)で特定のエクスポートオプション(例:PDFへのエクスポート)を無効にする方法はありますか?
ありがとうございました。
ここやリンクされた記事の前で他の誰もそれを大声で言っていない場合に備えて:
最も優れたグローバルソリューションは、RS構成ファイルでレンダリングエンジンを見つけることです(鉱山は次の場所にあります:C:\ Program Files\Microsoft SQL Server\MSRS12.MSSQLSERVER\Reporting Services\ReportServer\rsreportserver。 config)、xmlキーに移動:Extensions> Renderそして、非表示にする各エントリの最後に次のプロパティを挿入します。
Visible = "false"
例:
<Extension Name = "XML" Type = "Microsoft.ReportingServices.Rendering.DataRenderer.XmlDataReport、Microsoft.ReportingServices.DataRendering" Visible = "false" />
または、エントリの最初と最後に<!-および->(HTMLコメントマーカー)を置きます。
個々のレポートでは、これらの関数がうまく機能します。
レポートビューアーでPre_renderイベントを使用できます。
protected void ReportViewer1_PreRender(object sender, EventArgs e)
{
DisableUnwantedExportFormat((ReportViewer)sender, "Excel");
DisableUnwantedExportFormat((ReportViewer)sender, "Word");
}
この投稿を見てください
PDFボタンを特定の設定ファイルでグローバルに非表示にできます:
「InstallPath\Reporting Services\ReportServer\rsreportserver.config」
詳細については、StackOverflowに既にこれに関するトピックがあります。
詳細については、ここで確認してください: ReportViewer-非表示PDFエクスポート
これに対する私の解決策
$(document).ready(function() {
var sel = $("select#ReportViewer2_ctl01_ctl05_ctl00");
sel.find("option[value='XML']").remove();
sel.find("option[value='CSV']").remove();
sel.find("option[value='IMAGE']").remove();
sel.find("option[value='MHTML']").remove();
sel.find("option[value='PDF']").remove();
sel.find("option[value='Excel']").remove();
});
MvcReportViewerライブラリを使用して、MVCアプリケーションでSSRSのレポートビューアーを取得していました。ライブラリはユーザーコントロールのライフサイクルイベントをサポートしていないため、shamcsが提供するPreRenderメソッドを使用できませんでした。 Ristanovic Markoによって記述されたJavascriptメソッドは部分的に機能しますが、使用していたバージョンのSSRSではセレクターが機能しませんでした。JFrameをIFrameにロードする必要があり、特定のレポートに対してのみこれを行う方法については説明していません。これが私が思いついたものです:
ReportViewerパーシャルに、次のスクリプトブロックを追加しました。
var frame = $('#reportframe');
var src = frame.attr('src');
frame.attr('src', src + '?showAdditionalExports=' + @ViewBag.ShowExportsAttribute);
ReportViewerWebForm.aspxに、別のスクリプトブロックを追加しました。
var urlParams = new URLSearchParams(location.search);
if (urlParams.get('showAdditionalExports') === 'true') {
document.addEventListener("DOMContentLoaded",
function() {
['Word', 'Excel'].map(function(title) {
var menuItem = document.querySelector("#ReportViewer1 a[title='" + title + "']")
.parentNode;
menuItem.parentNode
.removeChild(menuItem);
});
});
}
保存ボタンの上でdivを使用して、以下のようにそのプロパティを設定できます
<div style="
background-color: white;
z-index: 100;
height: 61px;
position: absolute;
padding-left: 500;
padding-left: 36px;
margin-left: 370px;
opacity: 0.5;
"></div>