本帖最后由 Erik.Xue 于 2020-4-26 10:49 编辑
介个问题,乍一看,什么叫主表里“更好的”维护子表的统计数据?“更好的”意义何在?
可能现在还不能理解这个问题到底想说明什么,那么我们接下来就模拟一个场景,清晰的说明要怎么
“更好的”去维护子表的统计数据。
问题背景:
假设现在有这样的一个场景,项目中有两张数据表,一张是订单表,另外一张是订单详情表。这俩表的
关系是主子表的关系。具体关系如图所示:
当然,在主表中,这个总价字段可以直接创建在主表中并进行维护,还可以利用视图的办法不创建这个字段。
这里介绍一下不创建总价字段,利用视图完成对总价的计算和使用。
如果有统计需求的话只需要使用视图统计即可。
接下来,我们用创建总计字段来演示问题。
然后我们利用这两张表快速生成页面,接着在子表订单详情表中新建一个公式字段——总价。
运行后效果:
仔细观察可以发现,当我们在添加数据时,输入了子表订单详情表里的物品数量和单价后,总价单元格并没有发生计算。
而是当我们点击提交数据之后,主表订单表中的总价数据才发生了变化,对数量和单价进行了计算。
但往往在实际场景下,我们需要在输入好单价和数量后,页面立刻就可以给出计算的结果。
以下我们给出解决的方案:
我们在绑定的表格中,新加一列,这一列使用公式对总价进行一个计算。详细操作如动图:
可以看出,当我们输入完数量和单价后,按下回车第一个总价列就立刻计算出来了结果。
此时,我们已经可以利用公式或公式字段计算出订单详情表里每一个商品的总价。
接下来我们就需要计算所有商品的合计价格,也就是主表中存储的总价字段。
默认情况下,我们都会选择将数据表里的总价字段绑定到页面上,
我们为了统计子表总价,通常情况下都会在总价单元格上书写公式=SUM(子表公式总价所在单元格)。
此时,我们一定会觉得这样设置,轻轻松松计算出来~
运行看看:
嗯???什么情况?为什么什么都不显示?哎,还是太年轻,想的太简单啦~
怎么解决这个问题呢?很简单,看图!
直接将总价绑定字段取消掉,再运行试试看:
怎么样?是不是出来了。其实吧,原因是因为活字格底层在同时对公式和绑定字段数据进行抉择时,产生了冲突。
活字格不清楚该选择哪一个数据进行显示,所以如果同时设置了计算子表字段公式和绑定主表字段的话,就会发生
数据显示有误的问题。
此时,你肯定有问题提出。
不对啊,那你这么光用公式计算,那数据咋提交,我咋存到数据库,这算出来的数据不是啥用都没有了???
哎,小伙纸,有问题是正常滴!
解决这个问题也很简单,我们可以直接设置命令,在更新数据表时,可以自定义选择更新字段值的单元格位置。
不废话,看动图:
你看,这不是完美提交数据了么!
这样就保证了主表字段同步显示并计算,并且提交数据后也可以同步提交到数据库中啦!
|