winform水晶报表中添加图片

文章目录

前言

一、VS中找不到ReportView

二、使用步骤

1.直接拉取控件到窗体

​编辑

2.添加参数

总结


前言

应用场景:在做一个巡检机器人项目时,对于巡检结果,需要在Winform端显示巡检报告,报告中有图片。开始想到的是用DataGridView控件去实现,确实也能够将图片显示出来,但是分辨率和导出来的来的效果,简直就是惨不忍睹。后面想到还有reportview这个玩意,就琢磨了一下,下面就将过程中的一些坑和实现步骤给大家分享一下。

一、VS中找不到ReportView

1.方法一:

在VS中选择工具——Nuget包管理器——程序包管理器控制台

执行命令:Install-Package Microsoft.ReportingServices.ReportViewerControl.WinForms -Pre

然后在VS的工具——选择工具箱项——.NetFramework下,选择“浏览”,然后在工程根目录下的“\packages\Microsoft.ReportingServices.ReportViewerControl.Winforms.xx\lib\net40”目录下选择“Microsoft.ReportViewer.WinForms.dll”文件(其中xx代表Microsoft.ReportingServices.ReportViewerControl.Winforms.140.1000.523后面的数字)。
 

2.方法二:

如果方法一不行,就在控制面板中选择VS,点击更新

勾选上以下三个选项,安装即可。

二、使用步骤

1.直接拉取控件到窗体

 拖入窗体后,右上角“设计新报表”

 数据源处点击新建

 选择数据库--数据集

填入你需要连接数据库的信息 

 选择你需要显示的表格

点击下一步

将你想显示到报表的字段拖到这里来,不然自己新建太麻烦了。

新建完成之后就是这个样子,可以手动修改表头的名称

下一步

回到窗体,选择报表

2.添加参数

第一步 首先给自己的rdlc报表自定义参数,在视图找到Report Data 菜单 ,当然这个菜单 笔记本的不容易找到,点 视图 用滚轮 一直往下滚,最下面才是Report Data 菜单,点中参数,右键添加参数。


第二步 在rdlc报表上添加参数,图像源为外部,具体见图片

3.后台代码

 /// <summary>
        /// 刷新巡检报告
        /// </summary>
        /// <param name="AddSql"></param>
        public void ShowReport(string AddSql)
        {
            string Err = "";
            try
            {
                DataTable Dt = bllPublic.GetDataTable("T_AGV_InspectReport", AddSql, ref Err).dt;
                reportViewer1.LocalReport.EnableExternalImages = true;//这个不设置为True会报错
                ReportDataSource rds = new ReportDataSource("DSTest", Dt);
                reportViewer1.LocalReport.ReportPath = "Report1.rdlc";
                reportViewer1.LocalReport.DataSources.Clear();
                reportViewer1.ZoomPercent = 120;
                for (int i = 0; i < Dt.Rows.Count; i++)
                {
                    reportViewer1.LocalReport.SetParameters(new ReportParameter("HWEWM", "file:///" + Dt.Rows[i]["HWPicPath"].ToString()));//报表绑定参数
                    reportViewer1.LocalReport.SetParameters(new ReportParameter("HKEWM", "file:///" + Dt.Rows[i]["HKPicPath"].ToString()));//报表绑定参数
                }
                reportViewer1.LocalReport.DataSources.Add(rds);
                reportViewer1.RefreshReport();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

感觉是没啥问题了,能正常显示出来如图:


怕有的伙伴疑问,我顺便贴一下我数据库表内容

 

主要的难点就是由字符串(路径)去显示成本地的图片 。

总结

例如:以上就是今天要讲的内容,本文仅仅简单介绍了水晶报表的使用,如有错误的地方或不好的地方,请各位不吝赐教。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值