当前位置:编程学习 > C#/ASP.NET >>

水晶报表,预览时实际只有1页,但是预览会出7页


TableLogOnInfo logOnInfo = new TableLogOnInfo();

                ReportDocument oRpt = new ReportDocument();

                string path1;
                path1 = Application.StartupPath + ("\\fp.rpt");
                /////////////////////////////////////////////
                DataTable dt = new DataTable();
                DataTable dt2 = new DataTable();
                //把数据跳出来给fp
                string sql = "select  * from 发票表 where 发票代码=@D and 发票号码=@H";
                OleDbCommand cmd = new OleDbCommand(sql);
                cmd.Parameters.Add("@D",OleDbType.VarChar).Value=ID;
                cmd.Parameters.Add("@H", OleDbType.VarChar).Value = SID;
                dt = PageBase.Quick_SelectSQL(cmd);

                //MessageBox.Show(dt.Rows.Count.ToString()); 
                if (dt.Rows.Count < 1)
                {
                    MessageBox.Show("数据库中没有记录,请先保存后在打印。");
                    this.Close();
                    return;
                }
                string id = dt.Rows[0]["ID"].ToString();
                sql = "select * from 发票清单表 where SID=@id";
                OleDbCommand cmd2 = new OleDbCommand(sql);
                cmd2.Parameters.Add("@id", OleDbType.VarChar).Value = id;
                dt2 = PageBase.Quick_SelectSQL(cmd2);
                MessageBox.Show(dt.Rows.Count.ToString() + "/" + dt2.Rows.Count.ToString()); 
                
                /////////////////////////////////////////////////////////
                //MessageBox.Show(path1); return;
                oRpt.Load(path1);
                oRpt.SetDataSource(dt);
                //oRpt.Subreports[0].SetDataSource(dt2);
                
                //从web.config中获取logOnInfo参数信息

                //获取ServerName
               
                //logOnInfo.ConnectionInfo.ServerName = ".";
                //logOnInfo.ConnectionInfo.DatabaseName = "bill";
                //logOnInfo.ConnectionInfo.UserID = "admin";
                //logOnInfo.ConnectionInfo.Password = "1";

                //oRpt.Database.Tables[0].ApplyLogOnInfo(logOnInfo);

                crystalReportViewer1.ReportSource = oRpt;



--------------------编程问答-------------------- dt2是子报表,已经注释掉了,但是数据源dt只有一条记录,应该只有一张,但是预览的时候有7张出来了,不知道什么毛病 --------------------编程问答-------------------- 搞定了,原来报表中有其他字段,没有指定是哪一条,报表就把它们一起显示出来了,呵呵,只要全绑对就可以了 --------------------编程问答-------------------- --------------------编程问答-------------------- 哈哈 我遇到过 是你的页眉要设置一下啊   页眉右击节专家  勾上抑制显示  在后面的函数写上
if   PageNumber   >   1   then   true   else   false  

我原来一个7也报表 显示了40几页 那个汗那 --------------------编程问答-------------------- --------------------编程问答-------------------- 错了 是详细资料上右击节专家 --------------------编程问答-------------------- 那个抑制显示很给力,谢谢哈
--------------------编程问答--------------------
补充:.NET技术 ,  图表区
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,