表单保存方法及系统与流程

文档序号:12748159阅读:1421来源:国知局
表单保存方法及系统与流程
本发明涉及数据处理
技术领域
,具体涉及一种表单保存方法及系统。
背景技术
:Asp.net开发系统中都会有数据录入界面,一般界面中的数据分为两类,一类是保存后,作为事后分析的数据,一类是只供审批人看或者确认的;但是无论哪种,一般都需要在数据库中创建对应字段才能将数据保存起来;目前常用的表单保存方法是:在数据库中创建好这些字段,在asp.net页面中写好与数据库中的字段一一对应的程序,最后调用数据库访问层insert或者update进行保存,同理,在事后浏览显示的时候,也需要通过访问层拿到记录,并通过写代码一行一行的赋值给页面控件;即使系统是通过自定义表单的方法,不用每个表单单独写代码进行保存和显示,单刷自定义表单依旧是首先在数据库中创建字段;这样一来,在增加表单属性的时候,就需要对应增加一个数据库字段,对于给客户开发的实时系统,很多客户都需要自定义表单属性,需要定义大量的新表和数据库字段,数据库维护非常复杂;而且系统移植性不好,一个系统移植到另一个系统经常因为数据库字段的缺少等原因出现版本问题。技术实现要素:本发明的目的在于提出一种表单保存方法及系统,能够将表单信息通过一个统一的算法序列化成XML数据并保存到数据库中,提高了操作效率,便于修改。为达此目的,本发明采用以下技术方案:作为本发明的一个方面,提供的一种表单保存方法,包括:读取表单数据;解析表单数据,将所述表单数据序列化;将序列化数据以可扩展标记语言XML的形式保存到数据库中。可选地,所述将序列化数据以可扩展标记语言XML的形式保存到数据库中之后还包括:从数据库中读取XML形式的序列化数据,并对所述序列化数据进行反序列化处理,以得到所述表单数据;将所述表单数据显示到页面上。可选地,所述解析表单数据,将所述表单数据序列化具体为:对所述表单数据进行清洗、识别、组合,并以所述表单数据中的控件ID作为标签名称,以所述表单数据中的控件值作为标签值,将所述标签名称和标签值组成序列化数据。可选地,所述将序列化数据以可扩展标记语言XML的形式保存到数据库中包括:选取所述序列化数据中需要统计的表单字段,在数据库中建立对应的数据库字段,并建立所述表单字段和所述数据库字段之间的映射关系。可选地,所述表单数据包括:输入元素、输入框、列表及下拉菜单。作为本发明的另一个方面,提供的一种表单保存系统,包括:读取模块,用于读取表单数据;序列化模块,用于解析表单数据,将所述表单数据序列化;保存模块,用于将序列化数据以可扩展标记语言XML的形式保存到数据库中。可选地,还包括:反序列化模块,用于从数据库中读取XML形式的序列化数据,并对所述序列化数据进行反序列化处理,以得到所述表单数据;显示模块,用于将所述表单数据显示到页面上。可选地,所述序列化模块具体为:对所述表单数据进行清洗、识别、组合,并以所述表单数据中的控件ID作为标签名称,以所述表单数据中的控件值作为标签值,将所述标签名称和标签值组成序列化数据。可选地,所述保存模块包括:映射单元,用于选取所述序列化数据中需要统计的表单字段,在数据库中建立对应的数据库字段,并建立所述表单字段和所述数据库字段之间的映射关系。可选地,所述表单数据包括:输入元素、输入框、列表及下拉菜单。相较于现有技术,本发明的有益效果为:一种表单保存方法及系统,该方法包括:读取表单数据;解析表单数据,将所述表单数据序列化;将序列化数据以可扩展标记语言XML的形式保存到数据库中,本发明将表单信息通过一个统一的算法序列化成XML数据并保存到数据库中,提高了操作效率,便于修改,兼容性好。附图说明图1是本发明实施例一提供的一种表单保存方法流程图;图2是本发明实施例一提供的表单数据示例图;图3是本发明实施例一提供的另一种表单保存方法流程图;图4是本发明实施例一提供的建立所述表单字段和所述数据库字段之间的映射关系的具体代码;图5是本发明实施例二提供的一种表单保存系统示范性结构框图;图6是本发明实施例二提供的另一种表单保存系统示范性结构框图。具体实施方式下面结合图1-图6并通过具体实施方式来进一步说明本发明的技术方案。实施例一图1是本实施例提供的一种表单保存方法流程图。在本实施例中,一种表单保存方法,包括:S10、读取表单数据;S20、解析表单数据,将所述表单数据序列化;S30、将序列化数据以可扩展标记语言XML的形式保存到数据库中。在本实施例中,将表单信息通过一个统一的算法序列化成XML数据并保存到数据库中,提高了操作效率,便于修改,兼容性好。在本实施例中,如图2所示,为一表单数据-日常报销单的示例图,针对该表单数据,系统执行保存数据的过程中涉及到以下表格中的系统文件:Step2.ascx表单录入文件Step2Map.XML表单中输入项与数据库字段映射文件Step2View.ascx表单浏览文件首先,执行步骤S10、读取表单数据,具体为:点击图2中的日常报销单,链接会将此表单的ID发送给表单容器,表单容器根据ID找到表单模板Step2.ascx原始文件,进行加载;加载后,显示填制页面,进行填写表头信息、表明细等,在表单中填写完信息后,点击提交,表单容器开始处理并抓取数据。其次,执行步骤S20,系统通过Request.Form拿到所以表单中的数据,并进行清洗,识别、组合、序列后组成字符串,字符串以表单中的控件ID作为标签的名称,控件的值作为标签的值,从而组合成字符串,数据库创建一张表带有XML类型的字段,专门存放此XML的信息。在本实施例中,如步骤S30所述,系统充分利用了XML保存数据的优越性,如XML与数据库表可以相互转换,思想基本一致,还有就是XML是字符串,保存方便。在本实施例中,本发明是基于asp.net系统,asp.net系统是运行在服务端的一种语言,所有的数据处理都在服务端运行;例如,在步骤S30的过程中,asp.net系统首先创建一个表单,表单上面排列各种asp.net的服务端输入控件,比如asp:TextBox类型的ID=tbxApplyId和ID=tbxCountryName,asp:DropDownListID=ddlStatus;asp:RadioButtonListID=radioCustomer等,在包括多行asp:GridView中的模板列;在输入框tbxApplyId中输入:奥巴马,在tbxCountryName中输入:美国,表单提交后,这些控件元素全部被发送到服务端,服务端接收这些信息后,遍历所有的控件,拿到控件的ID和值,放到哈希表中;然后将哈希表进行序列化,将ID作为标签,值作为值,如<tbxApplyId>奥巴马</tbxApplyId><tbxCountryName>美国</tbxCountryName>;对于asp:GridView中的模板列数据,asp.net会自动将每行的模板控件命名新的ID,比如第一行为GridView_ct02_tbxDate,那么我们序列化成<GridView_ct02_tbxDate>2016-1-1</GridView_ct02_tbxDate>,那么无论界面怎么变化,只要ID不变,系统都能识别数据,并且跟控件对应起来,同时这种XML如果保存到数据库,利用数据库提供的XML查询方法,可以跟sql语句一样进行查询,非常方便。如图3所示,在本实施例中,所述步骤S30之后还包括:S40、从数据库中读取XML形式的序列化数据,并对所述序列化数据进行反序列化处理,以得到所述表单数据;S50、将所述表单数据显示到页面上,以便于事后查询或者事后修改。在本实施例中,所述将序列化数据以可扩展标记语言XML的形式保存到数据库中包括:选取所述序列化数据中需要统计的表单字段,在数据库中建立对应的数据库字段,并建立所述表单字段和所述数据库字段之间的映射关系。在本实施例中,图4为建立所述表单字段和所述数据库字段之间的映射关系的具体代码。在本实施例中,所述表单数据包括:输入元素、输入框、列表及下拉菜单。实施例二如图5所示,在本实施例中,一种表单保存系统,包括:读取模块10,用于读取表单数据;序列化模块20,用于解析表单数据,将所述表单数据序列化;保存模块30,用于将序列化数据以可扩展标记语言XML的形式保存到数据库中。在本实施例中,将表单信息通过一个统一的算法序列化成XML数据并保存到数据库中,提高了操作效率,便于修改,兼容性好。如图6所示,在本实施例中,表单保存系统还包括:反序列化模块40,用于从数据库中读取XML形式的序列化数据,并对所述序列化数据进行反序列化处理,以得到所述表单数据;显示模块50,用于将所述表单数据显示到页面上,以便于事后查询或者事后修改。在本实施例中,所述序列化模块20具体为:对所述表单数据进行清洗、识别、组合,并以所述表单数据中的控件ID作为标签名称,以所述表单数据中的控件值作为标签值,将所述标签名称和标签值组成序列化数据。在本实施例中,所述保存模块30包括:映射单元,用于选取所述序列化数据中需要统计的表单字段,在数据库中建立对应的数据库字段,并建立所述表单字段和所述数据库字段之间的映射关系。在本实施例中,所述表单数据包括:输入元素、输入框、列表及下拉菜单。以上所述仅为本发明的具体实施方式,这些描述只是为了解释本发明的原理,而不能以任何方式解释为对本发明保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明的其它具体实施方法,这些方式都将落入本发明的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1