限制ReportViewer仅允许保存PDF

时间:2018-01-14 18:26:07

标签: c# winforms reportviewer

我有获胜表单应用程序,当用户点击按钮时会在日期库中显示一些信息,它会打开报表查看器,用户应该保存文件

如您所知,报告查看器将允许用户将文件另存为PDF,WORD和EXCEL。

我想要的只是让用户只看到并按下PDF保存。

3 个答案:

答案 0 :(得分:0)

首先,您可以使用ShowExportControls属性禁用导出。

然后,您将向工具条添加自定义按钮。这将在您的form load event

中完成
ToolStrip ts = (ToolStrip)crystalReportViewer1.Controls[3]; 
ToolStripButton printbutton = new ToolStripButton(); 
printbutton.Image = ts.Items[1].Image; 
ts.Items.Remove(ts.Items[1]); 
ts.Items.Insert(1, printbutton); 
ts.Items[1].Click += new EventHandler(this.CaptureEvent);                   
cr = new CrystalReport1(); 
this.crystalReportViewer1.ReportSource = cr; 

然后你将拥有该按钮的自定义事件处理程序

private void CaptureEvent(Object Sender, EventArgs e) 
{
    // In this code, you'll have your own custom save file dialog
    // Once you get that file name, save to PDF
    SaveFileDialog saveFileDialog = new SaveFileDialog();
    saveFileDialog.InitialDirectory = Environment.SpecialFolder.MyDocuments.ToString();
    saveFileDialog.Filter = "Document (*.pdf)|*.PDF";
    saveFileDialog.FilterIndex = 1;
    if (saveFileDialog.ShowDialog() == DialogResult.OK)
    { 
        crystalReportViewer1.ExportToDisk(ExportFormatType.PortableDocFormat, saveFileDialog.FileName);;
    }
}

答案 1 :(得分:0)

要更改ToolStrip外观以仅显示“保存”按钮而不显示下拉菜单,您可以找到ToolStrip的{​​{1}},然后找到"导出&#34 ;按钮并删除下拉列表。

要显示保存对话框以仅允许保存PDF,请附加事件处理程序以单击" export"的事件。按钮并使用报告查看器的ReportViewer方法显示保存对话框。您可以在ExportDialog的{​​{1}}方法返回的扩展程序之间找到PDF扩展程序,并将其传递给ListRenderingExtensions()方法,以限制对话框只显示LocalReport扩展名。

示例1

将此代码粘贴到表单的加载事件中,加载报告后,按“保存”按钮。它将显示一个保存对话框,其中仅包含用于保存文件的PDF选项:

ExportDialog

示例2

如果您不想删除下拉箭头并希望它在下拉列表中显示PDF选项,请使用以下代码:

PDF

答案 2 :(得分:-1)

(似乎我没有足够的声誉来添加评论)

我使用了Reza Aghaei提供的建议。但是,reportview的上下文菜单还提供了Export Dropdown,这与Reza的建议无关。我禁用了ReportViewer ConcextMenu来解决此问题。

ShowContextMenu = false