水晶报表Pull模式,出现"没将物件参数设定为物件的执行固体"错误

北极海hein 2003-09-25 12:18:22
我是通过下面的这些步骤来通过Pull模式来执行水晶报表的

1.首先创建rpt文件,并使用水晶报表设计接口设置一些必须的数据连接。
2.拖放一个 CrystalReportViewer控件至aspx页面,设置它的属性指定我们上一步创建的.rpt
文件。
3. 在代码中调用DataBind方法。
创建 .rpt 文件:
1) 在右击”解决方案游览器“,在弹出的菜单中选择”添加“--”添加新项“-->”
Crystal Report”  
2) 在”Crystal Report 库”中选择”作为空白报表“单选按钮,最后单击“确定“。  
3)这里将弹出水晶报表设计器。  
4) 右击报表中的”详细资料区”,选择“数据库”->“添加/删除数据库..."
5) 在弹出的”数据库专家“中,扩展”OLE DB(ADO)“选项,此时会弹出另外一个”OLE
DB(ADO)“窗口。
6) 在 "OLE DB (ADO)" 弹出窗口中,选择 "Microsoft OLE DB Provider for SQL Server" 然
后 "Next"
7) 指定连接的信息
服务器 : ASPCN (您的机器是什么名字就写什么)
用户 ID: sa
密码:
数据库 : Pubs
8) 单击”Next“,最后单击”Finish“按钮。
9) 这时你就能在”数据库专家“窗口中看到我们选择的数据库。
10) 扩展”Pubs“数据库,扩展”表“,选择”Stores“表并将其加到”选定的表“区中,单
击”OK"按钮。
11) 现在在”字段资源浏览器“中就会在左边”数据库字段“区中显示你选择的表,以及表中
的字段。
12) 拖放需要的字段进入报表的”详细资料“区。字段名将会自动出现在”页眉“区。如果你
想修改头部文字,则可以右击”页眉“区中的文字,选择”编辑文本对象“选项并进行编辑。
13) 保存,这样我们就有了一个水晶报表文件。
创建 CrystalReportViewer 控件
14) 回到前面的WebForm中,拖放一个Crystal Report Viewer控件到页面中去。
15) 调出Crystal Report Viewer控件的属性窗口,选择“DataBindings"区点击[...]
16) ”Crystal Report Viewer 数据绑定窗口”中,在右边的“可绑定属性”中选择”
ReportSource“,并选择右下角的“自定义绑定表达式”中指定.rpt文件路径。  
17) 此时你能够从Crystal Report Viewer 控件中看到使用一些虚拟数据组成的报表文件的预
览。  注意:在上面的例子中,CrystalReportViewer可以在设计时直接调用真实的数据,因

为此
时数据已经保存。在这种情况下,设计时当没有保存数据时,他是不能显示数据的。取而代这
的是显示一些虚拟的数据,只有在执行时才会选取真实的数据。
Code Behind 程序设计
18) 在Page_Load方法中调用DataBind方法。
执行你的程序
19) 创建并运行你的程序!  
=====================================================================
我执行后出现以下错误:
======================================================================
並未將物件參考設定為物件的執行個體
描述: 在執行目前 Web 要求的過程中發生未處理的例外情形。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。

例外詳細資訊: System.NullReferenceException: 並未將物件參考設定為物件的執行個體

原始程式錯誤:

在執行目前 Web 要求期間,產生無法處理的例外狀況。如需有關例外狀況來源與位置的資訊,可以使用下列的例外狀況堆疊追蹤取得。

堆疊追蹤:


[NullReferenceException: 並未將物件參考設定為物件的執行個體]
CrystalDecisions.Web..get_7()
CrystalDecisions.Web.CrystalReportViewer.OnInit(EventArgs e)
System.Web.UI.Control.InitRecursive(Control namingContainer) +241
System.Web.UI.Control.InitRecursive(Control namingContainer) +179
System.Web.UI.Control.InitRecursive(Control namingContainer) +179
System.Web.UI.Page.ProcessRequestMain() +174


高手指教!!!
...全文
160 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ylm0101 2003-10-08
  • 打赏
  • 举报
回复
CrystalReportViewer1.ReportSource = Server.MapPath("CrystalReport1.rpt");
我的這樣也不行阿
haibodotnet 2003-10-08
  • 打赏
  • 举报
回复
把报表复制到 C:\1.rpt
在 Page_Load 里加
CrystalReportViewer1.ReportSource = "C:\\1.rpt";
DataBind();
试试!
ylm0101 2003-10-08
  • 打赏
  • 举报
回复
我的錯誤也是一樣,不知為什么??
gong1 2003-09-25
  • 打赏
  • 举报
回复
是不是水晶报表的问题?
北极海hein 2003-09-25
  • 打赏
  • 举报
回复
我又进一步做了测试:
我新建一个工程,然后拖放一个Crystal Report Viewer控件到页面中去,马上运行,
错误结里还是一样,
並未將物件參考設定為物件的執行個體
描述: 在執行目前 Web 要求的過程中發生未處理的例外情形。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。

例外詳細資訊: System.NullReferenceException: 並未將物件參考設定為物件的執行個體

原始程式錯誤:

在執行目前 Web 要求期間,產生無法處理的例外狀況。如需有關例外狀況來源與位置的資訊,可以使用下列的例外狀況堆疊追蹤取得。

堆疊追蹤:


[NullReferenceException: 並未將物件參考設定為物件的執行個體]
CrystalDecisions.Web..get_7()
CrystalDecisions.Web.CrystalReportViewer.OnInit(EventArgs e)
System.Web.UI.Control.InitRecursive(Control namingContainer) +241
System.Web.UI.Control.InitRecursive(Control namingContainer) +179
System.Web.UI.Control.InitRecursive(Control namingContainer) +179
System.Web.UI.Page.ProcessRequestMain() +174

我想这个测试可以排除是水晶报表的问题.
很可能是Crystal Report Viewer控件问题,大家说说有没有道理?我该怎么办呢?

参议者都有分!

62,074

社区成员

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

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

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

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