字典
简介¶
字典是元素列表,允许限制数据集字段的允许值。特别是,创建字典时,可以使用 SQL 查询定义其项。因此,每个字典项对应数据集字段可用的一个值。根据所选连接,确定要使用的选项卡:如果连接为主连接,则使用以下字段之一:
- MsSql
- Oracle
- Postgres
- Hana 如果连接为辅助连接或第三连接,则使用"其他正文"(Other Body)选项卡中的查询。辅助连接带有前缀 (S),第三连接带有前缀 (T)。
主连接是指在 standalone.xml 应用服务器配置文件中定义为主连接的连接。
辅助连接是指在 standalone.xml 应用服务器配置文件中定义为辅助连接的连接。
第三连接是指在 standalone.xml 应用服务器配置文件中定义为主连接或辅助连接的无架构(schemaless)连接。
当通过数据录入表单访问数据集时,如果数据集包含带字典的字段,则该字典字段的单元格会显示一个包含可选值的下拉菜单。 如果数据集上启用了多选,则可以在下拉菜单中选择多个项。
注意:可以指定查询中使用的哪些字段包含个人数据以及允许值。保存字典时,系统会用查询中写入的字段验证所插入的字段。
查询正文的详细信息¶
查询定义定义了构成字典的元素。查询可以引用一个或多个字段:一个字段用于确定代码,一个或多个字段用于根据系统支持的语言标识描述。SQL 查询元素的定义顺序决定了字典值在表单单元格下拉菜单中显示的顺序。
定义字典项的查询可以引用元数据属性(例如场景代码)。这些属性在运行时根据执行上下文(例如根据运行数据转换包所针对的场景或实体)解析,或根据用户在运行时设置的参数解析。
如果字典与表单单元格关联(即与数据集字段关联的字典),则这些属性在运行时使用应用于该单元格的表单、工作表和矩阵筛选器作为上下文进行解析。因此,设置在单元格本身上的行/列筛选器被排除在上下文之外。
指定属性的语法与报表中指定单元格字段所用的语法相同(参见)。要在 SQL 查询中标识高级选择脚本,语法必须用括号括起来,如下例所示:${<...>}。
将字典与数据集字段关联时(参见数据集定义页面),可以定义创建字典查询所产生的字段,用于确定代码(查询字段代码)和描述(查询字段描述)。 这两个属性是可选的:如果未定义,则查询的第一个字段定义字典项的代码,而第二个字段(如果存在)定义其描述(如果不存在,则使用查询的第一个字段同时定义代码和描述)。
依赖字典¶
要在报表中使用字典,可以创建这样的字典:其字段下拉菜单中的可选值取决于同一数据集中其他字段的值。要创建这些关系,必须:
- 在字典设置中,创建一个包含代码、描述和依赖关系的字典元素,指明要关联的相应数据集字段。
- 在数据集设置中,将字典与相关字段关联。
注意:如果启用了多选且在字典中选择了多个值,则依赖字典不兼容
示例
给定一个包含城市字段和国家字段的数据集,可以定义一个返回以下元素的字典:
| CITY_CODE | CITY_DESCR | COUNTRY_CODE | COUNTRY_DESC |
| 01 | Milan | EN | Italy |
| 02 | Rome | EN | Italy |
| 03 | London | UK | United Kingdom |
| 04 | Liverpool | UK | United Kingdom |
| 05 | New York | US | United States |
| 06 | Los Angeles | US | United States |
为此,将字典字段与数据集字段关联如下:
- 查询字段代码城市:字段代码 CITY_CODE
- 查询字段描述城市:字段描述 CITY_DESCR
- 查询字段代码国家:字段代码 COUNTRY_CODE
- 查询字段描述国家:COUNTRY_DESC
在数据录入步骤中,如果用户选择国家为 Italy,则城市字段中只有 Milan 和 Rome 可选;如果选择 United States,则只有 New York 和 Los Angeles 可选。依赖关系是双向的:如果选择 Liverpool,则国家字段只允许选择 United Kingdom。
字典与用户语言¶
在定义数据集时,如果字典与文本字段关联,定义了查询字段描述属性,且字典结果包含与多种语言相关的多个描述字段,则系统选择与已连接用户语言相对应的描述值。如果不存在这种对应关系,则按指定在查询结果中查找该字段。
示例
此示例展示了在存在多种系统语言时如何使用字典。
如果在系统中定义了以下语言:
- 语言 0:English
- 语言 1:Italiano
- 语言 2:Français
- 语言 3:Deutsch
与上述字典关联的数据集字段指定了以下属性:
- 查询字段代码:CODE
- 查询字段描述:DESCR_
字典中指定的查询返回以下字段:
| CODE | DESCR_0 | DESCR_1 | DESCR_2 | DESCR_ |
| EN | Italy | Italy | Italy | Italy |
| UK | United Kingdom | Regno Unito | Royaume-Uni | United Kingdom |
| US | United States | Stati Uniti | États-Unis | United States |
如果已连接用户使用英语,系统会将后缀0拼接到DESCR_值上,并显示查询中DESCR_0字段所报告的描述。
如果已连接用户使用德语,且查询字段中找不到DESCR_3字段,则系统显示DESCR_字段中报告的描述。