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

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

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

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

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

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

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

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

新建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中运行调试,打印模板不见了,只有“图像”二字,结果如下:

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

在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了。

在VS2013中使用水晶报表的更多相关文章

  1. Asp.Net中使用水晶报表

    Asp.Net中使用水晶报表(上) 在我们对VS.Net中的水晶报表(Crystal Reports)进行研究之前,我和我朋友对如何将这个复杂的东东加入我们的Web应用有着非常的好奇心.一周以后,在阅 ...

  2. Asp.Net中使用水晶报表(下)

    Asp.Net中使用水晶报表(下)   使用PUSH模式 我们采用下面的几步使用Push模式执行水晶报表: 1. 设计一个DataSet 2. 创建一个.rpt文件同时将其指定给上一步建立的DataS ...

  3. Asp.Net中使用水晶报表(中)

    Asp.Net中使用水晶报表(中) 使用Pull模式 我们将通过下面的这些步骤来通过Pull模式来执行水晶报表 1.首先创建rpt文件,并使用水晶报表设计接口设置一些必须的数据连接. 2.拖放一个 C ...

  4. Asp.Net 中使用 水晶报表(上)

    Asp.Net中使用水晶报表(上) 在我们对VS.Net中的水晶报表(Crystal Reports)进行研究之前,我和我朋友对如何将这个复杂的东东加入我们的Web应用有着非常的好奇心.一周以后,在阅 ...

  5. web中的水晶报表 "出现通信错误。将停止打印"

    被这个问题快折腾死,死活都找不到原因,找了一堆解答,无外乎这几种情况,但都不管用 在Page_Init中绑定数据.无效. activex控件的版本,我试过10.2.0.1146等多个版本的dll,10 ...

  6. 2.ASP.NET MVC 中使用Crystal Report水晶报表

    上一篇,介绍了怎么导出Excel文件,这篇文章介绍在ASP.NET MVC中使用水晶报表. 项目源码下载:https://github.com/caofangsheng93/CrystalReport ...

  7. 用C#代码控制水晶报表中的对象

    在C#代码中调用水晶报表的各个对象:字段对象:FieldObject obj=(FieldObject)oRpt.ReportDefinition.ReportObjects["FieldO ...

  8. Vs2010中水晶报表引用及打包

    原文:Vs2010中水晶报表引用及打包 转自:http://yunhaifeiwu.iteye.com/blog/1172283 Vs2010中水晶报表引用 在sap官网中下载支持vs 2010中的水 ...

  9. 报表学习总结(一)——ASP.NET 水晶报表(Crystal Reports)的简单使用

    一.水晶报表简介 Crystal Reports(水晶报表)是一款商务智能(BI)软件,主要用于设计及产生报表.水晶报表是业内最专业.功能最强的报表系统,它除了强大的报表功能外.最大的优势是实现了与绝 ...

随机推荐

  1. URAL1049. Brave Balloonists

    1049 求约数的个数 质因子数的个数+1相乘 #include <iostream> #include<cstdio> #include<cstring> #in ...

  2. SOCKSify Ruby

    http://socksify.rubyforge.org/ What is it? SOCKSify Ruby redirects any TCP connection initiated by a ...

  3. jQuery 停止动画、jQuery Callback 函数、jQuery - Chaining

    一.jQuery 停止动画 jQuery stop() 方法用于在动画或效果完成前对它们进行停止. stop() 方法适用于所有 jQuery 效果函数,包括滑动.淡入淡出和自定义动画. $(sele ...

  4. R语言数据读入函数read.table

    1.read.table:可以读TXT也可以读CSV (1)file:文件名 (2)header:是否包含表头 (3)sep:分隔符,如果不设定默认是空格 (4)dec:标志小数点符号,有些国家的小数 ...

  5. Codeforces 443 B Kolya and Tandem Repeat【暴力】

    题意:给出一个字符串,给出k,可以向该字符串尾部添加k个字符串,求最长的连续重复两次的子串 没有想出来= =不知道最后添加的那k个字符应该怎么处理 后来看了题解,可以先把这k个字符填成'*',再暴力枚 ...

  6. factory工厂模式

    工厂方法模式 工厂方法模式概述    工厂方法模式中抽象工厂类负责定义创建对象的接口,具体对象的创建工作由继承抽象工厂的具体类实现 简单理解: 与简单工厂模式类似,简单工厂模式是一个工厂,用户将条件为 ...

  7. OK335xS Linux kernel check clock 24M hacking

    /****************************************************************************** * OK335xS Linux kern ...

  8. Java RGB数组图像合成 ImageCombining (整理)

    /** * Java RGB数组图像合成 ImageCombinning (整理) * * 2016-1-2 深圳 南山平山村 曾剑锋 * * 注意事项: * 1.本程序为java程序,同时感谢您花费 ...

  9. 甚是挂念学校的acmer

    虽然自己一直不承认.. 今天头疼,不想工作,况且自己服务端代码也写差不多了,于是又干起了自己的本行,去信息站找退役帖看,又把3xian的文章看了一遍,这次我从文章里面读到的更多的是懊恼,恨铁不成钢.经 ...

  10. Heritrix源码分析(十五) 各种问题总结(转)

    开博客以及建立Heritrix 群有一段时间了(这里谢谢大家的关注),这篇博客将整理这段时间所遇到的问题.同时由于自己从今年5月份开始就不怎么接触Heritrix,很多东西开始遗忘(不过里面思想没忘) ...