智能在线表单设计器 Web Form Builder

FreeForm : Silverlight Agile Form Engine
  博客园  :: 首页  :: 新随笔  :: 管理

FreeForm模板及数据外部存取接口及方式

 

引言

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

 

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

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

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

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

 

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

我们为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代码,这样只用通过认证的用户才能访问FreeFormWCF+数据库接口。

 

 

 

保存

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

 

 

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

 

 

进入Template 页,点击“Save To Server

 

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

读取

进入Template 页,点击“Load From LoaclDB

 

选取刚才建立的模板

 

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

 

 

表单数据读取

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

 

 

 

 

我们的网站(昕友软件):http://crmwin.com