统计报表
概述
统计报表是专为解决中国式报表而设计的一站式个性化报表定制方案,它提供一种类似于Excel的在线表格工具,实现Excel的一些常用功能,将报表或者表单做成一种模板,把数据汇总的公式、样式以及所需的数据来源格式提前定义好,并提供一组指令可以模拟原来Excel手工操作,比如复制、粘贴、拉公式等,通过一组工具的联用,就可以最大限度地发挥用户本身的技能,让用户可以自由灵活地去设计复杂报表,既解决数据模型所带来的制表能力限制问题,又解决用户能力的问题。
产品使用
入口
综合域统计报表进入
统计报表画面
显示已发布的统计报表;点击报表,输入报表参数,点击运行后,可运行该报表;
模型配置画面
新建模型
点击【新建模型】,输入模型名之后,点击【确定,并进行参数配置】
进入参数配置页面,点击【保存】后保存该模型;列表显示该模型;
参数信息
新增参数
点击【新增参数】,输入参数信息,点击【确定】,点击【保存】;列表显示新增的参数数据;
- 举例①:参数类型为String时,参数来源选择视图设计器中已保存的仓库数据集;
运行时效果:
- 举例②:参数类型设置Date,日期格式设置年;
运行时效果:
- 举例③:参数类型设置Date,日期格式设置年-月-日,设置区间,默认值设置动态时间:年初,上月末;
运行时效果:
编辑参数
点击【编辑】,输入需要更改的参数,点击【确定】,点击【保存】;参数信息更新;
删除参数
点击【删除】,点击【保存】;参数信息删除;
脚本内容
格式化
格式化让代码更加整洁、紧凑,去除冗余的空格和换行符,更加便于阅读和理解;可以选中需要格式化的代码点击【格式化】,【格式化】后保存;
清空控制台
点击【清空控制台】后,清空运行后打印的数据;
插入函数
点击【插入函数】,会显示所有函数,包含这个函数的说明和使用示例,用户可直接在此处调用函数,编写代码后点击【保存】;
常用函数
1、$params.template:获取统计报表内部的报表模板的xlg对象;
2、$params.XXX(参数原名):获取统计报表运行时传入的参数,此处的参数原名即参数信息中配置的参数的参数原名;
如果统计报表的参数设置的是区间,则传入的参数是个数组;
3、xlg.getSheet(下标/工作表名):获取报表模板中的sheet表;
4、await queryDataView(dataSetName, dataSetParams):获取视图设计器中已保存的数据集(DS结构),如果后续需要使用fillDataComplex函数,将数据写入模板,需数据视图中的别名跟sheet中的名称对应;函数的第二个参数中的key值要与视图中的参数名对应,如果传入的参数想作为视图中的分组过滤(having)条件的参数,则第二个参数中的key值后需要带上@Having;
where条件传参
分组过滤having传参
5、await loadDataView(dataSetName, dataSetParams):获取内部数据视图中的数据集(DS结构);如果后续需要使用fillDataComplex函数,将数据写入模板,需数据视图中的别名跟sheet页中的名称对应;函数的第二个参数中的key值要与视图中的参数名对应;
6、await queryFormData(表单名称, 版本, 筛选条件):根据一定的筛选条件获取数字表格的数据(DS结构);例如,下图中的脚本是查询数字表格名称是“生产报工”,版本不限,状态是已审核,创建日期是传入月份的1日到31日之间的数字表格数据;
数字表格中,除了状态、创建日期这些属性字段,其他不是明细行,但是在右侧单元格设置中取名的单元格,都可以使用“detail.单元格名称”的方式查询;
如果想要查询数字表格的明细表中的内容,则使用“”detail.明细表名称”:{"$elemMatch":{“明细表列名”:”查询值”}}”的方式查询,目前返回的是包含符合查询条件的明细表的整个数字表格的数据;
7、await sheet.fillDataComplex(ds类, 标题行区域, 模板行区域, 是否删除模板行, 数据插入起始行【非必填】):根据DS的表数据,填充模板文件;此函数需要DS中的key值与模板标题行的标题名字一致(顺序不要求一致),名字一致的数据会填充到模板,不一致的数据则不填充;
例如下图的脚本中,DS数据是查询视图“采购订单行”获得,那么视图“采购订单行”中配置的字段别名与待填充的模板“明细”sheet页中的标题行的名字对应的数据将填充到模板中。
8、await loadFormXLG(表单示例ID):根据表单(即数字表格)实例ID获取唯一一条单据的xlg格式数据(脚本编辑器要求1.0.11版本及以上),此函数仅用于取单元格数据;
9、getCellValueByJson(xlg, Sheet页名称/下标, 单元格位置):从xlg中获取某个sheet页的某个单元格的值(脚本编辑器要求1.0.11版本及以上);
10、openXLG(xlg, 是否需要进行公式计算【非必填, 默认为false】, 打开xlg激活的sheet页下标【非必填, 默认为0】):打开XLG文件;
11、saveXLG(xlg, 文件路径):存储XLG文件到指定路径;
12、saveXLSX(xlg,文件路径):存储xlsx文件;
13、sheet.insertRowAfter(行号, 增加行数):在行之后新增行;
14、sheet.copyRegion(复制区域: "A1:F1", 粘贴区域: "A2:F3"):复制并粘贴行;可复制一行,粘贴一片区域;但是需要注意,如果复制的区域比较大,超过模板原有的100行,需要先插入行,再复制行;
15、sheet.deleteRow(开始行,结束行):删除行
脚本调试
当统计报表运行时一直转圈,没法输出结果时,很有可能是编辑的脚本内容有错误。
此时,我们可以在脚本中合适的位置,添加debugger语句,然后F12打开控制台,重新运行统计报表,进行脚本的调试,定位问题点。
也可以在脚本的代码块之间添加console.log打印语句,再重新运行统计报表,查看脚本中各变量的值,以及哪些代码块是能够正常执行的,然后进一步定位问题点。
报表模板
脚本可以把数据写入到报表里面;
数据视图
新建
1、点击【新建】,输入名称后点击【确定】;
2、点击添加数据表,选择数据源;
3、添加字段后,点击【保存】;
4、数据集右键添加关联表(可选择N:1/1:N/1:N(NOT)),修改域、重置和复制表名;以及表中字段、别名、参数名、输出、过滤、分组、筛选器、分组过滤、排序类型、排序顺序、箭头上下移操作说明可参照《视图设计器操作手册_V2.0》;
列表
点击【列表】,显示已保存的数据集,点击后可查看该数据集设置的信息;
预览
点击【预览】,根据设置的字段预览显示;
导入
点击【导入】,选择导入的文件,打开;
导入后显示导入的数据;
导出
点击【导出】,导出一份qry文件;
重命名数据集
点击,点击【重命名】,更改名称后点击【确定】;确定后数据集名称更新;
复制数据集
点击,点击【复制】,复制后生成一条相同内容的数据集;名称显示XX-副本XX;
删除数据集
运行
1、设置完成后,点击【运行】,输入参数后,点击【运行】;
2、运行结果;
保存
点击【保存】,可保存当前编辑新增的内容;
发布
点击【发布】【确定】,发布成功后,模型的状态就会变成已发布,已发布的模型就不允许编辑,可以取消发布;
已发布
权限
2、权限配置画面,点击【新增分组】,勾选可选用户/用户组,点击【添加已选】;
3、添加完成后,可对该分组的参数默认值设置和参数隐藏,也可删除该分组,设置权限完成后点击【确定】;
导入模型
1、点击【导入模型】,选择文件,点击打开;导入模型参数配置设置后点击【确定】;
编辑模型
模型未发布状态,可以编辑模型,点击编辑,进入编辑页面可进行编辑;
删除模型
未发布的模型可删除,点击删除后,模型删除;
查看模型
已发布的模型可点击查看,查看模型信息;查看页面只能进行查看操作;
取消发布
已发布的模型可点击取消发布,取消发布后状态更新为未发布;
重命名模型
复制模型
①如果当前已经打开了一个模型,需要复制这个模型
2、复制后生成一条相同的模型,模型下的数据同时复制;
②在统计报表的首页,如果想要复制模型
2、点击【复制】后输入复制后的模型名称;
3、复制后模型显示;
运行模型
1、模型配置好后,已发布、未发布的模型可运行;
2、输入参数后,点击【运行】;
3、运行结果;
导出模型
①如果当前已经打开了一个模型,需要导出这个模型
②在统计报表的首页,如果想要导出模型
点击导出;导出一份XX.stat文件;