使用eclipse在jsp上显示水晶报表(七)用sql 命令对象作为数据源1

来源:互联网 发布:黑马程序员工资真假 编辑:程序博客网 时间:2024/04/29 11:05

在我的文章 使用eclipse在jsp上显示水晶报表(三)用sql语句过滤数据 中, 我写到 "在.net中,你可以很容易的用sql语句过滤报表数据,但在CR4E中没这样的功能设定,但可以通过编写代码完成。"  其实在eclipse 中也是可以做到的, 只是我学艺不精, 没注意到而已.

经过这几天的测试, 我发现添加到报表的 sql 命令对象是完全脱离了数据库的一个数据集, 这个数据集的内容在添加到报表中的时候已经确定了.

如果在连接到数据库的情况下, 点击页面工具栏里面 “刷新”按钮, 将可以同步到数据库的数据, 但是要注意防止用户恶意刷新.

这里分 CR4E1 和 CR4E2 两部分来说.

一. CR4E1

IDE: eclipse 3.2, 数据库: SQL Server 2005

直接使用sql 命令对象的关键是 "*.sqlpage" 文件, 在该文件的 右键菜单 中, 我们可以看到 "Craystal Reports", 点击进去可以看到 "Add To New Report" 和 "Add To Current Report" 的菜单选项. 从这两个菜单选项的名称来看, 我们大概也能猜到他们的作用了吧.

没错, 你在 sqlpage 文件中编写的sql 语句, 只要通过运行, 就可以把sql 的结果集添加到当前报表或新的报表中, 成为他们的一个数据源.

⑴ 建立 sqlpage 文件

   建立 sqlpage 文件有两种方法.

   1. 通过菜单"file" -> "new" -> "other", 弹出窗口, 选择 "Data" -> "SQL Scrapbook Page"

   

   2. 通过 “Database Explorer”, 点击上面红框圈中的地方.

  

⑵ 在 sqlpage 里面写sql

⑶ sss.sqlpage 的右键菜单

圈红圈的就是重点了. 点击 “Use Database Connection”, 其实不管是创建或使用连接, 都是跟“Database Explorer”相联系的.

点击 “Run Sql”, 这个是重中之重, 只有成功执行的sql 才能添加到报表中. 每次添加sql 到报表前, 都需要执行 “Run Sql”.

执行的结果在 “DataOutput”中显示

 

⑷ 把sql 添加到报表中, 由于我的报表文件 “CrystalReport1.rpt” 已经存在, 并且打开着, 所以我点击 “Add To Current Report”, 如果如下:

“sss”是默认取 sqlpage 文件的名称, 你可以改成其他的名称的, 如 “aaa”,  AddressId 是select 的字段. 你可以把 AddressID 字段添加到报表里面了. 这个时候数据源sss 其实跟 sss.sqlpage 是无关的了, 你可以重复 2-4 的步骤, 把其他的sql 结果集添加到报表中.

⑸ 结果:

由于图片太多, 文章打开的速度将受到很大影响, 所以 CR4E2 的部分留到下一篇文章

使用eclipse在jsp上显示水晶报表(七)用sql 命令对象作为数据源2

原创粉丝点击