水晶报表 动态绑定数据库(高手进)

2025-03-24 01:24:19
推荐回答(2个)
回答1:

//声明报表的数据对象
CrystalDecisions.CrystalReports.Engine.Database crDatabase;
CrystalDecisions.CrystalReports.Engine.Table crTable;
TableLogOnInfo dbConn = new TableLogOnInfo();
// 创建报表对象
CrystalReportSource oRpt = new CrystalReportSource(); //CrystalReportSource
// 加载已经做好的报表
oRpt.Load();
//连接数据库,获得相关的登陆信息
crDatabase = oRpt.Database;
//定义一个arrtables对象数组
object[] arrTables = new object[1];
crDatabase.Tables.CopyTo(arrTables, 0);
crTable = (CrystalDecisions.CrystalReports.Engine.Table)arrTables[0];
dbConn = crTable.LogOnInfo;
//设置相关的登陆数据库的信息
dbConn.ConnectionInfo.DatabaseName = "pubs";//pubs
dbConn.ConnectionInfo.ServerName = ".";
dbConn.ConnectionInfo.UserID = "sa"; //sa
dbConn.ConnectionInfo.Password = "";
//将登陆的信息应用于crtable表对象
crTable.ApplyLogOnInfo(dbConn);
//将报表和报表浏览控件绑定
crViewer.ReportSource = oRpt;
//传递参数
setReportParameters(DropDownList1.SelectedItem.Text);

回答2:

为什么要做这么复杂,引入这么大的编程量呢?我觉得你完全可以用无编程量的报表工具啊,比如FineReport报表工具就不错。这个报表工具功能很完善,而且操作很简单,编程量非常少,很适合没有编程基础的人。而且从网上下载了FineReport的设计器后,里面会自带有教程,还​有做好的报表模板,学起来很快的。