如何制作一个超大型的复杂表单
的有关信息介绍如下:工作中,我们经常需要制作在线表单用于收集信息,但是当这个表单是一个庞大且繁杂的表单时 ,我们就很难制作一份较为完备的在线表单。笔者在此提供了一种行之有效的方法,经供参考。
废话不多说,我们先来看一个表单。下图一、二为表单所需要包含的信息,我们可以看到,这是一个贫困户信息收集表单。它的本质是六个表单,这六个表单每个表单都有自己的填表逻辑,都有相关的说明,但是,现在的目的是将六个表单制作成一个在线表单,我们发现,问题的核心在于,下图一所示的三个表是以家庭为主体进行填写,然而,图二所示的三个表单却是以家庭成员为主体进行填写。
第一种方法:问卷星或者其他表单定制开发,开发一个这样的表单,时间大概在10天到25天,开发成本为1-2万,最重要是,定制开发具有特异性,也就是说,如果我明天,想要调查其他信息,这一个定制开发的表单就无法使用,只能从头开始定制开发。因此不建议。
第二种方法:使用麦客表单进行制作。在开始正式叙述之前,我先要再次明确这个表的核心问题。
1,一部分表是以家庭为单位填写,一部分是以家庭成员为单位进行填写。2,家庭成员的数量是不确定的。
我们所有的操作都是为了解决这个问题。首先,我尝试使用问卷星来制作这一表单。问卷星算是一个很大的在线表单制作平台,自带的"自增矩阵"支持自定义增加输入条数,能够完美的解决上面提出的1,2两个核心问题。用户填表的体验很不错。但是在后台的数据收集中,我们发现了一个令人崩溃的问题。下图为问卷星统计数据下载后的表格,我们发现,本来只有不到两百项的表格,在问卷星的系统收集数据中,居然达到了惊人的6000多列。经过查询,我们发现,问卷星的"自增矩阵",实质上是在前端增加10个(这个数字可以修改)一模一样的矩阵,只不过默认显示一个矩阵,当用户手动增加矩阵时再显示出其他的隐藏矩阵。而在后台,这些矩阵一直存在,因此,导致原本的不到两百个项目,在问卷星看来,确实是6000多个项目。
问卷星的前端填表体验极好,但是糟糕的数据处理,使得我们完全无法使用问卷星来制作这样的一个超大型复杂表单。
我转头使用麦客表单来制作这样一个表单。为了解决1,2两个核心问题,我们提出了两个思路。第一个思路,我们尝试使用预设10个一模一样的矩阵,但是默认显示一个,当选择多个家庭成员时才将隐藏的空白矩阵显示出来,怎么样,是不是感觉很熟悉,问卷星使用的便是这样的逻辑与技巧。但是同样的问题,我们对于每一个以家庭成员为主体进行填写的信息都需要预设超过10个一模一样的选项,同时将之隐藏为只显示一个,无论是在表单制作还是后续的数据处理,我们都没有任何办法进行处理。
由此,第二个思路提出,为什么我们一定要将两个内在逻辑矛盾的表单强行整合在一起呢?直接将之拆分为两个表单收集就行了啊。
从第一步的两个图中,我们可以看出。以家庭为主体进行信息收集的表单有三部分:饮水安全,房屋保障,搬迁安置。以家庭成员为主体进行信息收集的表单有四部分:基础信息,教育信息,以疗信息,就业信息。我们将以家庭为主体的三个部分做成一个表单,暂时称为家庭表单,以家庭成员为主体的部分做另一个表单,暂定为成员表单。我们发现,无论是家庭表单,还是成员表单,其实都是很简单的表单。如下图一、二。
这样的拆分,解决了问卷星所出现的数据变为6000多项的问题。但同时问题出现了我们的目标是一个表单,包含所有的信息,现在变为了两个表单,如何将之合并?如果强行将两部分表单合并,必然导致核心问题1,2的崩溃。因此我们在这里取了一个巧,我们把家庭表单作为主表单,在第一页的尾部添加一个连接(下图一、二),这个链接跳转到成员表单,而后在成员表单中设置填写完成后自动跳转回家庭表单(图三、四),以此,我们大致实现了两表合一。每个表单的链接在"发布"中查看(下图五)。
解决两表合一后我们发现,这样做出来的表单,在前端可以实现自定义增加家庭成员的信息,同时也能填写家庭为主体的信息,那数据处理效果怎么样的?
首先我们看一下,数据的下载(下图一,二),在表单填表超过1万份后,表单以CVS(类似于excel)的格式导出。下载的两份数据斗只有上百项,相比于问卷星的6000+列,显得很简洁。
如何将两份表格合在一起进行处理?这是一个很容易的问题,首先,我们先对成员表单进行处理,使其身份证正常显示,操作方法自行点击引用链接查看。
2excel及wps对大数字(身份证)显示不全的处理
我们还是以家庭表单为主体。首先创建一个全新的表单,然后,将家庭表单的信息进行初步处理,删除一下不需要的信息(如麦客自带的提交时间),复制,粘贴到新建的表单,(下图一)。而后,处理成员表单的数据,复制,在家庭表单下的空行的倒数第一列进行粘贴(下图二)。
而后,我们将粘贴过来的成员表单的家庭户主一列进行剪切,并粘贴到全表的第一列,同时将成员表单的表头复制过来。而后以户主姓名为依据,对全表进行排序。就可以看到一个家庭的户主,以及家庭信息在第一列,下面的是家庭成员的详细信息。至此,数据处理完毕。结果如下图二
为了实现填完信息后查看自己填写的信息,可以设置邮箱,同时购买邮件服务,将填完的所有信息发送给填表人,如下图