惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Attack and Defense Labs
Attack and Defense Labs
T
Threatpost
C
Cybersecurity and Infrastructure Security Agency CISA
H
Hackread – Cybersecurity News, Data Breaches, AI and More
I
Intezer
C
Cyber Attacks, Cyber Crime and Cyber Security
The Register - Security
The Register - Security
量子位
Security Latest
Security Latest
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
C
CXSECURITY Database RSS Feed - CXSecurity.com
MyScale Blog
MyScale Blog
J
Java Code Geeks
Apple Machine Learning Research
Apple Machine Learning Research
Google DeepMind News
Google DeepMind News
WordPress大学
WordPress大学
Spread Privacy
Spread Privacy
Jina AI
Jina AI
博客园 - 【当耐特】
P
Palo Alto Networks Blog
Last Week in AI
Last Week in AI
SecWiki News
SecWiki News
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
G
GRAHAM CLULEY
宝玉的分享
宝玉的分享
Hacker News - Newest:
Hacker News - Newest: "LLM"
T
The Blog of Author Tim Ferriss
V
Vulnerabilities – Threatpost
有赞技术团队
有赞技术团队
T
Tor Project blog
H
Hacker News: Front Page
A
Arctic Wolf
NISL@THU
NISL@THU
A
About on SuperTechFans
云风的 BLOG
云风的 BLOG
Engineering at Meta
Engineering at Meta
V
V2EX
N
News and Events Feed by Topic
Webroot Blog
Webroot Blog
Know Your Adversary
Know Your Adversary
P
Privacy International News Feed
I
InfoQ
D
Docker
L
LINUX DO - 最新话题
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
U
Unit 42

博客园 - shunliy

使用Aspose.Slides把ppt转换成pdf问题的解决,丢失文本和报IBM437字符集问题 asp.net core 3.1 webapi 跨域解决办法 ServiceStack在IIS7中发布后出现403.14错误 ORACLE 误删除数据恢复 Xamarin官方示例代码无法部署,提示已跳过部署解决方法 安装完Oracle之后的注意事项 ArcObjects10.0MapControl不显示地图内容 ArcObjects10.0引用控件报错 ArcGIS Desktop10.2与CityEngine2012兼容问题 Acess定义过多字段 Oracle解决导入CLOB大字段数据失败的问题 MVC中的几个问题汇总 SQL Network Interfaces error: 26 - 定位指定的服务器/实例时出错 远程登录问题 VS2010不能有System文件夹 删除重复数据 远程桌面不能拷贝文件 cannot load msptls.dll SQLServer中触发器不能批量插入
在VS2013中使用水晶报表
shunliy · 2015-07-06 · via 博客园 - shunliy

又遇到了在B/S系统中打印,打印格式要求比较高,打印出的效果要求高大上。用VS2013中微软自带的报表,实在难以实现应用的效果,主要问题表现在:

1.不能插入用Word做好的打印模板,自己按照模板来做感觉比较费事,实现不了Word的打印效果,一旦打印模板改变,调整格式比较麻烦。

2.在火狐、谷歌浏览器中打印按钮不显示。

想试试水晶报表,无奈VS2013中已经不集成该报表了。需要单独下载安装http://scn.sap.com/docs/DOC-7824。大家可以根据自己的VS版本下载合适的水晶报表插件。但是一定要注意下载exe可安装文件,而不是msi安装文件,否则VS里面找不到添加水晶报表的项。即下图中红色方框内的说明。同时也要下载一个clickonce32/64,在服务器部署是需要。

image

安装好之后,在VS的新建项中发现了熟悉的Crystal Reports如下图:

image

在详细资料处【右键】--【插入】--【OLE对象】--【由文件创建】选中要打印的模板。拖动鼠标,放置。

在字段资源管理器中【参数字段】--【右键】--【新建参数】。

image

把参数拖放到要动态获取数据的地方。

image

新建Web窗体,拖放CrystalReportViewer控件,设置相关属性。其中如果不需要左侧的组树,需要设置ToolPanelView=“None”。这是与当时在VS2008中用水晶报表不同的地方。

在页面后台代码动态设置字段值。如下:

protected void Page_Load(object sender, EventArgs e)
       {
           if (!IsPostBack)
           {
               ReportDocument testReport = new ReportDocument();
               //取到报表文件物理路径 
               string reportPath = Server.MapPath("~/CrystalReport1.rpt");
               //加载报表文件 
               testReport.Load(reportPath);

 

               this.CrystalReportViewer1.ReportSource = testReport;

               ParameterFields pfs = new ParameterFields();
               ParameterField pf = new ParameterField();
               ParameterDiscreteValue pv = new ParameterDiscreteValue();


               pf.ParameterFieldName = "SQR";
               pv.Value = "一衣孤行";
               pf.CurrentValues.Add(pv);
               pfs.Add(pf);

 

               this.CrystalReportViewer1.ParameterFieldInfo = pfs;
           }
       } 

在VS中运行调试,打印模板不见了,只有“图像”二字,结果如下:

image

右键图片属性,看到图片的路径是:http://localhost:/CrystalImageHandler.aspx?dynamicimage=cr_tmp_image_3ab921d0-cd7d-4fb9-a724-fd12c580b18d.png。问题是我的项目中也没有CrystalImageHandler.aspx啊。新增空白CrystalImageHandler.aspx页面。重新运行,OK。效果如下:

SNAGHTML1c15394

在IIS中发布。首先出现如下错误:

未能加载文件或程序集“log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692fbea5521e1304”或它的某一个依赖项。系统找不到指定的文件。

问题是我也没用到log4net啊。按照网上的方法把C:\Windows\assembly\GAC_32\log4net\1.2.10.0__692fbea5521e1304\log4net.dll (不同的版本log4net的版本可能不同,可以用dos命令符在C:\Windows\assembly文件夹下用dir命令逐级找到)copy出来,放到部署之后的程序bin文件夹下。刷新页面,出现如下错误:

未能加载文件或程序集“log4net”或它的某一个依赖项。试图加载格式不正确的程序。

这个错误很熟悉吧,64位操作系统IIS应用程序池未启用32位应用程序,设为True。刷新页面,出现如下错误:

不支持的操作。无法在 C++ 堆栈中打开由 JRC 引擎处理的文档。

发现在发布的时候VS不会把rpt文件发布过来,直接把rpt拷贝过来。刷新页面,OK了。