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的更多相关文章

  1. OBIEE 简介

    Oracle BIEE历史: BIEE:全称Oracle Business Intelligence Enterprise Edition. Oracle公司在05年底收购Siebel,取其前端开发工 ...

  2. peoplesoft SQR language

    Understanding SQR Data Elements !Variables!Variables are storage places for text or numbers that you ...

  3. Hyperion Business Modeling for Microsoft Windows (32-bit)

    介质包搜索 常见问题    说明   复查 许可证列表 以确定需要下载的产品程序包. 请选择产品程序包和平台,然后单击“查找”. 如果只有一项结果,则可以看到下载页.如果有多个结果,请选择一个,然后单 ...

  4. 多线程报表生成其中报表以pdf形式保存

    设计思路采用生产者消费者模式,生产者生产报表消费者消费报表生成pdf文件其中报表以html形式存储在线程安全列表中.使用到技术有:多线程协作,线程池,线程安全,html 生成pdf. 一.生产者生成h ...

  5. jasperreport报表生成时编译的错误

    在帮徐老板解决一个jasperreport报表生成时编译的错误: 刚开始时,加上他所给的 jar 包之后,错误显示为: net.sf.jasperreports.engine.JRException: ...

  6. 流行的报表生成工具-JXLS

    如果你还在为灵活的生成各种复杂报表犯愁,在为常用报表工具消耗大量内存担心.我推荐一个很好用的开源的Java报表生成工具. 本工具封装了强大的POI.但与POI不同的是,它可以用很简洁的代码生成复查的, ...

  7. javaweb 报表生成(pdf excel)所需要用到的技术和思路

    pdf: “ 目前开源.成熟.稳定的第三方包只有iText.而用iText生成PDF有三种方式: 调用iText API,用代码“写”出PDF,依赖包:com.itextpdf:itextpdf:5. ...

  8. linux下实现压测-html报表生成-控制台参数优化【jmeter】

    jmeter - 单机压测 - 命令行模式-html报表生成-控制台参数优化 一/ 准备工作 1.压力机安装并配置好 jdk 2.调试好程序脚本 再上传到 linux下 3.进入jmeter  bin ...

  9. UVA 10177 Sqr/Rects/Cubes/Boxes?

    Problem J (2/3/4)-D Sqr/Rects/Cubes/Boxes? Input: standard input Output: standard output Time Limit: ...

随机推荐

  1. C语言-Makefile经典教程(掌握这些足够)

     makefile很重要 什么是makefile? 或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional 的 ...

  2. mongoDB 数据导出之mongoexport的用法

     http://tuozixuan.iteye.com/blog/1321994     实战代码: #mongo导出 mongoexport --port 33001  -d bsdf_soe -c ...

  3. rabbitMQ 基本概念

    RabbitMQ 整体上是一个生产者与消费者模型,主要负责接收.存储和转发消息.可以把消 息传递的过程想象成:当你将一个包裹送到邮局,邮局会暂存并最终将邮件通过邮递员送到收件人的手上, RabbitM ...

  4. springboot学习(九) 使用mybatis访问数据库

    1.添加maven依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId ...

  5. webpack 打包压缩 ES6文件报错UglifyJs + Unexpected token punc ((); 或者 Unexpected token: operator (>)

    webpack 打包压缩 ES6文件报错UglifyJs + Unexpected token punc (();  或者 Unexpected token: operator (>) 解决方案 ...

  6. opencv中各种矩阵乘的差别

    尊重原创,转载请注明:http://blog.csdn.net/tangwei2014 OpenCV中每次遇到矩阵乘法就乱,各种翻各种查. 这次总结了一下.为了简单明了,还是让样例说话. 1. Mat ...

  7. 【转载】checkbox复选框的一些深入研究与理解

    转载来自:原创文章,转载请注明来自张鑫旭-鑫空间-鑫生活[http://www.zhangxinxu.com] 一.一开始的唠叨最近忙于开发,自淫于项目的一步步完工,心浮躁了.舍近而求远,兵家之大忌. ...

  8. Netbeans取消CTRL+\才能代码提示的方法

    更好的方法: ------------------------------------------------------------ 边打字边按CTRL+\进行代码提示的方法我TM也是醉了 简而言之 ...

  9. java中Calendar.getInstance()和new Date()的差别是什么?

    java中Calendar.getInstance()和new Date()的差别如下: Calendar.getInstance()是获取一个Calendar对象并可以进行时间的计算,时区的指定ne ...

  10. DataUml Design 教程6-DataUML Design 1.1版本正式发布(支持PD数据模型)

    从DataUML Design正式发布到现在有两个月了,由于最近比较忙,到现在才发布1.1版本.以后本人会一直坚持不断完善DataUML Design软件,希望广大程序猿们多多支持. 一.1.1版本新 ...