gpt4 book ai didi

c# - 将多个对象设置为 Crystal 报表的数据源

转载 作者:太空狗 更新时间:2023-10-29 17:32:19 25 4
gpt4 key购买 nike

我想在我的 c# windows 应用程序中制作一个 Crystal 报表,重点是我想使用 .net 对象作为我的报表数据源,我在互联网上找到了如下示例代码并使用它们并且工作正常:

        ArrayList Mainlst = new ArrayList();
Mainlst.Add(new testOBJ { Firstname = "test1", Lastname = "test11" });
Mainlst.Add(new testOBJ { Firstname = "test2", Lastname = "test21" });
Mainlst.Add(new testOBJ { Firstname = "test3", Lastname = "test31" });
Mainlst.Add(new testOBJ { Firstname = "test4", Lastname = "test41" });
Mainlst.Add(new testOBJ { Firstname = "test5", Lastname = "test51" });
testCrystalReport rpt = new testCrystalReport ();
rpt.SetDataSource(Mainlst);
crystalReportViewer1.ReportSource = rpt;

但是我想为这些重复的信息发送额外的对象,例如学校信息,但是我不能发送这个额外的对象,有没有什么办法可以将多个对象发送到 Crystal 报表?我当然知道我可以使用多个数据表和数据集作为 Crystal 报表数据源,但在这里我只想使用对象和 IEnumerables 作为 Crystal 报表的数据源。

最佳答案

如果你有很多数据源,比如1.Employee类2.员工技能等级

执行以下操作:

      List<EmployeeClass> employeeList = new List<EmployeeClass>();
employeeList.Add(new EmployeeClass() { EmpNo = "001", EmpName = "Supitchaya" });

List<EmpployeeSkillClass> employeeSkillList = new List<EmpployeeSkillClass>();
detList.Add(new EmpployeeSkillClass() { EmpNo = "001", Skill="C#" });
detList.Add(new EmpployeeSkillClass() { EmpNo = "001", Skill="Java" });

//创建 ReportDocument 实例:

        ReportDocument report = new RptEmployee(); //Crsytal report file

//为每个表设置数据源。确保收集每个表的索引

//(在 Debug模式下运行以发现 tables[0] 映射为 Employee 或 EmployeeSkill 类型)

        report.Database.Tables[0].SetDataSource(employeeList );
report.Database.Tables[1].SetDataSource(employeeSkillList );

crystalReportViewer1.ReportSource = report;

//完成!!

关于c# - 将多个对象设置为 Crystal 报表的数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2910911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com