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):
.