上一页

这一节我们来讲解表间公式的一种类型:提取公式的作用是通过输入以前已经填报过的数据来提取我们想要的数据填到当前的表单。应用提取公式之前需要理清以下逻辑:

从何处取数——即明确来源表;
取数条件是什么——即确定筛选条件,明确取数范围;
填充到何处——结果接收字段;
现有《班级信息表》,该表绑定了学生与班级的关系;《成绩信息表》,该表存储了学生的学习成绩。做一个查询模板,样式如下。输入班级名称后能自动出来该班级下的基本信息及其的考试成绩。

定义提取公式

【设计区】—【模板管理】— 选择要设计的模板《提取公式》,点上方菜单栏或者右键快捷菜单里【表间公式】按钮。如下图:

若在设计界面,直接点击上方的表间公式

弹出表间公式列表界面,选择【提取公式】,然后点【新建】按钮,进入了”提取公式”界面,如下图:

在这里我们描述一下此界面各选项的功能,有些可能我们本例中不会用到,以后会慢慢的讲解。

基本信息,主要包括以下几部分:
  • 应用方式
    新增报表打开时执行:在新增报表时执行公式
    修改报表打开时执行:已经保存的报表,在修改报表的时候或者工作流中办理任务时执行公式
    查阅报表打开时执行:已经保存的报表,在查阅的时候执行公式
    保存前执行:保存报表前执行公式
    查询时执行:用于手机端查询模板,点击查询时执行
    提交前执行:审批流中,点击提交时执行公式
    手动执行:填报时右击应用公式执行
    该公式应用于工作流:在某个工作流程的某个任务提交时执行,要选择下方的流程名称及任务节点
    复制新增报表打开时执行:仅在复制新增报表时执行公式,要和普通新建区分
    筛选条件改变后执行:根据公式的筛选条件,一旦条件改变,公式就会执行一次
    注意:移动端和网页端筛选条件改变执行一定要勾选具体的字段,否则移动端无法触发

  • 选项
    显示全部查询数据、显示前\条数据:查询数据记录行数的控制
    **排除重复:
    重复数据只会显示一行
    自动分组:用于聚合函数,默认勾选即可
    相同值自动合并:相邻的值如果相同就会合并成一个单元格,此功能要和”管理数据表”的表设置”相同值合并”配合使用才会有效
    执行前清空填充部分数据:执行前,清除该公式要填充的字段区域的数据
    执行前清空所在区域所有数据:执行前,清除该公式要填充的整个区域的数据
    执行后清除空行:自动清除空行
    保留模板设计的行数:公式执行时,只覆盖模板设计的行数
    单元格有值不覆盖:当前模板的结果接收字段如果有值,那么提取到的数据不覆盖该字段

  • 提示:
    当多条提数,需要同时执行,且顺序填充时,第一个执行的公式要选择填充前清空,后续补充的提取公式就不再勾选。

执行后整个区域排序

表间公式提取完数据后,还可以再进行整体排序,以达到显示的要求(类似于Excel中的排序功能),仅用于明细表,注意不能有合并的行列,否则此功能不起作用。

基础信息设置完成,如下图:

提取公式的逻辑设计,主要分三步:
数据来源

数据来源是指我们要提取的数据从哪个或者哪几个数据表里来,要进行选择,如果选择了不同模板多个表,还要建立表间关联,如下图:

*=:左连接;

=*:右连接;

==:左右的交集

注意:不需要的来源表一定不要选进来,否则不仅会影响查询速度还会导致数据查询会出错。

筛选条件

筛选条件是指过滤条件,一个数据集中的数据有很多,有些并不是我们想要提取展现的,这样就需要通过筛选条件来筛选数据,只有满足筛选条件的结果方能被提取,如下图:

备注:
注意来源表与本报表的概念,重点熟悉表间公式的写法。

填充方式

填充操作有三种选项

  • 填入值:顾名思义就是将来源表里字段或者表达式的值填入到【填充数据表】的目标字段里。

  • 填入公式:会将填充数据表达式作为Excel识别的计算公式填入目标字段里。

  • 按行(列)匹配:用于定位指定的明细行,所以被选做按行列匹配的目标字段必须出现在筛选条件中,提取公式会自动按筛选条件进行明细表行定位。

点【保存】按钮,一个提取公式设计完毕。

表间公式筛选条件和填充项可以查找替换

应用提取公式

登录NxCells客户端,填报《班级内学生及成绩查询》表,因为应用时机选了筛选条件改变后执行,那么当选择了【班级名称】后数据会自动选择筛选填充,如下图:


如果勾选了手动执行,那么就需要人为的手动来调用该公式。

后面章节,我们会讲解通过按钮来调用此提取公式。

提示:
h5明细执行表间公式支持明细行列匹配,只影响当前行。这点和客户端使用是有差别的。h5主表可以带出多条明细 。

下一页

作者:小明  创建时间:2021-11-04 11:29
最后编辑:harry  更新时间:2023-10-27 16:31