智能表单设计器Web Free Form Designer:FreeForm动态数据验证和动态自动计算

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,在不选MaleFemale的时候,不予验证。

 

我们可以这样定义(选择简练的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”。

 

 

 

 

我们的网站(昕友软件):http://crmwin.com
posted @ 2011-06-26 10:04  昕友软件开发  阅读(861)  评论(0编辑  收藏  举报
欢迎访问我的开源项目:xyIM企业即时通讯