巧用动态宏实现SQL中传递重复参数
润乾报表可以通过SQL检索和复杂SQL生成数据集。当SQL中需要传入多个参数时,要在设计器中通过 配置-参数 定义相应的参数,然后再把SQL中需要参数的地方替换成?,最后还要在SQL编辑器中添加对应?的参数。这样当SQL中有多少个问号,我们就需要添加多少个参数。当SQL中用到的参数比较少时,操作起来还比较方便。但当业务比较复杂,需要往SQL中传入多个重复的参数时,就需要在SQL编辑器的 参数标签页中反复多次添加多个重复参数。此时,工作量是相当大的。本文将给出一种巧用动态宏实现往SQL中传递参数的方法,该方法会大大减少重复添加相同参数的工作量,下面简单介绍一下该方法。
例如,需要往SQL中重复传递两个参数,开始时间和结束时间。
首先,在报表中分别定义两个参数,arg1,arg2,其中arg1代表开始时间、arg2代表结束时间,如下图
然后,定义两个宏,名称:macro1,macro2,设置类型:动态宏,设置如下图
然后,在SQL中需要参数的地方引用宏macro1和macro2,不需要设置数据集中的参数,即可实现传递参数的功能,如下图
这样就实现了使用动态宏传递参数到SQL中,而不需要在SQL编辑器的参数标签页反复添加重复的参数了。
动态宏传递参数到SQL中,减少了用户制作报表时不必要的重复繁琐的工作,为用户设计和制作复杂报表带来了很大的方便。
引自:润乾报表知识库
相关文章:润乾报表中如何实现多值查询; split函数及其特殊用法;横向分页报表的标题切分
其他相关内容: 润乾 ; 商业智能BI联盟 ; 报表软件 ;Java报表商业智能解决方案web报表的扩展功能
相关文档:
系统环境:Windows 7
软件环境:Visual C++ 2008 SP1 +SQL Server 2005
本次目的:编写一个航空管理系统
这是数据库课程设计的成果,虽然成绩不佳,但是作为我用VC++ 以来编写的最大程序还是传到网上,以供参考。用VC++ 做数据库设计并不容易,但也不是不可能。以下是我的程序界面,后面 ......
在SQL Server Management Studio中连接到SQL Server实例后,会显示“SQL Server 代理”节点。如果当前该实例的Agent服务没有启动,“SQL Server 代理”后边就会显示“(已禁用代理 XP)”。“已禁用代理”从字面上不难理解,后边的“XP”有点让人费解了,这个服务跟Windo ......
CREATE PROCEDURE
创建存储过程,存储过程是保存起来的可以接受和返回用户提供的参数的 Transact-SQL 语句的集合。
可以创建一个过程供永久使用,或在一个会话中临时使用(局部临时过程),或在所有会话中临时使用(全局临时过程)。也可以创建在 Microsoft? SQL Server? 启动时自动运行的存储过程。
语法
CREATE ......
现在发现SQL语句确实是太强大了,以后遇到问题要尽量先好好思考下,不要按照最笨的方法来做!
1.从tblFaultDetailTemp表中,找到ID=14的项,并将所列出的四个字段的值拷贝到tblFaultDetail表中
Insert into tblFaultDetail(Code,FileType,FaultCode,FaultRect) select Code,FileType,FaultCode,FaultRect from tblF ......
为了大家更容易理解我举出的SQL语句,本文假定已经建立了一个学生成绩管理数据库,全文均以学生成绩的管理为例来描述。
1.在查询结果中显示列名:
a.用as关键字:select name as '姓名' from students order by age
b.直接表示:select name '姓名' from students order by age
2.精确查找:
a.用 ......