报表生成之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: ...
随机推荐
- swift user guide.pdf下载
日志以便日后查找.谢谢 1 Swift User Guide.pdf下载 http://download.csdn.net/detail/swifttrain/7442921 2 The Swift ...
- 用户自定义类型《lua程序设计》 28章 笔记
本实例实现一种很简单的类型------布尔数组.C语言可以实现将每个布尔值存储在一个bit中,从而减少内存用量. 必须的一些宏 Code Snippet #defineBITS_PER_WORD (C ...
- lucene 查询
csdn blog - Lucene 3.0 的Query Parser(查询语法) ibm developerWorks - 使用 Apache Lucene 2.4.1 搜索文本 osch ...
- requireJS目录
前言 对于像我这种requireJS初学者而言,requireJS最难理解的部分应该是它的路径问题.晚上随便折腾了一下,算是稍微理清了这个目录问题吧. requireJS学习网址:requireJS中 ...
- 你应该将应用迁移到Spring 4的五个原因
本文来源于我在InfoQ中文站翻译的文章,原文地址是:http://www.infoq.com/cn/news/2015/12/five-reasons-to-migrate-spring4 Rafa ...
- nginx反向代理批量实现https协议访问
我们进入大多数HTTPS网站ie浏览器都会给出相关提醒了,但我配置了一台HTTPS代理机器发现css与js都加载不了,这个有朋友说是https页面,如果加载http协议的内容,会被认为页面不安全,所以 ...
- 移动端数据库新王者:realm
介绍 realm是一个跨平台移动数据库引擎,支持iOS.OS X(Objective-C和Swift)以及Android. 2014年7月发布.由YCombinator孵化的创业团队历时几年打造,是第 ...
- <head> 或 <body> 中的 JavaScript
您可以在 HTML 文档中放入不限数量的脚本. 脚本可位于 HTML 的 <body> 或 <head> 部分中,或者同时存在于两个部分中. 通常的做法是把函数放入 <h ...
- Unity3D学习笔记——NGUI之UIButton
前言:用于接受点击,悬停,触摸等事件.UIButton还有重要的用途,就是改变控件不同状态下的颜色. 一:使用方式: 1.在UI Root中右键创建一个Sprite 2.为其添加一个碰撞组件,就添加B ...
- VC++ 得到的函数地址与实际函数地址不一致的原因。
我想试验一个计算汇编指令长度的代码是否正确,因而写了如下code进行验证,但结果非常奇怪 #include <stdio.h> #include <Windows.h> int ...