本站首页    管理页面    写新日志    退出


«October 2025»
1234
567891011
12131415161718
19202122232425
262728293031


公告
暂无公告...

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:114
评论数量:83
留言数量:0
访问次数:427441
建立时间:2005年11月25日




[报表]报表中的参数,以及比参数更加灵活的宏
原创空间,  文章收藏,  网上资源,  软件技术,  电脑与网络,  科学研究

豆浆油条 发表于 2007/12/21 15:05:09

报表中的参数,以及比参数更加灵活的宏 报表参数毫无疑问是所有报表工具都应当提供功能,否则我们就要为每一张报表实例制作模板,这也就是自动化的报表工具与电子表格类产品(如EXCEL)的根本区别之一。 比如,有一张报表每月都要出,格式一样,但每月引用的数据是当月的。这时就可以做一张以月份为参数的报表,该参数在某些报表表达式中被引用,如在本例会在取出数据的SQL语句中写上类似WHERE 月份=arg的表达式。这样,只需绘制一遍报表模板后,报表运算器即可根据不同参数运算出不同月份的报表,而不必为每个月专门绘制报表。 然而,还有些我们需要的变化情况是用目前的参数机制解决不了的,举两例: 例1:我们可以用参数把取数条件从“=3月”改成”=5月”,但我们不能把“=3月“改成”>5月”; 例2:两张格式相同的报表,其数据分别来自两张数据结构类似的不同数据表(这种现象在信息系统中很常见,如教育系统中本科生和研究生数据结构大体一致,但一般会为了效率和处理方便设计成两个数据表),而我们不能用参数去改变SQL语句中FROM后面的部分; 为解决上述问题,华天企业报表系统中除了提供可应用于数据源(如SQL语句)和报表格间运算中的参数外,还提供了更为灵活的宏! 宏可以被理解为一种特殊的参数,应用宏能使报表有更多灵活的变化。与一般意义的参数不同,宏没有数据类型,可用于替换报表表达式的任何部分。如将SQL语句中的整个WHERE子句作为一个宏,可以写类似SELECT … FROM … WHERE macro的句子,在报表运算前将macro替换成传入的表达式(宏值)即可继续计算下去;同样地,FROM后面的表名也可以作为宏来传递。 当然,宏在带来方便的同时,也有其缺点,写进了宏的表达式在报表设计期间无法进行语法检查,只能在解析后才能查出错误,使用时必须很小心;另外,宏的解析很复杂,会影响表达式的处理速度(C编译器有相当多时间用于解析宏,PASCAL没这问题速度能快很多),对于表达式很多且性能要求很高的情况尽量不要采用宏。曾经有个相关的案例。用户有一张报表希望以某个字段排序输出,需要有正序和逆序两种形式。出于某些设计方面的原因,必须采用数据库的排序运算,即用SQL的ORDER BY子句控制,但该排序字段又不是数值型量,只能用ASC和DESC控制,但排序方向在水晶报表中不可作为参数传递,结果只能制作两张报表(如果是数值型量可通过乘1或-1控制,不必改变排序方向,即可用参数传递了),维护其一致性非常麻烦;而采用华天企业报表系统特有的宏,只要把排序方向作为宏传入就可以轻松解决。 Technorati : 参数, 宏, 报表系统本文链接:报表中的参数,以及比参数更加灵活的宏转载请注明出处:企业报表系统Report8000.com « 软件开发 - 一定要会做的30张报表 - 之七 - 复杂表头与横向运算 报表设计的方式 - 类Excel设计与传统的方式比较 »


阅读全文(1794) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.578 second(s), page refreshed 144796124 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号