.net对象模式下的,水晶报表子报表为什么一不断弹出窗口叫输入密码

turbocc 2009-03-16 03:30:40
.net对象模式下的,水晶报表子报表为什么一不断弹出窗口叫输入密码
我写的代码如下
ReportDocument rdoc = new ReportDocument();
string referencepath = @"BaseInfo\Commission\Report\";
rdoc.Load(referencepath + "DocumentReport.rpt");
rdoc.SetDataSource(Documents);

rdoc.Subreports["DocumentDealPropertyReport.rpt"].SetDataSource(((DocumentInfo)Documents[0]).DealPropertys);

rdoc.Subreports["DocumentOtherPropertyReport.rpt"].SetDataSource(((DocumentInfo)Documents[0]).OtherPropertys);

rdoc.Subreports["DocumentReceivableCommReport.rpt"].SetDataSource(((DocumentInfo)Documents[0]).ReceivableComms);

rdoc.Subreports["DocumentExteriorCommReport.rpt"].SetDataSource(((DocumentInfo)Documents[0]).ExteriorComms);

rdoc.Subreports["DocumentOtherFeeReport.rpt"].SetDataSource(((DocumentInfo)Documents[0]).OtherFees);

rdoc.Subreports["DocumentInteriorReceivableCommReport.rpt"].SetDataSource(((DocumentInfo)Documents[0]).InteriorReceivableComms);

rdoc.Subreports["DocumentInteriorRealCommReport.rpt"].SetDataSource(((DocumentInfo)Documents[0]).InteriorRealComms);

rdoc.Subreports["DocumentInteriorBadCommReport.rpt"].SetDataSource(((DocumentInfo)Documents[0]).InteriorBadComms);

其中Documents是一个继承IList接口的集合类,为什么往报表里加了子报表,一直叫我登陆的?
...全文
220 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
nate_liu 2009-03-17
  • 打赏
  • 举报
回复
為什麼不用2樓的方法 ,2樓的方法可以解決的哦。
jlj84237485 2009-03-17
  • 打赏
  • 举报
回复
帮顶一下
lsgis2001 2009-03-17
  • 打赏
  • 举报
回复
应该是数据源的问题.

如果在程序中可以找到正确的数据源,这个问题就会没有,以前我遇到过几次.但我做的很简单,只是在数据库读出数据显示.如果数据库连接有问题,就会弹出这个东西来.

希望对你有帮助.

turbocc 2009-03-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lsgis2001 的回复:]
应该是数据源的问题.

如果在程序中可以找到正确的数据源,这个问题就会没有,以前我遇到过几次.但我做的很简单,只是在数据库读出数据显示.如果数据库连接有问题,就会弹出这个东西来.

希望对你有帮助.
[/Quote]

6 楼说得对,这是问题的根源。
turbocc 2009-03-17
  • 打赏
  • 举报
回复
问题已经解决了,请看本人博客文章:
http://blog.csdn.net/turbocc/archive/2009/03/17/3997885.aspx

在使用过程中本人遇到了两个非常棘手的问题:
1、报表不断弹出窗口要你输入数据库用户ID和密码,我一直在想,我是类来的,还输入什么密码哦~~~郁闷死了。
2、子报表不断出现关联不到主键Id的问题,更郁闷,在报表里明明设置好关联了,还说不行。

经过本人细心研究,终于知道了。
问题1原因:是由于数据源没有设置不匹配或则数据源没有设置。因为本人在测试过程中,有些子报表没给他添加数据源,就是没给子报表SetDataSource。
问题2原因:是本人在设置报表关联的时候,勾选了 【基于字段选择子报表中的数据】。勾了这个选项,子报表必须要有数据才能和主表关联起来,否则,会出现子报表没有关联主键Id的错误,没勾选子报表会根据主表的类属性来进行匹配。


ChinaITOldMan 2009-03-17
  • 打赏
  • 举报
回复
if exists error, it indicates there is some issue in your report.
turbocc 2009-03-17
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 jinliangliu 的回复:]
為什麼不用2樓的方法 ,2樓的方法可以解決的哦。
[/Quote]

其实像楼2的这种方法网上到处都是,那是pull模式,我的是push模式,请不要再这样下去好不,这种方法根本不适合push模式的。
春天的气息 2009-03-16
  • 打赏
  • 举报
回复
用水晶报表容器装哦!
路径在属性里设一下!
人在江湖 2009-03-16
  • 打赏
  • 举报
回复
string referencepath = @"BaseInfo\Commission\Report\";
rdoc.Load(referencepath + "DocumentReport.rpt");

确定路径是否正确?
人在江湖 2009-03-16
  • 打赏
  • 举报
回复
原因是你的报表路径有问题
rao3281 2009-03-16
  • 打赏
  • 举报
回复
参考这个
TableLogOnInfo LInfo = new TableLogOnInfo();
LInfo.ConnectionInfo.ServerName = "RServer";
LInfo.ConnectionInfo.DatabaseName = "UDatabase";
LInfo.ConnectionInfo.UserID = "sa";
LInfo.ConnectionInfo.Password = "";
LInfo.ConnectionInfo.IntegratedSecurity = true;
for (int i = 0; i < this.CrystalReport11.Database.Tables.Count; i++)
{
this.CrystalReport11.Database.Tables[i].ApplyLogOnInfo(LInfo);
}
turbocc 2009-03-16
  • 打赏
  • 举报
回复
水晶报表的大侠们怎么才能避免这个问题呢?

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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