日期:2014-05-19  浏览次数:20780 次

急急急-创建动态水晶报表成功,但显示的记录重复 如何解决?什么回事?
一,   我建一个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)