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;
}
接下来,我们启动下面,效果如下:
注意:若大家有疑问,可以给我留言,大家一起交流