首页
技术库|站长工具|技术手册|字体库|知识点词汇表| 联系我们|
打开本页的html静态页面
 

主菜单

文章分类

.: 水晶报表 .: Crystal Reports .: 水晶报表"未能使用您指定的选项导出。请检查选项并重试。"错误解决方案

  • 全文内容
  • 发表评论
  • 文章点评
  • 文章附件
  • Email文章
  • 打印文章

水晶报表"未能使用您指定的选项导出。请检查选项并重试。"错误解决方案

点击次数:545 创建日期:2-22-2008 录入:cn-web.com 字体:[ ] 点评:


新年刚来,就遇到一棘手问题:水晶报表打印、导出时均出现错误提示:未能使用您指定的选项导出。请检查选项并重试。
 
将报表rpt文件重新画了一遍,代码检查了一遍,均没有发现问题。
 
我的程序是让用户选择输出“柱状”图还是“饼状”图,如图所示:
 
代码根据用户的选择进行分析然后导入相应的报表文件,如下代码:
 
if (TuBiaoLeiXing == "柱状")
            {
                this.CryReportLoad("~/rpt/multiDishiWxyCrp.rpt", ds);
            }
            else if (TuBiaoLeiXing == "饼状")
            {
                this.CryReportLoad("~/rpt/cakyWxyCrp.rpt", ds);
            }
 
CryReportLoad是我的导入报表数据并显示的函数。
 
分析:
 
报表显示正常,就是导出或者打印时才会出现错误提示,根据提示,觉得的是报表在导出或者打印时,找不到相应的数据。因为报表在导出或者打印数据时,另外弹出一窗口,因此很有可能是TuBiaoLeiXing 这个参数的值根本取不到或者取到的也是“垃圾”数据。
 
由以上分析,我重点测试了TuBiaoLeiXing 这个变量的值,这个值我用隐藏域进行传值,发现在导出或者打印时,它的值变成了乱码了,而并不是程序所期待的值“柱状”或者“饼状”,因此,导出或者打印出现找不到报表数据的错误就理所当然了,呵呵。
 
为了证实我的想法,将上述代码的判断去掉,即不管用户选择什么,我都将其认为是柱状图形,即:去掉程序判断,直接用代码“this.CryReportLoad("~/rpt/multiDishiWxyCrp.rpt", ds);”来替代它。运行后一切正常。
 
 
为什么在导出或者打印时变量的值变成了乱码了呢,我怀疑是编码的问题了,因为web.config里设置的编码为gb2312,而微软的水晶报表导出或者打印时的页面语言为utf8,因此造成了汉字的乱码了,从而不认识程序所传递的变量:“柱状”或者“饼状”了。
 
 
OK,找到原因,解决的方法有很多,我在这里用session来保存这个变量,防止变量丢失或者因为编码问题而出错。

请文明参与讨论,禁止漫骂攻击。
评论总数:0 [ 查看全部 ] 网友评论
此文章还没有任何评论!
(+5分)
(+4分)
(+3分)
(+2分)
(+1分)
此内容无附件
网站地图 - 知识词汇 - 全文检索 - 广告服务 - 帮助中心 - 联系我们
.:www.cn-web.com
网站技术开发联盟之WEB开发技术知识库
联系人:老韩(QQ:5679551(业务),688464(技术))
晋ICP备07003487号