misshop中,很多时候一个单元格的值和用户希望看到的是不同的。这种情况一般通过配置单元格的显示值属性来实现。

引用的显示值

image.png
如上图所示,这个单元格的值是 ds.部门。 我们知道,用户表的部门字段是一个引用,也就是实际的值是 部门的id。例如项目初始数据里: 业务部的id是1,财务部的id是2。

用户在这里希望看到的是业务部,而不是1,所以我们需要在显示值里增加一个表达式,ds.部门.名称 ,也就是把用户所属部门的名称显示在这里。

如上例所属,就是引用的显示值,通过显示另一个数据表的显示列,来代替id列展示给用户。
一般开发方法 ,就是使用级联,继续点出显示列来。当然也可以自定义显示列。

引用的显示值的方法二,Match.fetchViewByTableId

image.png
有的时候,单元格的值不是引用列,无法继续点出名称来,但我们还是需要展示他的显示名。这时候可以使用
Match.fetchViewByTableId来获取指定数据表的指定id的列。

Match.fetchViewByTableId("用户",value(),"名称")//从数据库查询,等价于table.用户.findOne(table.用户.id==value()).名称。
还有就是如果这个格子是dynamic变化的,但又不是下拉数据集这种带自带显示值控件,希望值变化后,显示值也跟着变化,就只能使用这个表达式。Match.fetchViewByTableId("用户",dynamic(C1),"名称")

带引用计算的显示值

有时候我们的显示值是特殊的,不是单纯一个字段。这时候可以写表达式。

例如我们希望部门名里带着负责人。例如
业务部(主管:张三)
财务部(主管:武媚)

这时候可以简单的字符串拼接实现:ds.部门.名称+"(主管:"+ds.部门.主管.名称+")"

字典项的显示值

例如ds.性别,这是字典项,实际的值是1或者2,但用户希望看到是 男性 或者女性。
image.png
系统会自动生成从字典项性别中,根据当前格子的值查找对应的显示名称。
Dict.性别.get(value()) //value()表示当前格子的值,在这里就是ds.性别。

字典项额外指定显示值

统计的时候,有的时候表示全部分组等特殊情况的时候,我们会给一些特殊值,如果值是这些特殊值的时候,进行特殊显示。

例如性别中,1表示男性,2表示女性,统计的时候把所有人统计为一个分组,并且给出值-1,这时候希望显示-1时显示 全部,其他正常显示。

可以写为=ifv(value()==-1,"全部",Dict.性别.get(value()))
也可以使用Dict.xx.get的额外指定参数。
Dict.性别.get(value(),{-1:"全部"}) //指定特殊值-1对应的显示值全部
Dict.性别.get(value(),{-1:"全部",-2:"错误"}) //指定特殊值-1对应的显示值全部,特殊值-2对应的显示值错误

Dict.性别.get(value(),"全部")
更特殊的简化写法,-1的时候返回 全部。

引用额外指定显示值

引用中同样可以额外指定显示值。
=ifv(value()==-1,"全部",ds.部门.名称)
=ifv(value()==-1,"全部",Match.fetchViewByTableId("部门",value(),"名称"))

也可以使用Match.fetchViewByTableId的额外参数。
Match.fetchViewByTableId("部门",value(),"名称",{-1:"全部"})//指定特殊值-1对应的显示值全部

Match.fetchViewByTableId("部门",value(),"名称",{-1:"全部",-2:"错误"})//指定特殊值-1对应的显示值全部,特殊值-2对应的显示值错误

Match.fetchViewByTableId("部门",value(),"名称","全部")
更特殊的简化写法,-1的时候返回 全部。