You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Stimulsoft Report 2015 Ultimate:如何隐藏Viewer的Save与Open按钮?

解决Stimulsoft Report 2015中隐藏Viewer的Save和Open按钮问题

我明白你遇到的困扰——直接使用报表查看器控件时,官方示例的窗体嵌入方法并不适用,之前尝试的代码也没达到预期效果。咱们来一步步梳理问题,给出可行的解决方案:

方法1:使用窗体上已有的PreviewControl控件

如果你的窗体上已经拖放了一个StiViewerControl(命名为PreviewControl),只需要在渲染报表前先设置它的显示属性,再绑定到报表即可:

private void btnItemList_Click(object sender, EventArgs e)
{
    // 第一步:先设置Viewer控件的按钮显示属性
    PreviewControl.ShowOpen = false;
    PreviewControl.ShowSave = false;
    PreviewControl.ShowSendEMail = false;

    // 第二步:配置报表变量
    ItemListReport.Dictionary.Variables.Add("ProjectName", Globals.ProjectName);
    ItemListReport.Dictionary.Variables.Add("ProjectCode", Globals.ProjectCode);
    ItemListReport.Dictionary.Variables.Add("Username", Globals.SajiranClient.Username);

    // 第三步:编译并渲染报表
    ItemListReport.Compile();
    ItemListReport.Render();

    // 第四步:绑定Viewer控件并显示报表
    ItemListReport.ViewerControl = PreviewControl;
    ItemListReport.Show();
}

方法2:动态创建Viewer控件

如果是动态创建StiViewerControl,注意不要调用SaveConfig()和LoadConfig()——这两个方法会加载默认的Viewer配置文件,直接覆盖你手动设置的属性。正确的代码如下:

private void btnItemList_Click(object sender, EventArgs e)
{
    // 第一步:创建Viewer控件并设置显示属性
    Stimulsoft.Report.Viewer.StiViewerControl previewControl = new Stimulsoft.Report.Viewer.StiViewerControl();
    previewControl.ShowOpen = false;
    previewControl.ShowSave = false;
    previewControl.ShowSendEMail = false;

    // 第二步:配置报表变量
    ItemListReport.Dictionary.Variables.Add("ProjectName", Globals.ProjectName);
    ItemListReport.Dictionary.Variables.Add("ProjectCode", Globals.ProjectCode);
    ItemListReport.Dictionary.Variables.Add("Username", Globals.SajiranClient.Username);

    // 第三步:编译并渲染报表
    ItemListReport.Compile();
    ItemListReport.Render();

    // 第四步:绑定报表到Viewer控件,按需添加到窗体并显示
    previewControl.Report = ItemListReport;
    // 如果需要将控件嵌入窗体:this.Controls.Add(previewControl); previewControl.Dock = DockStyle.Fill;
    ItemListReport.Show();
}

为什么之前的代码没生效?

  • 第一种方法:你只是把报表绑定到了已有PreviewControl,但没有设置该控件的ShowOpen/ShowSave属性,按钮自然会保持默认显示状态。
  • 第二种方法:你设置属性后调用了SaveConfig()和LoadConfig(),其中LoadConfig()会读取默认的Viewer配置(通常是显示所有按钮),直接覆盖了你手动设置的属性,去掉这两个调用就能解决问题。

如果需要持久化这些设置,你可以在设置属性后调用SaveConfig(),但要确保之后不再调用LoadConfig(),或者在LoadConfig()之后重新设置一次属性。

内容的提问来源于stack exchange,提问作者Reza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 03:28:20