关于水晶报表分组问题,请大家帮忙

tonton98 2003-01-03 10:30:10
我跟着水晶报表的向导做完一张报表,我的数据源是一个自己填充的dataset
在报表里,让DisplayGroupPage属性为true ,这时在报表的左上角有一个分组的链接,我点击它,出现如下错误:


未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。


如果我的数据源不是自己填充的dataset,而是自己的一张物理表,就不会出现这样的问题。谁能救救我?急,在线等!

...全文
40 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
tonton98 2003-01-04
  • 打赏
  • 举报
回复
to 楼上的jj:
多谢你多次关照我的帖子,你的方法不适用于我,而且,在前三行里,我已经把连接打开了

我已经按照jieyh(无影无形)的方法解决了问题了,多谢大家的关注!结贴了!
hanxian 2003-01-03
  • 打赏
  • 举报
回复
谢绝10分以内,
哈哈
hanxian 2003-01-03
  • 打赏
  • 举报
回复
UP
只UP不要给分,
tonton98 2003-01-03
  • 打赏
  • 举报
回复
to spring_ok(SpringDotNet)

我的dataset填充代码是放在一个函数里,点击按钮执行的
spring_ok 2003-01-03
  • 打赏
  • 举报
回复
你的 page_load事件中填充dataset的代码是否被包含在
if (!Page.IsPostBack)
{
}
中?
如果是,将其移出来试试。
tonton98 2003-01-03
  • 打赏
  • 举报
回复
自己顶一下
up
angel_lee 2003-01-03
  • 打赏
  • 举报
回复
try this:

public void KfReportBind()
{
SqlConnection nwindConn=new SqlConnection();
MyConn com=new MyConn();
com.ConnectSQL(nwindConn);//前面的三行是调用连接数据库的方法

SqlDataAdapter myCommand=new SqlDataAdapter("t_zjl_fjcsfx",nwindConn);//t_zjl_fjcsfx是存储过程名,该存储过程没有参数
myCommand.SelectCommand.CommandType=CommandType.StoredProcedure;
nwindConn.Open();
//DataSet2 ds=new DataSet2();//定义为全局变量了,故将之注释了
myCommand.Fill(ds,"kfyybblc");
kfyybb_lc Report=new kfyybb_lc();
Report.SetDataSource(ds);
CrystalReportViewer1.ReportSource=Report;
nwindConn.Close();

}
angel_lee 2003-01-03
  • 打赏
  • 举报
回复
这个错误还是库连接的问题,你的dataset没有正确绑定数据,才会有错误,
给你个建议,你写个存储过程,把分组处理好,在报表中直接显示你需要的数据,会好些,因为vs.net自带的crystal report 中不能处理数据的。

jieyh 2003-01-03
  • 打赏
  • 举报
回复
忘了加sister :)
jieyh 2003-01-03
  • 打赏
  • 举报
回复
try
.aspx
<input type="button" onclick="bb()" value="2">
<input type="button" onclick="aa()" value="1">
<input type="hidden" id="aas" runat="server">
js
function aa()
{
document.getElementById('aas').value="1";
//alert(document.getElementById('aas').value);
WebForm1.submit();
}
function bb()
{
document.getElementById('aas').value="2";
WebForm1.submit();
}
.cs
if(!IsPostBack)
{
aas.value="1";
}
else
{
if(aas.value.trim()=="1")
{
Bind_Report1()
}
if(aas.value.trim()=="2")
{
Bind_Report2()
}
}
本来想用服务器端的button+Session,但发现再每次onclick都是先执行IsPostBack的事件,在执行onclick事件,这样如果交换点击onclick时要onclick两次才执行Bind_Report。有没兄弟有更好的办法让onclick事件先于
IsPostBack???
tonton98 2003-01-03
  • 打赏
  • 举报
回复
存储过程是没错的
回头试试在pageload里放填充代码,如果可以明天一来就结贴
多谢各位大姐大哥顶力相帮了!!!偶今天要先回家了
freefreeli 2003-01-03
  • 打赏
  • 举报
回复
你再检查一下你的存储过程
tonton98 2003-01-03
  • 打赏
  • 举报
回复
是啊
是在报表中
问题是点中那个分组,组上面的链接会出现题目上的问题
angel_lee 2003-01-03
  • 打赏
  • 举报
回复
分组会直接显示在报表中,为什么还要连接呢?
tonton98 2003-01-03
  • 打赏
  • 举报
回复
可是我是两个图表要有选择的显示,不能将他放在pageload里
tonton98 2003-01-03
  • 打赏
  • 举报
回复
点击按钮调用的函数如下:
public void KfReportBind()
{
SqlConnection nwindConn=new SqlConnection();
MyConn com=new MyConn();
com.ConnectSQL(nwindConn);//前面的三行是调用连接数据库的方法

SqlDataAdapter myCommand=new SqlDataAdapter("t_zjl_fjcsfx",nwindConn);//t_zjl_fjcsfx是存储过程名,该存储过程没有参数
myCommand.SelectCommand.CommandType=CommandType.StoredProcedure;
//DataSet2 ds=new DataSet2();//定义为全局变量了,故将之注释了
myCommand.Fill(ds,"kfyybblc");
Session["dd"]=ds;//将dataset保存到session里
kfyybb_lc Report=new kfyybb_lc();
Report.SetDataSource((DataSet)Session["dd"]);
CrystalReportViewer1.ReportSource=Report;

}
angel_lee 2003-01-03
  • 打赏
  • 举报
回复
你将dataset填加数据的代码写在page_load中,就可以了,每次刷新都会重新执行page_load的:)
tonton98 2003-01-03
  • 打赏
  • 举报
回复
点击连接时,这时交给水晶报表来做的
问题就是不知道如何再重新绑定,郁闷。。。。
luofix 2003-01-03
  • 打赏
  • 举报
回复
和datagrid的分页一样,在点击连接时重新帮定数据。
tonton98 2003-01-03
  • 打赏
  • 举报
回复
自己顶一下

up,up
加载更多回复(4)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧