Asp.Net mvc模式下使用ReportViewer

1,项目首先引用ReportViewer
右击项目文件下的“引用“,找到ReportViewer并引用(前提是安装的vs要支持,若不支持,请看下一步骤),如下图所示。
在这里插入图片描述
P.S.请注意版本,可查看web.config是否有成功引用,否则会报“报表查看器配置错误”的问题
在这里插入图片描述
1.2 vs要支持ReportViewer
当在引用时没有找到ReportViewer,那就要修改vs,打开控制面板->找到vs->然后点击更改->选择修改,如下图选中开发人员工具等红框中的工具。
Asp.Net mvc模式下使用ReportViewer_第1张图片
1.3 项目部分目录如下所示
Asp.Net mvc模式下使用ReportViewer_第2张图片
2, 创建数据集,右击项目->添加->新建项,选择数据集,然后如下图右击添加数据表,可以按需要添加列;当然也可以直接添加TableAdapter
Asp.Net mvc模式下使用ReportViewer_第3张图片
可以对列属性进行修改,如下图,右击红圈点击属性,列被创建后默认为string类型,用户可根据需要进行修改
Asp.Net mvc模式下使用ReportViewer_第4张图片
3, 创建报表,步骤同上,如下图现在Reporting(若没有此项,请查看上文第1.2步),添加报表
Asp.Net mvc模式下使用ReportViewer_第5张图片

3.2 如下图,在左侧的报表数据中设置参数,然后再添加数据集,可以添加多个数据集
Asp.Net mvc模式下使用ReportViewer_第6张图片
若并没有找到右侧的报表数据,可以点开vs菜单栏的“视图”,在其找到“Report Data”即可。
如下图是数据集的配置界面,名称可修改,这在下文的aspx文件中会用到,然后数据源选择在第2步配置的数据集名称,可用数据集可选择需要的table名称。
Asp.Net mvc模式下使用ReportViewer_第7张图片3.3 如下图所示,从工具箱中选择控件,直接拖放到右侧的画布(主体)上,可以根据需要以及排版等要求进行设置;
设置需要显示参数的文本框,选中文本框->右击->文本框属性->fx->设置参数。具体见下图1.2.3,当下图第3步选择了值后,红框红的表达式会相应的改变。
Asp.Net mvc模式下使用ReportViewer_第8张图片
当rdlc需要用到多个数据集,在运行时,若报***没有定义或没有命名(当时忘截图了,但这个错是.rdlc文件中控件的错),用户可将同一个表的字段用矩形控件框在一起

4,创建aspx文件,如下图,在工具箱中选择红框中的控件,将ReportViewer搭建界面。
Asp.Net mvc模式下使用ReportViewer_第9张图片
4.2 配置后台代码,如下图,要using Reporting

  1. 设置report路径,为上一步骤的rdlc文件(全路径)
  2. 设置参数,为第3.2步骤中的参数名
  3. 配置报表数据源,第一个参数为第3.2步骤中第二张图中数据集的名称,第二个参数是从数据表中获取到的数据(这是数据库的查询操作,此处省略),
  4. 将上一步的数据源添加到report中
  5. 刷新
    Asp.Net mvc模式下使用ReportViewer_第10张图片
    ReportViewer有本地和远程模式,具体请看Microsoft官方教程(https://docs.microsoft.com/zh-cn/sql/reporting-services/application-integration/using-the-webforms-reportviewer-control?view=sql-server-2017)

5,在js中使用aspx文件,项目是打开弹框设置,所以如下图在layer.open中的content设置第4步骤的aspx文件路径,其中“?”后面为所需要传的参数,上一张图中有相应的接收参数的方式。
Asp.Net mvc模式下使用ReportViewer_第11张图片
其中layer的知识点,请看layui教程(https://www.layui.com/doc/modules/layer.html)。
另外,若不想在js中打开aspx文件,也可以在control中进行相关配置,如下图所示
Asp.Net mvc模式下使用ReportViewer_第12张图片
P.S. 上图为博客园博主Insus.NET的博客“念念不忘,ASP.NET MVC显示WebForm网页或UserControl控件“(https://www.cnblogs.com/insus/p/3641610.html)中所截的图,感谢此博主的博客。

OK,整个的步骤就完成了,因代码量不大,要做相关解释说明,所以此文代码都用截图代替了。

你可能感兴趣的:(C#)