急!!-创建动态水晶报表成功,但显示的记录重复 如何解决?什么回事?
一, 我建一个RPT 水晶报表, 里边就连了要连的数据库表,及字段都放到了水晶报表中,也打好了表格 排好了板。
二, 我建了一个ASPX 里边建了一个动态的数据库联接(数据库与RPT一样的表)
我就想通过ASPX调用该RPT水晶报表,这样一来我可以输入些条件 动态显示数据信息。 但是运行的结果是出现记录重复,如得到的结果应该是5条记录,水晶报表会显示 5X5=25条记录 (显示的记录是对的) 请问是什么一回事?
同时建了一个 GridView1 一起帮定数据库显示, 它的显示结果是正确的(记录条数)。
代码如下
--------------------------------------------------------------------------
protected void Page_Load(object sender, EventArgs e)
{
title = myclass.setwebtitle();
Conn1 = new SqlConnection(myclass.setconn());
if (!IsPostBack)
{
bind();
}
}
protected void bind()
{
string where = "",path_rpt=myclass.rpt_file()+"JH_SPQKB.RPT";
if (TextBox1.Text != "")
{
string y1, m1;
y1 = TextBox1.Text.Substring(0, 4);
m1 = TextBox1.Text.Substring(5, 2);
where = "WHERE (YEAR(B.SPSJ)={0})AND(MONTH(B.SPSJ)={1})AND(A.XMBH_1=B.XMBH_1)AND(B.SPR=C.YHM)AND(C.JS='计划项目负责人')";
where = string.Format(where, y1, m1);
string sqlstr = " SELECT A.XMBH,A.XMMC,A.JSGM,A.PZTZGSR,A.SBSJ,B.SPSJ,B.SPJG,B.SPR FROM LXSBB A , LXSPB B ,YHGLB C ";
if (where != "")
sqlstr += where;
CrystalDecisions.CrystalReports.Engine.ReportDocument cr = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
if (!cr.IsLoaded)
cr.Load(path_rpt);
cr.SetDatabaseLogon("sa", "12345678", "yy-program","tt_jhxmgl",true );
DataSet dwcustDs = new DataSet();
dwDap = new SqlDataAdapter(sqlstr, Conn1);
dwDap.Fill(dwcustDs,"LXSBB");
dwDap.Fill(dwcustDs, "LXSPB");
dwDap.Fill(dwcustDs, "YHGLB");
cr.SetDataSource(dwcustDs);
GridView1.DataSource = dwcustDs;
GridView1.DataBind();
CrystalDecisions.CrystalReports.Engine.TextObject objTitle = cr.ReportDefinition.ReportObjects["Title"] as CrystalDecisions.CrystalReports.Engine.TextObject;
objTitle.Text = "项目审批情况表 (" + TextBox1.Text + ")";
Label1.Text = objTitle.Text;
CrystalReportViewer1.ReportSource = cr;
CrystalReportViewer1.RefreshReport();
}
protected void Button1_Click(object sender, EventArgs e)
{
bind();
}
大家帮看一下呀。
如查我的查询结果 是 一条记录 那么这个结果在水晶报表是正确的。
假如你的查询结果 是多条记录, 那么 这个结果 在水晶报表就会出现 N x N 条得复了N次的记录
例如正确结果是2条记录 水晶报表会出现二次一样的两条记录 一共四条
例如正确结果是5条记录 水晶报表会出现5次一样的5条记录 一共25条记录
烦死俺了!!!