由于版本迭代较快,有些知识点在之前没提到或现在已经改变,特补充说明。
梳理字段的书写格式
下拉数据集控件属性:表名写Tname.用户,数据列写 `table.用户.id`, 显示列填`table.用户.名称`,取数条件填`table.用户.id==2` ,注意都有撇号,排序参数写 [Tname.用户.性别,Tname.用户.登录名]
ds的条件参数:写 table.用户.id in [1,2,3],排序参数写[Tname.商品.id]或["-id"],都不加引号或撇号
排序控件控件属性的字段名称:写 Tname.规格值.名称,不加引号或撇号
findOne()函数使用特别注意
开发中经常需要一个单元格的值跟着另一个单元格动态变,使用findOne函数可以实现。如下,勾选部门,后面动态显示该部门的一个用户。

B4格是下拉数据集,值为:=xx D4格:=table.用户.findOne(table.用户.部门==dynamic(B4)) E4格:=D4.名称 F4格:=dynamic(D4).名称
其中E4单元格看起来是多余的,但实际必不可少,因为系统计算D4格的时候不会去拿部门所有字段,只拿页面需要用到的字段,E4格就是告诉D4格,找记录的时候把名称字段拿出来。而系统不能识别F4格用到了什么字段,因为F4格带有dynamic函数,这个可能后期会优化。最终是F4格跟着B4格变,D4、E4格可以隐藏起来。
dynamic()函数使用特别注意
dynamic()函数经常用到,用于获取一个单元格的实时值。例如下面三个式子都是想判断A11格和A21格的实时值是否同时为空,应该怎么写呢?要注意,应该按照第一行的表达式写,第二三行的写法都不准确。
=dynamic(A11)!=null && dynamic(A21)!=null
=dynamic(A11!=null && A21!=null )
=dynamic(A11!=null) && dynamic(A21!=null)
因为系统见到dynamic函数后,就会标记其参数中的单元格,如果这个单元格在哪个公式中用到了,则标记的单元格在变化的时候整个式子重新计算。所以dynamic函数括号中的参数应该只填写某个单元格。
保存至属性设置
在较新的版本中,如果一个单元格值为=it.id或=ds.名称 这样简单的公式时,系统自动将这个表达式设置为该格的保存至属性,这时如果在别的单元格保存至属性需要设置为这个表达式时,会提示冲突,这时只需将前者的单元格保存至属性设置为null就行,表示不需要将这个单元格保存到任何地方。
同样,有时我们对单元格的值有个判断,如 `=ifv(it.数量==null,1,it.数量)` ,这时系统将不再自动设置保存至属性为 it.数量,这时就需要手动设置,这一点也需要注意。
网友评论