请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

来爱清
论坛元老   /  发表于:2015-1-15 14:08  /   查看:4219  /  回复:3
C1Report能不能绑定List<Object>类型的数据源?或者说,如何将一个已有的集合数据绑定到C1Report上面?

3 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2015-1-15 15:12:00
沙发
回复 1楼来爱清的帖子

C1Report可以绑定集合类型数据源。
前提是需要定义Collection Object DataSource。
就是说,需要将你的class添加到ObservableCollection中。
举个例子来说明,我有一个Person类。
  1. public class Person
  2. {
  3.     public string Title { get; set; }
  4.     public string Name { get; set; }
  5.     public int  Basic { get; set; }
  6.     public int Salary { get; set; }
  7.     public string Department { get; set; }
  8.     public string Subject { get; set; }
  9. }
复制代码


需要声明一个ReportDataSource去实现这个Person类。
  1. public class ReportDataSource : ObservableCollection
  2. {
  3.      public ReportDataSource()  : base()
  4.      {
  5.         for (int i = 0; i &amp;lt; 400; i++)
  6.         {
  7.            Person p = new Person();
  8.            p.Name = &quot;Name&quot; + i.ToString();
  9.            p.Title = &quot;Mr&quot;;
  10.            p.Basic = 10000;
  11.            p.Salary = 20000;
  12.            p.Department = &quot;Department&quot; + i.ToString();
  13.            p.Subject = &quot;Subject&quot; + i.ToString();

  14.            Add(p);
  15.          }
  16.      }
  17. }
复制代码


最后导入xml文件,创建一个ObservableCollection对象。
  1. C1Report rpt = new C1Report();

  2. rpt.Load(@&quot;..\..\SampleReport.xml&quot;, &quot;C1Report_ListDataSource&quot;);

  3. ReportDataSource persons = new ReportDataSource();

  4. rpt.DataSource.Recordset = persons;
复制代码


注意:xml文件中text fields必须和类中的名字一致。

评分

参与人数 1满意度 +5 收起 理由
来爱清 + 5 谢谢,问题i解决

查看全部评分

请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
来爱清
论坛元老   /  发表于:2015-1-21 22:35:00
板凳
  1. //C1Report c1r = new C1Report();
  2. //List<BaseModel> list = Common.GetList();
  3. C1.C1Report.DataSource ds = c1r.DataSource;
  4. ObservableCollection<BaseModel> dataSource = new ObservableCollection<BaseModel>();
  5. list.ForEach(p => dataSource.Add(p));
  6. ds.Recordset = dataSource;
复制代码

参考您给的代码已实现集合的绑定,感谢您的耐心回复!
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-1-22 09:03:00
地板
回复 3楼来爱清的帖子

不用客气。
此问题结束,如果有新问题欢迎开新帖。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部