最近有业务需求,在使用水晶报表时导出格式要求限制为PDF,但是水晶报表的reportviewer没有提供这样的选项,没有办法只好使用hack的水晶报表的到处对话框的方式来实现。

具体实现为找到 “\aspnet_client\system_web\2_0_50727\CrystalReportWebFormViewer4\html\crystalexportdialog.htm” 文件,修改为以下代码:

<html><head><meta http-equiv="Content-Type" content="text/html;charset=utf-8"></head><body><script language="javascript">
<!--
// export UI functions
function check(obj) {return !obj.disabled;
}function toggleRangeFields(obj) {if( obj.id == "radio1") {document.Export.from.disabled = true;document.Export.to.disabled = true;}else {document.Export.from.disabled = false;document.Export.to.disabled = false;}return check(obj);
}function checkDisableRange() {if( document.Export.exportformat.value == "CrystalReports"|| document.Export.exportformat.value == "RecordToMSExcel" ) {if( document.Export.isRange[1].checked ) {document.Export.isRange[0].checked = true;}document.Export.isRange[1].disabled = true;document.Export.from.disabled = true;document.Export.to.disabled = true;}else {document.Export.isRange[1].disabled = false;}
}function isValidNumber(number) {var nonDigit = /\D+/;if( nonDigit.test(number) || number == '0' || number == "") {return false;}return true;
}function checkValuesAndSubmit() {if( document.Export.isRange[1].checked ) {if (!isValidNumber(document.Export.from.value) || !isValidNumber(document.Export.to.value) || (parseInt(document.Export.from.value, 10) > parseInt(document.Export.to.value, 10))) {alert(parent.parent.opener.L_InvalidPageRange);return;}}if( document.Export.exportformat != null && document.Export.exportformat.selectedIndex == 0 ) {alert(parent.parent.opener.L_ExportFormat);return;}document.Export.action = opener.document.getElementById('crystal_handler_page').value;document.Export.submit();
}function init() {document.getElementById ('radio1').focus ();if (document.getElementById('reportsource')) {document.getElementById('reportsource').value = parent.opener.document.getElementById('crystal_print_rptsrc').value;}if (document.getElementById('viewstate')) {document.getElementById('viewstate').value = parent.opener.document.getElementById('crystal_print_vs').value;}
}document.write(parent.parent.opener.getExportDialog());var formatselect=document.getElementById('exportFormatList');
formatselect.options.length = 0;
formatselect.options[0]=new Option("格式","");
formatselect.options[1]=new Option("Acrobat 格式 (PDF)","PDF");
--></script></body>
</html>
重点就是
var formatselect=document.getElementById('exportFormatList');
formatselect.options.length = 0;
formatselect.options[0]=new Option("格式","");
formatselect.options[1]=new Option("Acrobat 格式 (PDF)","PDF");

用这个替换掉了原来的格式选择框

转载于:https://www.cnblogs.com/feishu/archive/2010/04/08/1707722.html

关于限制水晶报表的导出格式相关推荐

  1. 如何将水晶报表导出到文件……[海波.NET]

    海波.NET 问题: 如何将水晶报表导出到文件-- ------------------------------------------------ 解决方案: 1.ExportFormatType ...

  2. 让Crystal Report【水晶报表】助你编程马到成功!

    注:这是我几年前的一篇稿件,欠妥之处,欢迎批评指正! 从事开发设计软件的朋友都清楚,在软件项目千头万绪中,唯有打印输出是要格外地仔细地推敲和认真实施:这"打印"乃是项目完成划句号前 ...

  3. 如何在水晶报表里显示图象?

    通常我们要在水晶报表里显示文本和数字数据.有时候,数据库里会包含图象数据,并且我们也希望在水晶报表里使用它.有很多途径可以在报表中显示数据驱动的图象 第一要确保图象具有足够的大小和质量.设法在报表里将 ...

  4. 水晶报表使用经验总结

    资料: Asp.Net中使用水晶报表(上) www.dotnet8.com  2002-9-6  DotNet吧 这篇文章教你如何在.Net Web应用中使用水晶报表,也可以让你在学习过程中少走一些弯 ...

  5. CSDN社区关于水晶报表的讨论

    CSDN - 专家门诊 关闭窗口       主        题:  有关水晶报表的使用经验和资料总结,欢迎各位使用过水晶报表的同仁把自己在使用过程中的总结.经验.体会同大家共享!! 作       ...

  6. 水晶报表 图表 百分比

    2019独角兽企业重金招聘Python工程师标准>>> 水晶报表 图表 百分比 2011-02-18 17:30:09|  分类: 水晶报表 |  标签:水晶报表  图表  百分比  ...

  7. 水晶报表导出数据并实现打印

    要在里一个页面上进行操作 ReportDocument rdocument = new ReportDocument(); //公用打印方法     ExportCrystalL ExCrystal ...

  8. 水晶报表设置FiledObject支持HTML格式的数据

    经常遇见把数据拼接成html格式后,然后在水晶报表中按照这种格式进行展现. 这就需要我们对次FiledObject设置成html文本: 设置方式: 格式编辑器->段落->文本解释,然后选择 ...

  9. 水晶报表工具栏出现红叉叉无法打印导出等问题的解决方法

    常见场景: 使用WebForm方式开发水晶报表应用,在本机调试一切正常.但是发布到服务器上以后,报表可以正确显示. 但是工具栏上的图标却成了红叉叉,无法执行打印.导出操作,页面提示有脚本错误. 解决方 ...

  10. 水晶报表如何查看sql_有了这个报表工具,一键生成自定义的各种报表,还可以导出Excel...

    EasyReport是一个简单易用的Web报表工具,它的主要功能是把SQL语句查询出的数据转换成报表页面, 同时支持表格的跨行(RowSpan)与跨列(ColSpan)配置. 同时它还支持报表Exce ...

最新文章

  1. PB的setfilter()和modify()一些不为人知的技巧
  2. 【转载】linux2.6内核initrd机制解析
  3. 【弱化版】【P3371 【模板】单源最短路径(弱化版)】-C++
  4. sdut 3361迷宫探索dfs
  5. 使用opencv_traincascade训练Haar、HOG、LBP Adaboost分类器
  6. 【NLP】BERT大魔王为何在商业环境下碰壁?
  7. Git命令集十三——快照操作
  8. linux进程属主6,20150917 Linux进程查看与管理以及作业管理
  9. 用js将form表单同时提交到两个不同页面的方法
  10. python登录豆瓣_python登录豆瓣,发帖
  11. matlab 并行 计时,用Zen2跑MATLAB R2020a并行计算负载有点奇怪 - 桌面电脑(Computer)版 - 北大未名BBS...
  12. 最全的Vue3.0新特性预览(翻译)
  13. $(#).html(ftl) js 动态引入宏定义,FTL惯用标签及语法
  14. 目标跟踪 SiamFC++ (Towards Robust and Accurate Visual Tracking with Target Estimation Guidelines)
  15. matlab求导程序,「matlab求导」matlab 求导的一个简单程序 - 金橙教程网
  16. 洛谷 字符串题单P1957:口算练习题
  17. Hi3559移植OpenCV3.3
  18. JZOJ5773 简单数学题
  19. 华为帐号“一号畅玩”体验,助力游戏用户增长
  20. 谈谈个人价值及平台红利

热门文章

  1. 第三回:羁旅客忆碌碌旧事 暴雨天里依依惜别[林大帅作品连载]
  2. Installation openQRM
  3. 李珊珊(为奥运冠军名字作诗)
  4. 二分查找算法-java
  5. Luogu1514 引水入城
  6. 使用nrm管理npm源的切换
  7. mysql常见笔试_mysql常见笔试题
  8. php往pdf模板添加数据,php实现往pdf中加数字签名操作示例【附源码下载】
  9. mysql 联合查询去重复_两个表联合查询去重复GROUP_CONCAT
  10. 某医院病房计算机管理数据库,毕业论文_数据库某医院病房计算机系统.doc