zoukankan      html  css  js  c++  java
  • C#WinForm中追加报表以及图片的功能

    效果图片:

    分步解析实现过程:

    一.新建报表所需要的文件以及类:

    1.新建一个WindowForm项目WindowsFormsReport;

    2. 添加Entity文件夹,并添加StudentEntity.cs类;

     public class StudentEntity

    {

    /// <summary>
    /// 姓名
    /// </summary>
    public string StuName { get; set; }
    /// <summary>
    /// 年龄
    /// </summary>
    public string StuAge { get; set; }
    /// <summary>
    /// 学生住址
    /// </summary>
    public string StuAddress { get; set; }
    /// <summary>
    /// 身高
    /// </summary>
    public string StuHeight { get; set; }
    /// <summary>
    /// 体重
    /// </summary>
    public string StuWeight { get; set; }
    /// <summary>
    /// 学生电话
    /// </summary>
    public string StuPhone { get; set; }
    }

    3.添加Report文件夹,并添加Report.rdlc报表;

    建好报表,打开报表,点击界面上的数据集右击,新建数据集,就会弹出如下界面:

    点击数据源类型,这里我们以对象为例:

    接下来,我们只需完成后,再点击确定就可以,在报表界面进行追加列表:

    往界面上追加图片,如下操作:

    1)点击界面上的参数,右击新建参数:

    2)在界面上右击新插入图片,则会弹出对图片的配置界面如下:

    此处需要注意:图片的格式

    3)对使用字段设置,如下图参考即可:

    =System.Convert.FromBase64String(Parameters!ReportParameter1.Value)

    这样如上面的图所设置即可:

    二.现在对WindowForm页面设置:

    1)选择工具箱中报表-ReportViewer控件,拖入界面中

    2)上面的图,画黄色的位置,选择上面新建的报表:

    3)用代码实现展示:这里我用画面启动就加载数据:


    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {

    this.reportViewer1.RefreshReport();
    }

    private void reportViewer1_Load(object sender, EventArgs e)
    {
    reportViewer1.LocalReport.DataSources.Clear();

    // 插入图片设置
    reportViewer1.LocalReport.EnableExternalImages = true;
    Bitmap bmp = new Bitmap(Image.FromFile("E:\C#Del\Lianxi\WindowsFormsReport\QQ.jpg"));
    MemoryStream msm = new MemoryStream();
    bmp.Save(msm, ImageFormat.Jpeg);
    byte[] bytes = msm.ToArray();

    ReportParameter repter = new ReportParameter("ReportParameter1",Convert.ToBase64String(bytes));
    reportViewer1.LocalReport.SetParameters(new ReportParameter[] { repter });

    reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("DataSet1",DataList()));
    reportViewer1.RefreshReport();
    }

    private List<StudentEntity> DataList()
    {
    List<StudentEntity> wStudentEntityList = new List<StudentEntity>();
    StudentEntity wStudentEntity = new StudentEntity();
    wStudentEntity.StuName = "离散";
    wStudentEntity.StuAddress = "十里堡10号";
    wStudentEntity.StuAge = "23岁";
    wStudentEntity.StuHeight = "169cm";
    wStudentEntity.StuWeight = "69Kg";
    wStudentEntity.StuPhone = "13011108121";
    wStudentEntityList.Add(wStudentEntity);
    return wStudentEntityList;
    }

    接下来,我们启动下面,效果如下:

    注意:若大家有疑问,可以给我留言,大家一起交流

  • 相关阅读:
    JSP内置对象——application,page,pageContext,config,Exception
    点击按钮添加一组下拉框,然后改变下拉框的值触发事件
    vue基础学习(三)
    轻量级quill富文本编辑器
    jQuery 文档操作方法
    点击识别位置并在该位置下弹出选择框
    css样式清零及常用类
    vue基础学习(二)
    响应式web-媒体查询
    在cmd下编译一个简单的servlet时出现程序包javax.servlet不存在
  • 原文地址:https://www.cnblogs.com/ZhongLgj/p/13391159.html
Copyright © 2011-2022 走看看