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. React Native :加载新闻列表

    代码地址如下:http://www.demodashi.com/demo/13212.html 标签与内容页联动 上一节(React Native : 自定义视图)做到了点击标签自动移动,还差跟下面的 ...

  2. python challenge - orc.py

    http://www.pythonchallenge.com/pc/def/ocr.html recognize the characters. maybe they are in the book, ...

  3. lucene: IO/FileNotFoundException:(Too many open files) 查询异常解决

    http://stackoverflow.com/questions/6210348/too-many-open-files-error-on-lucene   baidu zone - 为什么Luc ...

  4. chrome 浏览器 的一些控制台技巧

    1.查找dom元素.但它并不支持jquery语法. $$("#fock");   // 目前仅仅知道可以查找Dom元素 2.查找dom元素绑定的事件. getEventListen ...

  5. Silverlight:telerik RadControls中RadGridView的一个Bug及解决办法(转载)

    当RadGridView中嵌套RadComboBox,且RadGridView的高度不够出现滚动条时,上下拉动滚动条后,RadComboBox中的选中值将丢失! 如下图: 滚动条未拖动前 滚动条上下拖 ...

  6. CAN总线过滤规则

    奇怪的设计 If (AFMR & Message_ID) == (AFMR & AFIR) then Capture Message AFIR 1 接收 AFMR 0 接收 设置某接收 ...

  7. [置顶] Android开发笔记(成长轨迹)

    分类: 开发学习笔记2013-06-21 09:44 26043人阅读 评论(5) 收藏 Android开发笔记 1.控制台输出:called unimplemented OpenGL ES API ...

  8. tuple 元组

    创建单元素tuple tuple和list一样,可以包含 0 个.1个和任意多个元素. 包含多个元素的 tuple,前面我们已经创建过了. 包含 0 个元素的 tuple,也就是空tuple,直接用 ...

  9. STL 源代码剖析 算法 stl_algo.h -- rotate

    本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie rotate --------------------------------------- ...

  10. 如何居中div?

    如何居中div? 水平居中 1 //给div设置一个宽度,然后添加margin:0 auto属性 2 3 div{ 4 width:200px; 5 margin:0 auto; 6 } 让绝对定位的 ...