FreeForm自动计算及数据验证
FreeForm自动计算
创建2个控件用于演示自动计算:
进入Runtime Design 添加自动计算
字符型公式
选择ToUpper
然后将鼠标放在括号()的中间
请按键盘 Ctrl 键,将自动出现当前的控件列表,选择FieldA
点击 Add ,并点击 OK
在FieldA输入abcd,然后进入Runtime Design 测试自动计算
点击“Test Calculation”
可以看到效果:
其他操作的方法也是类似。
时间公式
为FieldA添加公式ShortDateString:
效果:
选择 Now
点击“Test Calculation”
可以看到效果:
数字公式
还记得圆面积的计算公式吗?是πr²(圆周率*半径的平方)
添加公式:
我们现在要试验一下,半径输入5
点击“Test Calculation”
可以看到效果:
FreeForm提供了2种数据验证方式:一般验证和自定义验证,前者是为较简单的验证提供支持,后者可以编写复杂的组合,可以用于较复杂的业务系统。
FreeForm一般验证
进入Runtime Design 添加验证:
一些例子
比如我们要规定Min Age最小年龄必须等于1,最大年龄必须小于等于150,那么可以这么定义:
如果我们输入了错误的值,点击“Test Validations”或者“Design Check”中的“Check”。
会自动出现错误提示。
支持的验证方法还有很多,不一一介绍,其中就包括几乎万能的正则表达式。
FreeForm动态自定义验证
一般验证有局限性,那就是只能一个语句一个语句的录入,一些复杂的验证难以实现,于是我们就开发了动态的客户自定义验证方式.
进入Runtime Design 添加自定义验证:
一些例子
比如我们规定在性别选择了Male或者Female的时候,real Age必须大于Min Age,同时,必须小于Max Age,在不选Male和Female的时候,不予验证。
我们可以这样定义(选择简练的3目运算符):
( [Male] == 'True' || [Female] == 'True') ?
( [Male] == 'True' || [Female] == 'True') && ( [RealAge] >= [MinAge]) && ( [RealAge] <= [MaxAge] ) : true
或者用更直观的If-Else写法:
if ([Male] == 'True' ||[Female] == 'True')
{( [RealAge] >= [MinAge]) && ( [RealAge] <= [MaxAge] ) ;}
else {true;}
声明变量也是可以的:
var MaleorFemale=([Male] == 'True' ||[Female] == 'True');
if (MaleorFemale == true)
{( [RealAge] >= [MinAge]) && ( [RealAge] <= [MaxAge] ) ;}
else {true;}
千万不要忘了键盘 Ctrl 键,它将自动出现当前的控件列表,非常方便。效果如下:
测试一下效果
当有一项性别选中时,年龄大于150
提示错误:
并且显示红框:
当性别不选的时候,即使大于150也不会抱错。
这个例子我们放在Demo菜单里,您可以测试。
验证可以通过点击“Test Validations”或者“Design Check”中的“Check”。
或
Demonstrate(ver2011):
.