1.简单的单元格动态值
C1 格值为=A1+B1
时,C1格的值将是A1和B1相加的结果。
但如果A1是输入框,发生变化的时候,如何才能让A2跟着变化呢。
例如C2只需要写为 = dynamic(A2)+B2
就可以实现A2变化,C2的值跟着变化的效果。
第一排不是动态的,所以输入框里输入25,但结果没有变化,还是10.
第二排是动态的,所以输入框里输入25,但结果就变成了35 (25+10).
2.动态的条件格式
通过条件格式,在用户列表里,可以设置如果用户是男性,名称是蓝色字体;如果用户是女性,名称是绿色字体。
如果性别可以修改,那就需要动态的条件格式来保证修改后用户的颜色还是保持一致。用户列表的名称格是B4 =ds.名称
,性别格是D4 =ds.性别
。
- 页面属性中设置允许编辑。
- 删除D4格,重新输入公式
=ds.性别
(因为页面是可编辑页面,这样会重新生成性别的编辑控件) - 在B4的前景色属性公式中录入动态颜色公式:
ifv(dynamic(D4)==Dict.性别.男,-16777000,-16720356)
:如果D4值为 字典项男性(也就是1),那么是蓝色,否则是绿色)。
我们看一下运行效果
前两行改为女性,改动的同时,名称就变色了。
后几行改为男性。
同样,我们可以方便的实现字体,字号,前景色,背景色,控件样式等的动态条件格式。
另外如果动态的格子是字段的话,可以写为dynamic(字段的公式),例如上例里可以把D4写为ds.性别 。因为动态的数据表字段,就是表单上字段所在格子的动态值。
ifv(dynamic(ds.性别)==Dict.性别.男,-16777000,-16720356)
3.动态的显示和隐藏
和条件格式一样,在 基本属性栏->可视属性的公式里,填入动态公式就可以了。
例如编辑页面中,希望部门是 业务部(id为1)的时候,相片和描述可见,其他时候不可见。
那就可以在相片和描述所在格的可视属性里,填入dynamic(it.部门)==1
即可。
如果希望整行消失,那么在相片格子,鼠标右键,选中区域行,在行可视属性里,填入相同的公式即可。
当部门不是业务部(id为1)的时候,相片和生日这一整行都将隐藏。
4.动态的单元格验证
当然,静态的单元格验证根本没用。数据表视图里的验证,在编译的时候,会生成到格子里,和手动配置的单元格验证相同
value()
:表示当前格的值。动态跟随改变。如果单元格是A1,那么value()和dynamic(A1)完全相同。
表达式:Validate.长度校验(value(),0,255)
,0表示最短长度,255表示最大长度,可以修改,例如6,20.至少6,最大20.
出错提示:不满足表达式的时候,提示信息,可以是公式组成。
立即校验:是的话在单元格输入完成的时候就校验,否的话只在保存的时候校验。
数据表视图和手写的单元格验证,都支持多个格子的条件检查。
例如 ifv(dynamic(it.性别)==Dict.性别.男,Validate.长度校验(value(),5,10),Validate.长度校验(value(),10,20))。如果是男性,长度允许5到10,否则长度允许10到20.