水晶报表初学者,想实现如上功能。先已作的步骤如下:
1. 在CR_UserType.aspx中拖了一个CrystalReportViewer ID="CrystalReportViewer1"的控件;
2.在CR_UserType.aspx.cs文件中填入如下代码:
string sql = "select count(*)From USER_INFO_TABLE where CHARGETYPE='全费'";
OracleConnection oracon = db.getcon();
oracon.Open();
OracleDataAdapter da = new OracleDataAdapter(sql, oracon);
DataSet ds = new DataSet();
da.Fill(ds, "USER_INFO_TABLE");
ReportDocument rd = new ReportDocument();
string path = Server.MapPath("\\MapXtreme_盘锦\\reports\\CR_UserType.rpt");
rd.Load(path);
rd.SetDataSource(ds.Tables["USER_INFO_TABLE"]);
this.CrystalReportViewer1.ReportSource = rd;
3.在CR_UserType.rpt里面添加了USER_INFO_TABLE的所有字段问题:现在要怎么做呢?
如何把ds中获得的值在CR_UserType中显示呢?请大虾帮忙!
1. 在CR_UserType.aspx中拖了一个CrystalReportViewer ID="CrystalReportViewer1"的控件;
2.在CR_UserType.aspx.cs文件中填入如下代码:
string sql = "select count(*)From USER_INFO_TABLE where CHARGETYPE='全费'";
OracleConnection oracon = db.getcon();
oracon.Open();
OracleDataAdapter da = new OracleDataAdapter(sql, oracon);
DataSet ds = new DataSet();
da.Fill(ds, "USER_INFO_TABLE");
ReportDocument rd = new ReportDocument();
string path = Server.MapPath("\\MapXtreme_盘锦\\reports\\CR_UserType.rpt");
rd.Load(path);
rd.SetDataSource(ds.Tables["USER_INFO_TABLE"]);
this.CrystalReportViewer1.ReportSource = rd;
3.在CR_UserType.rpt里面添加了USER_INFO_TABLE的所有字段问题:现在要怎么做呢?
如何把ds中获得的值在CR_UserType中显示呢?请大虾帮忙!
你新建個數據集xsd結尾的
然后把要顯示的字段添加到數據集里面就可以了
然后在用這個數據集做數據源綁定報表
select count(*)From USER_INFO_TABLE where CHARGETYPE='全费'
返回的是一个记录数,
而你的报表“里面添加了USER_INFO_TABLE的所有字段”,这个完全不搭边可以这样做。SQL改成
select * From USER_INFO_TABLE where CHARGETYPE='全费'而在报表模板上点右键,插入,汇总,按照操作,选一个字段,选“计数”汇总方式就行了
谢谢阿泰,总在论坛上看到你的帖子。感觉现在能明白些了,已经用你说的实现了,非常感谢。
能再问个问题吗,现在想增加功能,CHAEGETYPE字段的值有“全费”,“半费”和“免费”三种,我希望在Print_User.aspx中可以选择查询CHARGETYPE的哪个值的用户,可以只选一个,也可以全选,如果全选的话,我希望在打印页面中可以分别显示“全费”,“半费”和“免费”的用户数,这个要怎么实现呢?不用交叉表。