如何让服务器支持水晶报表
1,要在服务器安装CRRedist2008_X64msiCRRedist2008_X64_CHSmsiCRRedist2008_x86msiCRREdist2008_x86_chsmsi这几个文件,因为我们的服务器是Win2008,所以我选择了CRRedist2008_X64msiCRRedist2008_X64_CHSmsi这两个文件进行安装。
这个是必须安装的,否则页面会报以下错误:
未能加载文件或程序集“CrystalDecisionsReportAppServerCommLayer,Version=10236000,Culture=neutral,PublicKeyToken=692fbea5521e1304”或它的某一个依赖项。系统找不到指定的文件。
2,
文件发布的时候,webconfig下要有以下几个引用:
<add assembly="CrystalDecisionsDataAdoDotNetInterop, Version=10537000, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/
<add assembly="CrystalDecisionsCrystalReportsEngine, Version=10537000, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/
<add assembly="CrystalDecisionsReportSource, Version=10537000, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/
<add assembly="CrystalDecisionsShared, Version=10537000, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/
<add assembly="CrystalDecisionsVSDesigner, Version=10537000, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/
<add assembly="CrystalDecisionsWeb, Version=10537000, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/
<add assembly="CrystalDecisionsWindowsForms, Version=10537000, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/
并且bin目录下必须有这几个引用,如果没有,把这几个文件拷贝进来(在C盘里找就可以);
3,
要把C:\ProgramFiles\CommonFiles\businessobjects\27\Managed下所有的文件都copy到服务器网站的bin目录下,这一步也是必要的,否则页面会报以下错误:
注意:这一步我没有在服务器中找到,所以我没有做;
未能加载文件或程序集“CrystalDecisionsWeb,Version=10236000,Culture=neutral,PublicKeyToken=692fbea5521e1304”或它的某一个依赖项。系统找不到指定的文件。
4,
如果水晶报表工具条无法显示,变成一个一个红叉,那我们还需要把本机C:\Inetpub\wwwroot下的aspnet_client目录copy到服务器网站根目录下。
以上功课做完了,按理说水晶报表应该可以正常运行了(
我做到这已经可以了
),但是打开页面又跳出来一个错误:
文件UNKNOWNRPT内出错:无法将请求提交给后台处理。
在网上搜了一下,应该是因为
“出现这个错误的主要原因是水晶报表引擎没有权限生成报表。查看了一个服务器的权限设置,发现C盘的根目录Users组没有权限,只要把Users组设置为对C盘有写入的权限问题就解决了。如果认为User组对整个C盘有写入权限不安全,也可以把Temp目录设为有写入权限,问题也可以解决。
个人觉得,水晶报表不如帆软报表好用,和许多别家报表相比,FineReport操作起来很方便啊,拖拽数据列到对应单元格,基本上是会excel就可以了
不懂具体指的是哪方面,如果是指将FineReport应用集成到已有的Web工程上的话,由于FineReport提供的报表服务器其实就是一个Servlet,所以在配置FineReport服务器之前,首先确保机器上已经安装了用来解析Servlet的web服务器如resin。resin相关知
一般来说 一个完整的报表设计流程 大体分为如下几个步骤
打开设计器
配置数据源
新建报表
配置私有数据源
报表设计
预览报表
发布报表
第一部分 配置数据源
步骤一 新建数据库
打开报表设计器 在设计器最上方的菜单栏当中 选择服务器 在该下拉菜单当中选择公有的数据源管理器 弹出一个数据源管理器对话框
点击该对话框左上角的增加数据源按钮来添加新的数据源 在这里我们为数据源命名为FRDemo
用鼠标选中刚刚命名的数据源 右边显示对应的数据源属性编辑面板 共有五项属性 驱动 URL 用户名和密码 以及一个测试数据库连接按钮
步骤二 设置数据库属性
首先设置驱动器 在驱动项中选择 sun jdbc odbc JdbcOdbcDriver 然后点击URL文本框旁边的…按钮 系统会根据选择的驱动自动显示对应的URL格式
将jdbc:odbc:DatabaseName中的DatabaseName换成正在使用的数据库的名字 FRDemo 即jdbc:odbc:FRDemo 由于FRDemo并未设置用户名和密码 因此这两项属性留空
点击测试连接按钮 系统弹出连接成功的消息框表明数据库连接成功
如果您的数据库并非Microsoft Access数据库 请根据您原有数据源选择其数据源驱动器 因为URL是根据您的数据源类型来设定的 单击后面的按钮则生成URL的对应模本 如您的数据库是Mysql 那么在驱动程序框中选择 gjt mm mysql Driver 对应可以生成URL为 jdbc:mysql://localhost/DatabaseName 将DataBaseName更换成您的数据库名字 下面依次填写您数据库的用户名和密码 如没有则留空 配置完成后选择下面的 测试链接 如链接成功则可以进入下一个步骤
如非本地数据源请将其中的localhost换成数据库的IP;如在local后有 则将 后的数字改为对应的网络服务器端口即可
第二部分 报表设计
报表设计的过程 可以分为如下几个步骤
新建报表
定义数据源
绑定数据列
汇总
格式化报表
步骤一 新建报表
这一步 就是要选择新建报表的类型 该类型选择共分为三种 分组报表 自由报表 我们的报表设计主要是自由报表类型 因此在下面的报表设计器当中 我们无论选择哪种新建方式 选择的报表类型都可以是自由报表
新建报表的第一种选择 是点击文件|新建报表 通过二级菜单来选择要新建的报表类型
第二种途径是在工具栏当中 点击新建报表按钮右侧的下拉箭头 出现报表类型选择的列表 另外 还可以直接点击工具栏当中的新建按钮
我们设计的主要报表类型是自由报表 因此 选择自由报表类型 打开报表设计界面
步骤二 定义数据源
在选定了报表类型之后 我们需要将报表当中用到的数据进行定义 也就是从数据库当中找到我们在该张报表当中需要用到的数据表 关于公有数据源和私有数据源的详细区别 请参见配置数据源章节
在上一个步骤当中 点击确定选定报表类型 系统会自动弹出一个私有数据源对话框
点击左上角的添加按钮 新增一个数据源 会弹出一个定义名字的对话框 我们命名为ds (这里ds是datasource的缩写) 点击确定打开私有数据源的编辑页面
在SQL文本框中 写入SQL语句 select from sale 点击文本框右侧的预览按钮 即可以看到数据库数据的预览 点击确定打开报表设计界面
报表设计界面里面 在左侧的数据面板 私有数据源处 可以看到我们刚刚定义的私有数据源ds
步骤三 绑定数据列
首先 我们先来设置左侧的分组 将ds 中的字段Region字段拖拽到A 单元格中 保留其默认的设置 即数据纵向扩展 并且进行分组 合并相同内容的值
将Manager字段拖拽到B 单元格中 同样保留其默认的设置 即数据纵向扩展 并且数据分组 即合并相同内容的值
然后 我们来设置上方的分组 首先在数据源面板的最下方扩展方向中默认的设置从上到下更改为从左到右
将ProType拖拽到C 单元格中 其设置为扩展方向是横向的 从左到右 数据是分组 即合并内容相同的值
将Product字段拖拽到C 单元格中 由于我们在上一步操作已经设置了扩展方向为横向 所以B 单元格我们也保留默认的设置 横向扩展 数据合并内容相同的值
最后 来添加交叉区域当中的汇总字段 首先在数据源面板当中 将扩展方向由从左到右更改为不扩展 然后下方的汇总当中 选择求和
将Amount字段拖拽到C 单元格中 也就是对所有的销售量记录进行求和
步骤四 汇总
完成了数据列绑定 我们来给报表添加汇总数据
将A 和A 单元格进行合并 合并后的单元格根据FineReport的单元格命名规则 为A
在B 当中 写入文字 小计
在C 当中 写入公式 =sum(C ) 由于我们已经合并了A 和A 单元格 所以这里C 就会跟随A 的分组进行合计
注 这里合并单元格的作用 是使得C 当中的汇总单元格跟随A 的分组进行组内汇总 如果我们不合并单元格 则C 当中的汇总 就会显示在报表所有数据的下面 成为对所有数据的汇总
步骤五 格式化报表
上一步当中 我们已经完成了报表主体的数据的设置 现在我们要给单元格添加边框 表头的斜线 以及文字居中等简单的格式化操作
边框 首先我们先来选中从A 至C 这一片区域 点击工具栏中的按钮 在系统弹出的边框对话框中 添加内部和外部边框
斜线 选中A 至B 共四个空白的单元格 点击工具栏中的按钮 合并单元格 右击该单元格 选择单元格元素 在二级菜单中 选择斜线 系统会弹出一个斜线编辑的对话框 在文本编辑框中写入我们在斜线当中要加入的内容 Products|Names 可以通过添加空格来调整文字的位置
文字居中 用鼠标选中A 至B 整个报表所在的区域 在工具栏当中 点击 也就是文字居中按钮 将报表当中的数据全部居中显示
最后 预览 即可以得到我们在开始展示的报表效果 该报表在示例当中存储的路径为 /WebReport/WEB INF/reportlets//doc/cross cpt
第三部分 发布和浏览报表
在报表设计完成之后 我们将其保存在安装目录下的 /WebReport/WEB INF/reportlets// 目录下 例如我们刚刚设计的报表 其保存的路径和名称为 /WebReport/WEB INF/reportlets//doc/cross cpt 这样就完成了报表在服务器上的部署
lishixinzhi/Article/program/SQL/201311/16431
0条评论