[转]解决crystal report水晶报表在浏览器提示bobj未定义的错误
网上的中文文章(比如这篇文章)都是写的部署到服务器后出现的问题,同时也指出要把crystal report的aspnet_client文件夹拷贝到对应项目的根目录里,这样就可以正常显示了,但是具体到我本人的情况,还是无法只通过拷贝aspnet_client这个文件夹就可以解决问题。所以在中文搜索无果的情况下,通过英文搜索关键字 bobj is undefined后,最终解决问题。这里列出参考链接,stackoverflow中这个问题给出了原因解释,这篇文章给出了修改web.config文件解决方案,不过其中在设置url中的地方有点问题,需要参考这篇文章;另一篇文章则给出了在引入了水晶报表的aspx中,通过指定相应的script标签正确引入bobj对象解决问题。
先说一下,我的开发环境是VS2012,水晶报表使用的是CRforVS_13_0_5这个exe,操作系统是win10。基本上,在安装完crystal report之后,会在C盘中多出一个inetpub文件。

网上说的把aspnet_client文件夹拷贝到对应项目的根目录中是解决bobj is undefined问题的第一步。其实,如果是要显示水晶报表的话,估计只用引入crystalreportviewers13这个文件就可以,不过为了避免不必要的麻烦,建议还是引入aspnet_client这整个文件夹比较好。把项目引入之后,如果你这样就不会弹出“bobj未定义”并可以直接看到报表出来的话,就可以不用往下看了,如果仍然弹出错误“bobj 未定义”,那么恭喜你,可以继续往下看了。
如果继续报错,那么根据之前我列的两种方式来做,是都可以解决的,不过解决中要注意下相关情况。这里,我把两种解决方式都列出来了。
第一:修改web.config,在你的web.config中,需要在<sectionGroup>中添加<section>节点,内容如下:
<section name="crystalReportViewer" type="System.Configuration.NameValueSectionHandler"></section>
如果你连前一个crystalreports的<sectionGroup>节点也没有的话,可以手动添加(我是手动添加的),内容如下:

<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="rptBuildProvider" type="CrystalDecisions.Shared.RptBuildProviderHandler, CrystalDecisions.Shared, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304, Custom=null"/>
<section name="crystalReportViewer" type="System.Configuration.NameValueSectionHandler"></section>
</sectionGroup>
</sectionGroup>
</configSections>

其中,黄色的就是上面在<section>节点中药添加的内容。之后,在web.config中,<businessObjects>节点中添加如下节点:
<crystalReportViewer>
<add key="ResourceUri" value="/aspnet_client/system_web/4_0_30319/crystalreportviewers13"/>
</crystalReportViewer>
这里,标黄的节点的value属性中内容填写你引入文件的相对路径。之前列的那片说的修改web.config文章里,就是在这个地方有点儿问题,他那里说要加“~”这个符号,实际上是不能加的(我这里是这样,如果加了还是报错),我也给出了相关解决办法的文章,里面就指出了不能加“~”。如果你跟我一样,也是连<businessObjects>节点都没有的话,可以手动添加,内容如下:

<businessObjects>
<crystalReports>
<rptBuildProvider>
<add embedRptInResource="true"/>
</rptBuildProvider>
<crystalReportViewer>
<add key="ResourceUri" value="/aspnet_client/system_web/4_0_30319/crystalreportviewers13"/>
</crystalReportViewer>
</crystalReports>
</businessObjects>

其中,黄色的就是上面在要添加的内容。
第二种方式,就是直接在相关aspx中添加对应的script标签引入crv.js文件了,具体如下:
<head runat="server">
<title></title>
<script src='<%=ResolveUrl("~/crystalreportviewers13/js/crviewer/crv.js")%>' type="text/javascript"></script>
</head>
这里解释一下,bobj对象是定义在crv.js这个文件中的

,而如果不引入这个文件,自然找不到bobj这个对象了,通过浏览器也可以看见,如果没有引入,请求的文件是找不到的。

引入之后,可以看到,文档加载成功,然后在HTML中也添加了


之前设置web.config的原因也是为了引入crv.js。


而且,其实在ResolveUrl中的地址中也可以不加“~”符号,为了于web.config保持一致,建议不加,这里列出来的原因,主要是参考的文章也加了。至此,就解决了我的关于bobj is undefined问题。在这两个方法中,我个人是建议设置web.config文件的,这样,可以把一票的相关js文件引入进来,省得在出现别的对象找不到的问题。希望看到这篇文章的朋友,这个文章能够对你有所帮助。
转自 http://www.cnblogs.com/muzinian/p/4721690.html
[转]解决crystal report水晶报表在浏览器提示bobj未定义的错误的更多相关文章
- 解决crystal report水晶报表在浏览器提示bobj未定义的错误
网上的中文文章(比如这篇文章)都是写的部署到服务器后出现的问题,同时也指出要把crystal report的aspnet_client文件夹拷贝到对应项目的根目录里,这样就可以正常显示了,但是具体到我 ...
- C# WinForm开发系列 - Crystal Report水晶报表
转自:ttp://www.cnblogs.com/peterzb/archive/2009/07/11/1521325.html 水晶报表(Crystal Report)是业内最专业.功能最强的报表系 ...
- IE浏览器报Promise未定义的错误、解决vuex requires a Promise polyfill in this browser问题
一个vue-cli构建的vue项目,一个使用angular的项目,两个项目在其他浏览器一切正常,但是ie中会报Promise未定义的错误 解决办法: 一.vue的项目: 1.npm install b ...
- IE浏览器报Promise未定义的错误
背景: 一个vue-cli构建的vue项目,一个使用angular的项目,两个项目在其他浏览器一切正常,但是ie中会报Promise未定义的错误 解决办法: vue的项目: 1. npm insta ...
- 2.ASP.NET MVC 中使用Crystal Report水晶报表
上一篇,介绍了怎么导出Excel文件,这篇文章介绍在ASP.NET MVC中使用水晶报表. 项目源码下载:https://github.com/caofangsheng93/CrystalReport ...
- Crystal Report - 水晶报表导出文件的格式设置
水晶报表中自带的导出和打印功能用起来确实很方便,只不过有时候需要导出的文件并不需要那么多种类型,在网上找到一些朋友的代码总结了一下,可以通过代码实现自定义导出文件类型 首先需要定义一个枚举: publ ...
- Crystal Report水晶报表碰到的一些纠结问题
1.插入PNG文件时,透明的背景会变成黑色.试了矢量图WMF文件,是可以正常显示的,不过毕竟得到矢量图比较困难. 后来找到个方法,就是把JPG图片放在子报表里,调整子报表在父报表的位置并且保持JP ...
- vue项目,ie11 浏览器报 Promise 未定义的错误
报错: {description: "“Promise”未定义", message: "“Promise”未定义", name: "Referenc ...
- 解决Crystal Report XI R2不能在64操作系统正常工作的问题-web程序
原文:[原创]解决Crystal Report XI R2不能在64操作系统正常工作的问题-web程序 我更换了新的电脑,操作系统也从原来32位的windows 2003 R2升级到windows 2 ...
随机推荐
- Jmeter 快速入门教程(三-1) --添加响应断言(即loadrunner中所指的检查点)
[版权所有: whoistester.com & jmeter.cf] 上一节课,我们创建了一个测试场景,并进行了少量vuser的负载测试. 有时候我们执行了测试,但是发现并不是所有事务都执行 ...
- Linqer工具
这些天写Linq挺烦人的,就上网搜搜可有什么好的sql转Linq的工具,咦,马上就看上了Linqer. 哈哈,介绍一下使用方法吧: 官方下载网站:http://sqltolinq.com/downlo ...
- TC SRM 605
Div2 AlienAndSetDiv2 1000 pts 题意:1~2N的数分成2个数组A,B,并且数组中按增序排列,同时满足|A[i] - B[i]| <= K,问有多少种方法? 分析 ...
- 【PSR规范专题(1)】PSR-0+namespace+spl_autoload_register实现框架模型
了解命名空间 namespace是PHP5.3版本加入的新特性,用来解决在编写类库或应用程序时创建可重用的代码如类或函数时碰到的两类问题: 用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/ ...
- 计算XX年的某月某日是当年的第多少天?是星期几?
/** * 编写程序,计算2013年的某月某日是当年的第多少天?是星期几?已知2013年元旦是星期二. */ import java.util.Scanner; public class Date { ...
- C++:类的组合
在类中定义的数据成员一般都是基本数据类型或服复合数据类型.但是还可以根据需要使用 其他类的对象作为正在声明的数据成员.复杂的对象还可以有比较简单的对象一某种方式组合 而成,复杂对象和组成它的简单对象之 ...
- NFC(1)NFC简介,3种模式
简介 NFC(Near Field Communication,近场通信),是一种数据传输技术.但与Wi-Fi.蓝牙.红外线等数据传输技术的一个主要差异就 是有效距离一般不能超过4厘米. NFC支持如 ...
- 将SQLServer2005中的数据同步到Oracle中
有时由于项目开发的需要,必须将SQLServer2005中的某些表同步到Oracle数据库中,由其他其他系统来读取这些数据.不同数据库类型之间的数据同步我们可以使用链接服务器和SQLAgent来实现. ...
- Lunix中文乱码解决方案
sudo vi /var/lib/locales/supported.d/local#添加下面的中文字符集zh_CN.GBK GBKzh_CN.GB2312 GB2312zh_CN.GB18030 G ...
- 【转载】Morris遍历二叉树 & BST(二叉搜索树) Traverse & 空间O(1) 时间O(n)
因为做一道Leetcode的题目(前面博客有:link),需要用Space O(1)空间复杂度来中序遍历树, 看了Discuss,也上网搜了一下,发现空间O(1)可以用 Morris遍历的方法.方法介 ...