Microsoft.Reporting.WebForms将报表生成在本地

一.解决问题

在SQL Reporting Services报表服务器中,我们可以通过点击链接附加参数的形式来打开报表,现在我们需要程序能够自动的把报表存储为pdf格式,存在一个目录下面

二.解决思路

1.首先能自动保存,就需要有脚本不停的跑,我选择SQL自带的代理功能
在这里插入图片描述
2.然后通过代理这个功能来调用我们的webservic服务,通过这样的形式来解决这个问题
3.找到SQL Reporting Services的引用文件,在引用中选择nuget程序包找到Microsoft.Reporting.WebForms最新版的引用,添加引用
4.然后复制代码

            ReportViewer reportview = new ReportViewer();//web界面显示RS报表控件
            reportview.ProcessingMode = ProcessingMode.Remote;//控件处理模式,Remote远程,.Local本地
            reportview.ServerReport.ReportServerUrl = new Uri("http://tieslimsweb/ReportServer");//报表服务器这里注意如果是应用和数据库服务器分开部署得话,你需要把这个地址换成id地址192.168.1.20 这种
            reportview.ServerReport.ReportPath = "/Report/通用附件报告";//报表地址,注意不加.rdl后缀

            ReportParameter[] reportParam = new ReportParameter[1];//报表传参,2代表两个参数
            reportParam[0] = new ReportParameter("p_SC", "350", true);

            reportview.ServerReport.SetParameters(reportParam);//这里通了说明就连接到了报表服务器
            reportview.ShowParameterPrompts = false;//是否显示参数提示值
            Warning[] warnings;
            string[] streamids;
            string mimeType;
            string encoding;
            string extension;
            //string deviceInfo;
            byte[] bytes = reportview.ServerReport.Render(
            "PDF", null, out mimeType, out encoding, out extension,
            out streamids, out warnings);//读取报表流


            FileStream fs = new FileStream(ReportPath+ "\\"+SC+".pdf", FileMode.Create);
            fs.Write(bytes, 0, bytes.Length);//存储,filePath为绝对路径地址
            fs.Close();
            reportview.ShowToolBar = false;
            reportview.ShowReportBody = false;
         

5.代码注意事项都在上面,基本步骤为,
一.能够连接上报表服务器
二.能够找到改到处的报表
三.导出至文件夹
6.ReportServerUrl 这个在报表软件中得到,点击下图的url得到
在这里插入图片描述
7.ReportPath的地址为报表服务器的相对路径的地址在这里插入图片描述

出现问题一.

在这里插入图片描述
应用程序池请配置

出现问题2.

部署后路径匹配不上,有可能实际服务器是分布式得,请把路径换成地址得方式就可以访问

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

因为有你更精彩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值