图片控件

图片控件目前不能展示在线的图片,只能浏览本地图片。但是确实可以展示base64 格式图片,这样我们可以操作

base64格式

代码部分
private void Form1_Load(object sender, EventArgs e)
{
 ReportParameter image = new ReportParameter("image", GetBase64ImageFromUrl("http://10.40.18.12:9000/hbl/2023/08-16/2db58eb3052032f3b363fed3574c14da.jpg"));
 this.reportViewer1.LocalReport.SetParameters(new ReportParameter[]{username, image });          

}
//url 转 base64
static string GetBase64ImageFromUrl(string imageUrl)
        {
            using (WebClient webClient = new WebClient())
            {
                byte[] imageBytes = webClient.DownloadData(imageUrl);
                string base64Image = Convert.ToBase64String(imageBytes);
                return base64Image;
            }
}
rdlc部分:

1、添加报表项目“图片”
2、选中图片,右击“属性”,将参数image值转换下:
System.Convert.FromBase64String(Parameters!image.Value)
图片属性配置
image-1693479835612
使用方法转换参数
image-1693479859604

本地图片

代码中设置属性。
//确认使用外部图片
this.ReportViewer1.LocalReport.EnableExternalImages = true;
//picPath="file://D:/Design/CSharp/海宏校园自助一体机/Reports/学生成绩一览表_背景图.png";
string picPath = "file:///" + absolutePath.Replace(@"\", "/");//将路径转换为RDLC所需的格式
paras.Add(new ReportParameter("PicturePath", picPath));
rdlc部分:

image-1693480288868

数据源添加并使用

image-1694345274486
目前有三种数据源可选择
数据库 远程 对象

  • 数据库默认支持sqlserver
  • 远程 (待补充)
  • 对象 (推荐)选择实体类绑定,灵活度高
    image-1694345299929
    这里默认选择对象 不过选择对象是需要注意一点 项目的架构 必须是AnyCpu 的,其中原因还没发现,只有AnyCpu才能扫描到当前项目下得所有名称空间,如果你选x86 就什么也找不到。不过你可以在AnyCpu 架构下添加好对象,切回来是没有问题的
    image-1694345152111