C# WinForm:
-----------有个Person类,如下:
public class Person
{
public string Name { get; set; }
public string Sex { get; set; }
public int Age { get; set; }
}
在form1上有这么一个存放Person对象的List,如下: List<Person> personList = new List<Person>();
-----------------------------------------------------------在form1上有一个Microsoft.Reporting.WinForms.ReportViewer控件叫做reportViewer1,
用过MS报表的朋友应该知道这是MS报表浏览器,(注:是MS的Report系列哦,不是水晶报表)然后,我为这个reportViewer1创建了一张Report,名为Report1.rdlc,
在Report1.rdlc上放了一个table,限定死了是三列,表头依次为:姓名、性别、年龄,分别对应一个Person对象的那三个属性。(注:用过的朋友应该知道:table是有表头、详细信息和表尾三个部分组成)form1上还有个button1,要求:点击button1时,将这个personList中各个Person对象的三个属性值依次放到Report1.rdlc上的那个table的详细信息里。===========================================================请问在button1.Click的代码中上用C#怎么去给这个Report1.rdlc上的这个table填充详细信息部分。
小弟愚钝,至今只知道怎么给Report1.rdlc上的某一个textbox赋值,而不知道怎么填充table,查阅了很多资料依旧无头绪。(注:我这里只有个personList,并无实际数据库的啥东西(如DataTable或DataSet),所以如果需要设置数据源什么的请用personList)因为比较急,打了这么多字,希望大家看的明白些,有代码或步骤说明的最好。
万分感谢!
-----------有个Person类,如下:
public class Person
{
public string Name { get; set; }
public string Sex { get; set; }
public int Age { get; set; }
}
在form1上有这么一个存放Person对象的List,如下: List<Person> personList = new List<Person>();
-----------------------------------------------------------在form1上有一个Microsoft.Reporting.WinForms.ReportViewer控件叫做reportViewer1,
用过MS报表的朋友应该知道这是MS报表浏览器,(注:是MS的Report系列哦,不是水晶报表)然后,我为这个reportViewer1创建了一张Report,名为Report1.rdlc,
在Report1.rdlc上放了一个table,限定死了是三列,表头依次为:姓名、性别、年龄,分别对应一个Person对象的那三个属性。(注:用过的朋友应该知道:table是有表头、详细信息和表尾三个部分组成)form1上还有个button1,要求:点击button1时,将这个personList中各个Person对象的三个属性值依次放到Report1.rdlc上的那个table的详细信息里。===========================================================请问在button1.Click的代码中上用C#怎么去给这个Report1.rdlc上的这个table填充详细信息部分。
小弟愚钝,至今只知道怎么给Report1.rdlc上的某一个textbox赋值,而不知道怎么填充table,查阅了很多资料依旧无头绪。(注:我这里只有个personList,并无实际数据库的啥东西(如DataTable或DataSet),所以如果需要设置数据源什么的请用personList)因为比较急,打了这么多字,希望大家看的明白些,有代码或步骤说明的最好。
万分感谢!
解决方案 »
- C#编写的Windows服务不能调用FindWindowEx这个API函数吗?
- c#即时获取服务器数据库变化,客户端即时提醒--请给我一点资料或给我一个解决办法
- 如何在html代码中使用javscript将变量存成一个新文件?
- winForm 一个很简单的事件显示问题
- HTTP:錯誤 404:Object Not Found
- 求下载Microsoft.Data.ConnectionUI.Dialog.dll
- 请问一下FileStream流怎样转成Stream啊
- 求助啊 !!!如何能使他正确运行啊 想实现在一个string数组中随机提取一个名字放到textbox1中啊 新人求助啊欢迎各位大神来帮帮忙啊
- void是什么意思?
- 谁有C#关于数据库的例程?
- 谁告诉我c#类的知识
- sql server 读取时出错
没有用过自动的数据绑定功能。帮你顶下。
一直未解啊
一直未解啊
我也想知道~~
我是不知道怎么使用代码去填充Report的table
这个自己写一个方法就能成功
private DataTable GetTable(List<Person> list)
{DataTalbe t=new DataTable();
t.Columns.Add(new DataColumn("name",typeof(strimg));
t.Columns.Add(new DataColumn("sex",typeof(strimg));
t.Columns.Add(new DataColumn("age",typeof(int));foreach(Person item in list)
{
DataRow dr=t.NewRow();
t["name"]=item.Name;
t["sex"]=item.sex;
t["age"]=itme.age;
t.Rows.Add(dr);}
return t;
}然后你就使用这个t(DataTable)作为报表的数据源
不知道RDLC是否可以使用集合作为数据源,按我想象应该可以,这个应该和你的报表定义有关
小弟不明白的是怎么用c#代码将其设置成reporter的datasource,以及怎么设置table中对应列的参数以便正确显示
其参数是Microsoft.Reporting.WinForms.ReportDataSource类
ReportDataSource有一个构造是
public ReportDataSource (
string name,
Object dataSourceValue
)
其中dataSourceValue可为DataTable,具体可以参考MSDN
至于DataTable中的列与报表中的列对应,那是你设计报表的时候指定的
如果希望动态指定报表中的列与DataTable相应的列,需要动态构造RDLC报表,
其实RDLC报表就是一个符合XML定义的字符串,如果感兴趣,可以查阅相关资料,
就是说,关于RDLC报表,可以实现让客户自定义报表及数据源,不过你需要掌握
RDLC报表的定义。
我们一般使用是先定义后RDLC报表的定义,动态实现数据源的绑定,这一点上面的
知识应该足够。
我再问下,如果这个table最后数据的行数非常多。在打印报表时,它是只打印看的见的行,还是会自动分页以保证打印出所有行啊?
不要问我怎么做,我也是先看MSDN然后再回答你的