我们常常用reportViewer来做一些报表,直接连数据源的不讲了,google上有,这里是动态绑定一些字段和数据源,
添加
这两个dll,工具箱会直接有这个组件
拖拽一个
form的代码
public partial classForm1 : Form
{publicForm1()
{
InitializeComponent();
}private void Form1_Load(objectsender, EventArgs e)
{this.reportViewer1.ProcessingMode =ProcessingMode.Local;this.reportViewer1.LocalReport.ReportPath = "TestReport.rdlc";this.reportViewer1.LocalReport.EnableExternalImages = true;
List para = new List();//这里是添加两个字段
para.Add(new ReportParameter("FishName", "fishkel"));
para.Add(new ReportParameter("FishId", "123"));//这里是添加两个数据源,两个list
var list = new List{ };
list.Add(new TestReport() { a = "20100201", b = 0.1, c = 0.2, d = 0.1});
list.Add(new TestReport() { a = "20100202", b = 0.1, c = 0.2, d = 0.2});
list.Add(new TestReport() { a = "20100203", b = 0.1, c = 0.4, d = 0.2});var test = new List() {new TestReport(){ a = "20100201", b = 0.33, c = 0.33, d = 0.33}};this.reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("Test", test));this.reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("TestList", list));this.reportViewer1.LocalReport.SetParameters(para);this.reportViewer1.RefreshReport();
}
}public classTestReport
{public string a { get; set; }public double b { get; set; }public double c { get; set; }public double d { get; set; }
}
}
新建一个报表。rdlc类型的,打开报表,拖拽一个图表类型
因为你没有添加任何数据源,然后它会弹出
名称你自己起,数据源选择新建,选择对象,然后选择你自己新建的那个类,就是我建的TestReport那个,点击完成
我添加了两个数据源和两个参数,因为form1中我传来了两个数据源两个参数,这里必须要一一对应,不然会找不到数据,添加完了,
右键 图表属性。选择一个数据源,然后把字段添加到区域
拖拽一个文本框控件,右键 表达式
双击,确定,好了,form中的那个报表 this.reportViewer1.LocalReport.ReportPath = "TestReport.rdlc"; 这个 是要在bin debug有副本的,也就是说你要把报表的 复制到输出路径改成始终复制,然后把form的报表控件右上角的 选择报表 选择一下,运行:
ok 剩下的自己去摆放吧! goodluck!