智能表单设计器Web Free Form Designer:FreeForm模板及数据外部存取接口

来源:互联网 时间:1970-01-01

引言

因为FreeForm的设计方向是支援企业业务的表单引擎,所以必须要有开放式的模板及数据外部存取接口,虽然也是基于XML,但我们和一些商业产品的做法不一样,比如InfoPath,使用InfoPath来做表单,那么客户端必须用Office InfoPath,服务器端必须要用SharePoint,InfoPath的XML数据也很难被外部程序应用,更加不用说模板XML文件了,这实在是很封闭的环境。

而FreeForm的模板及数据外部存取接口非常开放,目前提供三种方式:

1、 WCF+数据库,您可以选择自建存放模板和表单数据的数据库,SQL Server、Oracle、My SQL甚至ACCESS都可以;

2、 客户端本地数据库存储,我们建立了一个Silverlight客户端数据库,用于没有数据库环境的用户;

3、 XML存储,这个是没有Namespace的XML,外部第三方程序存取相当的便利。

模板客户端本地数据库存储

我们为FreeForm编写了一个本地的对象数据库,寄存于客户端Silverlight,无需用户安装任何数据库系统,这样在没有服务器数据库环境的情况下,也可以存取表单模板和表单数据。

保存

首先我们先建立一个表单,点击“New Template”如下图:

 

修改模板的名称,点击“Template Options”

 

修改为My Template

 

在模板布局拖放一些控件:

 

进入Template 页,点击“Save To LoaclDB”

 

如果出现成功提示,就表示已经保存在本地数据库中了。

读取

进入Template 页,点击“Load From LocalDB”

 

选取刚才建立的模板

 

然后,我们可以看到,模板被读取进来了。

 

模板XML存储

保存

首先先建立一个表单,点击“New Template”如下图:

 

在模板布局拖放一些控件:

 

 

进入Template 页,点击“Save To Loacl”,然后在本地进行保存。

 

读取

进入Template 页,点击“Load From Local”

 

选取刚才建立的模板

 

然后,我们可以看到,模板被读取进来了。

 

模板WCF+数据库方式

首先建立数据库,以SQL Server为例:

 

模板数据表,这里存放表单模板的定义,Template

 

表单数据库表,这里存放表单数据,FormData

 

我们可以看到TempateXml 和 DataXml都是XML类型的。

建表脚本如下:

USE [FreeFormDB]

GO

 

SET ANSI_NULLS ON

GO

 

SET QUOTED_IDENTIFIER ON

GO

 

CREATE TABLE [dbo].[Template](

    [Guid] [nvarchar](36) NULL,

    [TemplateName] [nvarchar](50) NOT NULL,

    [TemplateXml] [xml] NULL,

    [Type] [nvarchar](10) NULL,

    [Version] [nvarchar](10) NULL,

    [UpdatedDateTime] [datetime] NULL

) ON [PRIMARY]

 

GO

 

CREATE TABLE [dbo].[FormData](

    [InstanceID] [nvarchar](36) NULL,

    [TemplateID] [nvarchar](36) NULL,

    [TemplateName] [nvarchar](50) NULL,

    [DataXml] [xml] NULL,

    [UpdatedDateTime] [datetime] NULL

) ON [PRIMARY]

 

GO

然后,在客户端的配置文件中,必须首先配置与服务端匹配的certificate代码,这样只用通过认证的用户才能访问FreeForm的WCF+数据库接口。

 

保存

首先我们先建立一个表单,点击“New Template”如下图:

 

在模板布局拖放一些控件:

 

进入Template 页,点击“Save To Server”

 

如果出现成功提示,就表示已经保存在本地数据库中了。

读取

进入Template 页,点击“Load From LoaclDB”

 

选取刚才建立的模板

 

然后,我们可以看到,模板被读取进来了。

 

表单数据读取

进入表单设计器的Runtime Design,可以模拟运行时的读取和保存,在表单展现器中的读取和保存将有更多方式。

本文来自FreeForm Designer的博客,原文地址:http://www.cnblogs.com/FreeForm/archive/2011/06/24/2088635.html

相关阅读:
Top