报表设计:
-
数据库查询
查询数据库添加模板数据及
-
单元格属性
扩展:方向
样式:内外框
-
父子格
可以对表头(标题)设置左父格,进行分组;eg 小标题计算哪几年的月份条件,其父格就应该是年份
时间型数据设置在“样式”里
-
层次坐标
相对:移动,表达式:Cellx[Celly:+z/-z]
注1:Cellx表示需要返回结果的单元格,Celly表示位移时参考的单元格。Cellx[Celly:-z]的运算逻辑:记录位移前Celly和Cellx的对应关系,记为关系1,当Celly完成-z个位置的位移后,按照‘关系1’返回对应的Cellx。
绝对:扩展单元格后取某个值,表达式:Cellx[Celly: z /!z]
常用公式:
-
Cellx[!0] Cellx扩展出来的所有值
-
Cellx[!0] {条件表达式} 满足条件
-
&Cellx 获取单元格扩展后每个值对应的位置
-
$Cellx 获取单元格的值
-
动态格间运算
层次坐标跨行运算、跨组运算、集合运算
-
比较:单元格扩展值与 第一个值的比率,表达式: B2-B2[A2:1]
-
占比:单元格扩展值与 总量的比率 B2/sum(B2[!0])
-
环比:单元格扩展值与 上一行数据的比率 if(&A2>1,B2/B2[A2:-1],0)
分组报表:
-
逐层累计:逐行相加 C2+D2[B2:-1] 第二项表示D2单元格(纵向扩展的)B2列倒数第一个的那个值,B2是分组大组,方框里就是序列号
-
跨层累计:接上一组累计结果 if(&B2>1,C2+E2[B2:-1],C2+E2[A2:-1,B2:!-1])
-
求和: COUNT(C2[!0]{A2=$A2 && C2>2500})
-
主子报表
主模板中设置超级链接中的“网络报表”,并设置子报表与参数,比如传ID值,参数即为公式
$$$
子模板中编辑过滤,设置过滤条件,某一列等于参数
$ID,点击增加
决策报表式主子表
嵌入式主子表
-
HTML实现报表
下拉框:JS脚本+HTML代码+控件,设置数据字典为公式,序号栏
SEQ()函数
-
控件
控件值:实际值/显示值,下拉框这种可以设置数据字典,两者不一样
-
报表参数
参数查询:
1.定义参数
模板参数;全局参数;数据集参数
2.参数添加控件
参数与控件是通过参数名称进行绑定的,也就是说当控件名称与参数名称一致时,参数与控件就进行了绑定,即在 Web 端给控件赋值就相当于给参数赋值
3.过滤数据 添加普通条件,数据列 等于 参数,绑定
-
FR模块
${}实现SQL交互
图表设计:
-
柱形图
分类
参数:值
决策系统:
挂载报表
计算机函数:
-
strftime:格式化时间字符串
eg. strftime('%Y',订购日期)=‘2011’
note: %M十进制表示月份 ;%m十进制表示分钟数
-
SORT(A1) =COUNT(A1[!0]{A1 > $A1}) + 1
JS
属性:脚本语言先编译;基于对象;动态;简单紧凑跨平台;
安全(只能通过浏览器隐形信息浏览交互,本地不可);
大小写格式、结尾分号、
调试用谷歌F12:
ELements
Console
Network
Application
浏览器事件、cookies、HTML动态文本
Ajax提示