报表生成之Hyperion SQR
SQR(Structured Query Reporter)是为从数据库管理系统生成报告而设计的一种编程语言。名称是结构化查询报告的缩写,这表明它与SQL(结构化查询语言)的关系。任何SQL语句可以嵌入在SQR程序。
SQR 语言程序结构
SETUP section 描述了报表的总体特征:
BEGIN-SETUP
{setup commands}...
END-SETUP
HEADING 和 FOOTING 节指定了在报表每一页的页眉和页脚中打印的内容:
BEGIN-HEADING {heading_lines}
{heading commands}...
END-HEADING
BEGIN-FOOTING {footing_lines}
{footing commands}...
END-FOOTING
PROGRAM 节执行报表中包含的过程:
BEGIN-PROGRAM
{commands}...
END-PROGRAM
PROCEDURE 节完成与生成报表相关的任务:
BEGIN-PROCEDURE {procedure_name}
{procedure commands}...
END-PROCEDURE
部分语法
1.lpad
lpad 使用 pad_value 对 source_value 左填补至长度 length_value,并返回结果。
语法:dst_var = lpad(source_value, length_value, pad_value)
- source_value = 日期或文本常量、列、变量或表达式
- length_value = 小数、浮点数或整数常量、列、变量或表达式。此值总是被转换为整数。
- pad_value = 文本常量、列、变量或表达式
- dst_var = 文本变量
示例:let $lpad = lpad($notice, 25, '.')
2.ltrim
ltrim 从左边开始删除 source_value 中的字符直到 set_value 中不再包含字符,并且返回结果。
语法:dst_var = ltrim(source_value, set_value)
- source_value = 日期或文本常量、列、变量或表达式
- set_value = 文本常量、列、变量或表达式
dst_var = 文本变量
示例:let $ltrim = ltrim(&description, '.')
3.replace
replace 检查 source_value 的内容,将其中的 from_string 全部替换为 to_string,然后返回修改后的字符串。
语法:dst_var = replace(source_value, from_string, to_string)
- source_value = 日期或文本常量、列、变量或表达式
- from_string = 文本常量、列、变量或表达式
- to_string = 文本常量、列、变量或表达式
- dst_var = 文本变量
示例:let $replaced = replace($paragraph, ‘good’, ‘excellent’)
4.ON-BREAK
当某个字段的值更改(出现分隔)时,执行表格式报表中所指定的操作。默认操作只有在字段值更改时才打印该字段 (PRINT=CHANGE)。
语法ON-BREAK [PRINT={ALWAYS|CHANGE|CHANGE/TOP-PAGE|NEVER}]
[SKIPLINES={num_lit|_var|_col}]
[PROCEDURE=procedure_name[(arg1[ ,argi]...)]]
[AFTER=procedure_name[(arg1[ ,argi]...)]]
[BEFORE=procedure_name[(arg1[ ,argi]...)]]
[SAVE=txt_var]
[LEVEL=nn]
[SET=nn]
ON-BREAK 具有下列限定符:
- PRINT- 指定打印分隔字段的时间。
- ALWAYS 为每个详细信息组复制分隔字段。
- CHANGE 只有当值更改时才打印该值。这是默认设置。
CHANGE/TOP-PAGE 当值更改且出现在每个新页的顶部时打印该值。
- NEVER 禁用打印。
- SKIPLINES - 指定当值更改时要跳过的行数。
PROCEDURE - 指定当值更改时要调用的过程。该限定符不能和AFTER 或 BEFORE 限定符一起使用。
AFTER/BEFORE - 指定值更改前后要激活的过程。如果未提取任何行,则不会执行任何过程。只能在 SELECT 段内使用 AFTER 和BEFORE。
下面是事件的序列:
- SAVE - 指示用于存储分隔字段以前的值的字符串变量。
- LEVEL - 指定包含多个分隔的报表的分隔级别。
- SET - 向具有多组独立分隔的报表中的某组分级分隔分配一个数字。
官网:http://www.oracle.com/us/corporate/acquisitions/hyperion/index.html
报表生成之Hyperion SQR的更多相关文章
- OBIEE 简介
Oracle BIEE历史: BIEE:全称Oracle Business Intelligence Enterprise Edition. Oracle公司在05年底收购Siebel,取其前端开发工 ...
- peoplesoft SQR language
Understanding SQR Data Elements !Variables!Variables are storage places for text or numbers that you ...
- Hyperion Business Modeling for Microsoft Windows (32-bit)
介质包搜索 常见问题 说明 复查 许可证列表 以确定需要下载的产品程序包. 请选择产品程序包和平台,然后单击“查找”. 如果只有一项结果,则可以看到下载页.如果有多个结果,请选择一个,然后单 ...
- 多线程报表生成其中报表以pdf形式保存
设计思路采用生产者消费者模式,生产者生产报表消费者消费报表生成pdf文件其中报表以html形式存储在线程安全列表中.使用到技术有:多线程协作,线程池,线程安全,html 生成pdf. 一.生产者生成h ...
- jasperreport报表生成时编译的错误
在帮徐老板解决一个jasperreport报表生成时编译的错误: 刚开始时,加上他所给的 jar 包之后,错误显示为: net.sf.jasperreports.engine.JRException: ...
- 流行的报表生成工具-JXLS
如果你还在为灵活的生成各种复杂报表犯愁,在为常用报表工具消耗大量内存担心.我推荐一个很好用的开源的Java报表生成工具. 本工具封装了强大的POI.但与POI不同的是,它可以用很简洁的代码生成复查的, ...
- javaweb 报表生成(pdf excel)所需要用到的技术和思路
pdf: “ 目前开源.成熟.稳定的第三方包只有iText.而用iText生成PDF有三种方式: 调用iText API,用代码“写”出PDF,依赖包:com.itextpdf:itextpdf:5. ...
- linux下实现压测-html报表生成-控制台参数优化【jmeter】
jmeter - 单机压测 - 命令行模式-html报表生成-控制台参数优化 一/ 准备工作 1.压力机安装并配置好 jdk 2.调试好程序脚本 再上传到 linux下 3.进入jmeter bin ...
- UVA 10177 Sqr/Rects/Cubes/Boxes?
Problem J (2/3/4)-D Sqr/Rects/Cubes/Boxes? Input: standard input Output: standard output Time Limit: ...
随机推荐
- Oracle 数字操作。数字函数。mod(),trunc(),round(),ceil(),floor的使用
1,取整函数(ceil 向上取整,floor 向下取整) 第一种方式: ) from dual -- 取整 trunc (1.9) = 1 第二种方式 select ceil(66.6) N1,flo ...
- C语言-EOF和feof()判断文件结尾的区别
今天获取一个图片内容时, fopen("aaaaaa.png", "r"), 读取完文件头就停止了, 后来模式改为 "rb" 就可以了, 特 ...
- Tony zhao:到底怎么样才叫看书?
http://blog.jobbole.com/25842/ 目录: 一.引入 二.经历了就能理解 三.读书要分级 四.只读经典 五.别吝惜你动笔的那点时间 一.引入 看到这个题目的时候你可能会感到有 ...
- 将DataSet转换成json
/// <summary> /// 把dataset数据转换成json的格式 /// </summary> /// <para ...
- php文件加载路径
<?php require('reusable.php'); echo "相对路径加载<br/>"; /* ./ 表示当前文件所在的目录 ../ 表示当前文件所在 ...
- C# 获取当前路径方法(转)
C# 获取当前路径方法 //获取包含清单的已加载文件的路径或 UNC 位置. public static string sApplicationPath = Assembly.GetExecuting ...
- genymotion启动黑屏的原因及临时解决方法
解决办法 好像是要激活网络,具体原因不知道!!! sudo ifconfig vboxnet0 up 下面好像更好使一点 sudo ip link set dev vboxnet0 up
- 转 iOS:NSAttributedString
NSAttributedString: http://blog.csdn.net/kmyhy/article/details/8895638 CTFramesetterSuggestFrameSize ...
- lcd中像素深度bpp和像素格式(比如RGB,YUV)的关系
像素深度(bits per pixel,简称bpp) 一个像素的颜色在计算机中由多少个字节数据来描述.计算机中用二进制位来表示一个像素的数据,用来表示一个像素的数据位越多,则这个像素的颜色值更加丰富. ...
- HUAWEI HiAI常见FAQ小贴士
8月7日,HUAWEI HiAI系统架构师在CSDN平台为广大开发者进行了以“APP进阶实战:最快10分钟接入HUAWEI HiAI”主题的直播,迎来600多名开发者在线上观看. 直播中,讲师详细 ...