一、多语言应用
一张报表根据weblanguage展现不同语言
实现方法
以Unit维度的Unit字段为例,前提Unit维表中有中、英文字段。
RPD中设计 :
- 创建会话变量和初始化块,select case when 'VALUEOF(NQ_SESSION.WEBLANGUAGE)'='zh-cn' then 0 else 1 end from dual; 变量,AN_INT
- 逻辑层新建双语列UNIT,编辑(case when 0=VALUEOF(NQ_SESSION.LAN_INT) then UNIT_CN else UNIT_EN end)
- 表示层,表示列UNIT的属性一般信息页,勾选“显示定制名称”
DB中设计:
创建一个表,用于初始化块
二、双列特性应用
例如报表的金额需要按单位进行换算,而单位中的值为非数值字段:元、千、百万等,也可能以后变成:百、千、亿;若用case when一旦发生变化则工作量巨大。这时使用双列特性解决。
实现方法:
- 创建会话变量和初始化块 初始化块:select 1 from dual; 变量:UNIT_T
- 逻辑层Unit列属性,一般信息,设置描述ID列,选UNIT_VALUE
- 在逻辑表,事实表中新建逻辑列Amount编辑表达式 (amount/cast(valueof(NQ_SESSION."UNIT_T")as interger))
- DB表中创建unit维表
- 报表层,使用UNIT列作为提示,使用请求变量做传参