从上图可以看到数据库中有订单、客户、城市三张表,订单与客户使用客户ID做关联,客户与城市表使用城市编码做关联。通过这样的表关系,可以很容易的统计不同城市中客户的订单信息,但如果业务人员想要按年月日层级来观察不同时期的客户签单情况。该如何实现呢?
步骤一:
本例以产品自带的dqldemo数据源为例,打开DQL元数据层设计器,点击菜单服务 - 启动示例数据库,系统 - 控制台会输出“数据库已启动”信息,表示dqldemo数据源所需连接的HSQL数据库已启动。
步骤二:
打开DQL元数据层设计器,在菜单栏中通过系统 - 数据源或者点击,连接数据源:
步骤三:
新建元数据文件,将数据库中订单表、客户表、城市表导入元数据中。
在工具栏中点击【导入数据库表】:
在弹出窗口中选择“订单表”、“客户表”、“城市表”,点击【确定】。
导入数据表的元数据文件,为订单表、客户表、城市表设置主键:
步骤四:
点击,添加年、月、日三个假表(假表的详细介绍可参见:高级元数据设计 - 假表层函数)。
步骤五:
为订单表中的签单日期和客户ID添加外键。
为客户表中的城市编码添加外键。
制作好的元数据文件保存为后缀为lmd的文件。
步骤六:
定义字典文件:
打开前一步做好的元数据文件,系统菜单下选择【生成字典】,一个字典文件就自动生成了。
在字典文件里设置城市维的显示列名称为城市表的城市名称:
制作好的字典文件保存为后缀为dct的文件。
更多关于语义层中元数据和字典文件的细节可参考语义层小节。
步骤七:
通过服务 - 发布并浏览 DQL 分组分析菜单打开发布对话框,选择前面制作好的元数据文件,将元数据文件发布到URL指定的报表DQL Server服务中,发布前需保证要使用的报表DQL Server服务为启动状态(报表DQL Server服务的启动可参考启动报表DQL Server服务小节):
关于报表DQL Server独立部署的详解可参见报表DQL服务器部署集成小节。
点击【发布】按钮,后台程序会自动启动内置的 TOMCAT服务,并打开分组分析页面:
我们将“年”、“月”拖拽到左表头,“城市编码”拖拽到上表头,中间数据区对订单金额求和、客户名称计数,这样一来,按年月层级来观察不同时期的客户签单情况就展示出来了。