浮动分析表制作
浮动分析表:按照一个或多个维度浮动的报表,数据行不固定,由数据库实时数据决定。
这篇文档通过制作一张简单的浮动分析表,让大家快速了解ABI报表的制作流程。
在开始制作前,我们先看下待制作报表的最终展示效果。
下面我们按照报表制作流程图来制作报表。
在【数据分析】下左侧资源树中找到主题集,单击,在右侧界面点击【新建分析】,在弹出的对话框中选择【报表分析】。
弹出【选择模板】对话框,可以根据模板创建(点击相应模板进入即可),也可以新建空白报表,这里我们选择【新建空白报表】,点击后打开到报表设计器。
在工具面板中找到【分析区表格】组件,鼠标按住不放拖动到报表设计区,出现一个空表格。
标题行:双击(单击也可以)单元格A1,输入文字 序号。
依次完成其他标题行文字输入,列不够时在单元格上右键可插入列。
选中A1和A2单元格,右键合并他们,依次完成其他单元格的合并
背景颜色:选中表格第1和第2行,在菜单栏中设置表元背景色为#53b1ff,文字颜色为#ffffff。
边框颜色:选中所有行,在右侧属性面板中设置边框颜色为#BFCEFB。
去掉G1、H1左边框线,J1、K1同样操作。
最终样式效果如下:
这张报表从主题表【IGRZB(个人周报)】取数。其中【人员id】和【人员】都取主题表的【人员id】字段。【工作天数】指的是自然工时,但要除以8转换成天,因为自然工时单位是小时,1天按8小时算。出差非出差根据【是否出差】字段来判断,【是否出差】为1表示出差,2表示非出差。【合计】 = 【工作天数】+【请假天数】。
理解业务后我们来进行表格的取数设置。
拾取主题表字段:点击菜单栏中小手,下方出现主题表字段列表,切换到待取数的主题表。
选中B3单元格,然后移动鼠标到下方主题表中,在字段【员工id】的名称上双击,会拾取主题表字段表达式到单元格中。
依次完成其他单元格表达式拾取。
也可以将数据源中主题表字段拖动到单元格中,自动生成表达式。
编辑表达式:有些列不需要从主题表取数,比如【序号】和【合计】,有些列拾取到表达式后还需要调整,比如【工作天数】等,这些都需要手动编辑表达式。
编辑表达式有两种方法:
方法一,选中单元格后双击,进入编辑状态,直接输入表达式,形如=F3+L3。注意,这里要以= 开头。
方法二,选中单元格后在右侧属性面板中打开表达式编辑器,在表达式编辑器中编辑表达式,形如F3+L3。注意,这里不需要加= 。
知道如何编辑表达式后,依次来调整表达式:
表格是展示每个人的考勤情况,所以需要把B3单元格设置为浮动维。下面看下如何设置浮动维。
选中B3后,点击菜单栏中设置B3单元格为浮动维单元格,就能按照人员分组统计了。默认是向下浮动,想变成向右浮动,可以双击单元格上的浮动维图标改变浮动方向。
设置浮动维单元格后,系统会自动判断分析区和浮动区。
【分析区】:从主题表取数的表格要能计算必须有分析区,且指标单元格(即从主题表取数的单元格)必须都在分析区内。 同一个分析区的单元格会作为一个整体生成计算sql和执行。 【浮动区】:每一个浮动维单元格都有自己的浮动区,在其浮动区内的表元都会按照浮动维字段进行分组统计,字符表元默认是求最大,数值表元默认是求和。 |
从上图看到,序号列默认没有包含在B3的浮动区中,计算后结果如下。
调整浮动区:把鼠标放到浮动区的左边框上,当鼠标变成双向箭头的时候,往左拖动直到包含A3表元,浮动区调整完成。
计算后结果如下。
合并A4到D4,双击直接输入文字 合计,设置E4单元格表达式为sum(E3$),F4单元格表达式为sum(F3$),......
对于浮动区中的单元格,比如E3,计算后会浮动出多行数据,E3$ 表示的是这一组数据,它是一个一维数组对象,要对其所有元素求和,可以sum(E3$)。 |
表达式序列填充:另外,F4到L4的表达式可以通过表达式序列填充功能批量设置,而不用一个一个设置。设置E4的表达式后,选中E4单元格,将鼠标移动到单元格右下角的点上,待出现 + 后,鼠标按住不放向右拖动,会自动完成表达式递增填充。
删除空白行列:在表格上右键【删除空白行列】删除多余行。
6)属性设置显示表达式:对于关联了维表的维度字段,计算时会和维表关联取出中文名称进行显示,如果需要显示实际值(即id值),则可以通过设置【显示表达式】解决。设置B3单元格的显示表达式为 @id。
注意:@id表示当前表元的实际值,@txt表示当前表元的显示值。另外,获取其他表元的显示值写法形如C3.txt,直接C3则是获取其实际值。 |
过滤条件:给工作天数中的【非出差】和【出差】设置过滤条件。选中单元格G3,在右侧属性面板中勾选【指标】,出现【过滤条件】等属性,点击过滤条件按钮,弹出公式定义向导。
拾取【是否出差】字段到公式定义向导中,编辑过滤条件为IGRZB.SFCC='2'。
同理,设置H3单元格的过滤条件为IGRZB.SFCC='1'。附加天数中的【非出差】和【出差】也一样设置。
连接模式:将单元格G3、H3、J3和K3的【连接模式】设置为左连接。
下面看下【连接模式】为“无”和“左连接”时生成的sql差异。
连接模式为“无”时:
连接模式为“左连接”时:
这样,当一个员工只有出差天数没有非出差天数或者只有非出差天数没有出差天数时,其考勤数据也能展示出来。
接着来添加报表参数以控制表格中显示数据。
1)添加参数组件在工具面板中找到【年月】组件,鼠标按住不放拖动到参数面板区;同理再添加一个【维下拉】组件。
选中已添加的年月组件,在属性面板中设置【参数名称】为@sjq,【参数标题】为数据期:。
已添加的维下拉组件,设置【参数名称】为@ry,【参数标题】为人员:。对于维下拉组件还需要设置使用的维表,设置【维表】为人员维,【显示方式】为文字,勾选【允许多选】。
最后,让参数与表格数据进行绑定。选中浮动维单元格B3,设置其过滤条件为left(IGRZB.RQ,6)=@sjq and dim(IGRZB.USERID_)=@ry。
注意:浮动维单元格上的过滤条件会作用于整个浮动区。对于维字段的过滤应使用dim()函数,具体原因见dim函数。 |
可以用文本组件实现表头标题等。
1)添加文本组件在工作区空白处双击即可添加文本组件(或者拖入文本组件到工作区),并输入文字考勤统计表。这里可以使用宏表达式引用参数@sjq的值,双击已添加的文本进入编辑态,调整内容为 <#=@sjq#>考勤统计表。计算后结果如下:
再次调整文本内容为<#=datetostr(@sjq,'yyyy年mm月')#>考勤统计表,使结果为2019年05月考勤统计表。
宏表达式格式为 <#=...#>,除了可以引用参数值,还可以引用表格单元格值,形如<#=GRID1.A3#>,其中GRID1为表格代号,当只有一个表格时,可以省略表格代号。宏表达式中还可以引用系统内置对象,如登录者对象login,<#=login.id#>表示登录者账号等。 |
单击选中已添加的文本,设置字号为18号,加粗显示。
双击已添加的文本,设置文本内容在文本组件中水平居中、垂直居中。
注意:单击选中文本后设置水平居中和垂直居中,是设置整个文本组件的居中。 |
最后我们用布局组件来完成报表的布局排版:表格一屏宽,左右适当留白。
1)添加布局在工具面板中找到【自定义布局】,拖入到工作区,确定。
此时,表头标题和表格都在一个布局单元格中,可以新增一行单独放表头标题,在空白处右键【插入行】。
将表头标题拖入到插入的行中。
行、列布局方式:单击工作区左上角的选中布局,设置【行布局方式】为按百分比-带滚动条。这样,当布局单元格中内容超出时,布局单元格会出现纵向滚动条。
固定行高:选中上方布局单元格,勾选【固定行高】,设置【高】为56,单位默认是px。
边距:选中下方布局单元格,【边距】默认为2,2,2,2 ,它表示上下左右都留白2像素,把它设置为20,0,20,0,即左边和右边留白20像素,上下不留白。
选中标题,设置【水平位置】居中,【垂直位置】居中。
单击表格左上角选中表格,设置表格【左边距】和【上边距】为0,【大小自适应】为水平撑满。
至此,报表设计完成。
点击菜单栏中计算报表,查看报表结果。在报表结果表页面可切换为简洁模式查看。
简洁模式:
最后,点击保存报表,完成报表制作。
文档内容仅供参考
如果您需要解决具体问题,还可以登录亿信社区
在提问求助板块提问,30分钟内帮您解决问题
请先登录