概览
如果需要直接以某个示例对操作演示,请跳到第三章。如需查看详细参考,请跳转到第四章。
系统介绍
本系统是一个在线问卷调查/数据管理系统,是基于Web网页的形式提供在线访问功能的。系统提供了问卷/表单定制设计管理、问卷/任务发布管理,问卷/表单数据的在线数据录入/填报、问卷数据在线管理和统计、问卷系统功能和数据的权限管理。
本系统最开始根据疾控行业特别是流行病学调查的需求研发,后面加入了其他各行业及软件二次开发的需求。在疾控行业中,信息技术对调查问卷/流行病学调查的影响和价值日益凸显,系统作为公共卫生信息化的产物,适用于公共卫生领域的各项业务,如现场流行病学调查、卫生应急监测、快速风险评估调查、疾病监测、现况调查和队列研究等。在系统中针对中国的公共卫生调查的特点,针对性的提供了地区控件、地图坐标等控件,并且提供了对中国疾病预防控制系统(直报系统)兼容的地区编码、统计局发布的地区编码等标准的兼容实现。
系统B/S架构系统,服务器端采用支持多环境运行的Java语言开发,浏览器端采用HTML5、Javascript、CSS等标准和技术构建,用户可以使用当前的任意一种支持HTML5的主流浏览器(IE11+/Edge,火狐(Firefox)浏览器,谷歌(Chrome)浏览器、360浏览器等)访问软件部署的地址即可访问系统,操作相关功能。系统基于成熟、免费的开源技术和产品构建,软件的构建和发布符合J2EE工业标准。系统使用到的主要第三方开源产品:
- Linux操作系统,系统也可以运行于Windows操作系统上
- Java 17及以上,部署的服务器运行需要安装Java运行时环境。
- MySQL 8.4以上数据库(http://www.mysql.com/),运行数据库服务。
- Apache Tomcat 10以上(http://tomcat.apache.org/),运行服务器端应用软件。
主要功能
系统完全基于Web(网页)设计,功能完善的问卷表单设计器,达到所见即所得的良好用户体验;可重用的问卷组件、模板让繁琐重复的问卷设计变得轻松简单。针对在实际应用中每次调查会涉及多个调查问卷的实际需要,开创性的提出了调查任务管理的功能:调查任务包含了每次调查的全部调查问卷及其数据。
系统适应于多级、每级多用户的实际应用场景,提供了基于角色的访问控制(RBAC)权限控制,系统为每个调查任务的所有调查问卷及其他辅助功能都提供了唯一的登录、访问地址。
此外,在系统中还提供了共享数据字典的管理功能,如针对地区编码、民族等国家标准化数据,可以在系统中预先建立统一的数据字典,并且由专人维护数据。普通用户在定制问卷时只需要使用系统内预置的数据字典,从而有效地保证了问卷数据对标准的兼容,同时极大的减少了问卷定制用户在问卷内维护数据字典的工作量。
针对标准字典每年可能更新的情况,系统提供了数据视图(版本)的功能。在用户定制问卷时,可以选择问卷绑定于具体的数据字典,也可以选择绑定到某一个数据视图。当用户将数据绑定某一个数据视图时,可以在调查任务的发布时指定和某一具体数据字典绑定。如未在调查任务时绑定,则默认使用系统级的数据视图绑定。系统默认的数据视图绑定可以由系统管理员随时指定。
为适应于专业调查问卷中的跳转等复杂的逻辑控制,在系统中内置了专门用于数据校验、跳转、隐藏/显示等逻辑控制的脚本,该脚本的设计基于业内流行的Epidata软件(http://www.epidata.dk/)内置的脚本,针对Web系统的特点进行了扩展和增强。更多信息请参见文后具体章节。
系统不仅提供了在线的数据录入界面,还提供了适用于台式计算机和笔记本同时兼容Windows/Linux等多种操作系统的离线数据录入程序,针对安卓智能手机和平板也提供了相应的离线录入应用。利用离线录入工具,问卷录入用户可以在联网的情况下先将调查任务的问卷下载到本地计算机和移动设备上,在离线的情况下进行数据的录入,在连线的情况下完成数据的上传。更多信息请参见文后具体章节。
术语/关键字
- 控件:一个控件表示一种数据的表达和界面展示形式,是问卷界面的组成元素。在本系统中,控件有类似传统的文本框、日期录入、单项选择等一个绑定一个数据的展示录入控件,也有文本标签这样的纯展示界面用的控件,也有矩阵容器、单行容器、多行容器、指标容器等这样的用于界面排版的布局类的容器控件,此处的容器是指此控件中可包含其他控件。
- 问卷模板:问卷在本系统中的形态,问卷在此形态下处理可编辑的状态,就是用户可以对问卷的属性、控件及其属性进行修改和调整。问卷模板需要先转换固化成“调查问卷”才能进行发布,问卷发布的管理单元是调查任务。
- 调查问卷:一个固化的不可修改的问卷,由问卷模板生成,或者从epidata的文件导入生成。
- 组件:将经常使用具有关联性的一组变量以组件的形式保存下来,下次在需要使用此组变量时直接引用这个组件即可快速完成这组变量的设计。
- 调查任务:一次调查数据采集项目的具化的管理对象。一个调查任务由1到多个调查问卷组成,并包含其特定的用户和权限设置、问卷数据及其统计分析等。同一个“调查问卷”在不同调查任务中的数据是完全隔离的。
- 数据字典:用于下拉选择、多项选择、单项选择等控件进行标准化数据选择操作的数据的组合。在本系统中,数据字典也是按照调查问卷来设计的,并且可以容纳多于键值对的其他属性。
- 数据视图:对于地区编码、机构编码等特定类型数据结构/表结构的固化形式,数据字典可选择符合某个数据视图的要求。控件绑定于某个数据视图,通过指定系统或者控件级的数据视图对应的数据字段,即可指定某个控件使用哪个数据字典。
简明操作教程
使用本系统进行问卷调查紧紧围绕着四个步骤:设计 –> 发布 –> 录入 –> 统计。典型的操作流程下图所示,问卷设计用户登录系统设计问卷模板,将设计好的模板生成调查问卷并将问卷发布为调查任务,在调查任务管理界面内为调查任务分配用户,数据录入用户登录系统录入问卷,调查完成后统计问卷结果,或者导出结果进行其他的深入的分析。
在本章节中按照功能相关性将分为调查问卷设计和管理、调查任务发布和管理、问卷数据录入、问卷结果统计和管理四个部分来分别进行介绍操作。
请注意:本系统可以进行界面样式及其他标示信息的定制化修改和部署,因此下文中的界面以系统默认的界面为主进行介绍;如用户使用的系统使用了不同的界面样式风格时,界面显示样式会有所同不同,但是基本的操作方式一致。
问卷设计和管理
本系统作为一个专业的调查问卷系统,为用户提供了功能完善的在线问卷设计器。由于用户在日常设计的调查问卷之间在内容和逻辑上存在较多的关联和相似之处,系统为用户提供了组件管理、调查问卷模板管理和调查问卷管理等功能。
请注意:和其他常见的问卷系统采用的设计问卷然后直接发布问卷访问的方式不同,在本系统中采用问卷模板、问卷以及调查任务的三重管理机制。用户从开始创建和设计问卷模版开始,当需要发布问卷时,需要将问卷模版创建成问卷,然后可将多个问卷合并在一起发布为一个调查任务。从问卷模版生成问卷之后,对问卷模版的修改不会影响任何已生成的问卷;同理,对问卷的任何操作,不会影响已经发布的调查任务。
登录调查问卷定制平台
系统的登录入口分为问卷定制平台的登录入口和调查任务的登录入口,其中问卷定制平台的登录入口的是固定的,而调查任务的登录入口则要根据调查任务的ID或者域名设定来确定。
要登录问卷定制平台,使用支持HTML5的主流浏览器输入网址并打开,其中问卷定制平台网址的常见的形式为http://server/dap/ 或http://server/dap/t/shell/login。其中server是系统部署的服务器域名或IP地址。如系统部署时设置了服务器支持https访问,请使用https打开网址并登录。例如:
在打开的界面中输入用户名和密码,并且输入验证码,然后点击登录。如果没有账号,也可以点击下方的注册新账号,填写信息注册并等待系统管理员审核后登录。
请注意:本系统可以设置问卷设计模块或者调查任务进行图形验证码或者手机验证码等额外的登录验证机制,也可支持直接微信登录。具体的登录功能要求和限制请以系统的部署为准。
问卷模板设计
登录并打开设计界面
用户登录到调查问卷定制平台后,默认打开的是调查任务发布管理主菜单,点击左侧的“问卷模板管理”项,然后点击“浏览调查问卷模板”,在打开的调查问卷模板列表数据后面的编辑按钮即可编辑此模板,也可以点击“新建调查问卷模板”菜单打开调查问卷模板的编辑界面。
请注意:在系统的某些样式风格下,系统默认打开的是调查任务管理主界面。此时需要点击顶部工具条上【定制管理】菜单,将菜单区切换到问卷定制主菜单,如下图所示:
调查问卷模板设计
如果用户经常从事某专业领域的相关调查,通常情况下每次使用的调查问卷在前一次调查问卷的基础上做一些调整即可。在本系统中,调查问卷模板即是解决此类问题的手段。例如去年为某种用途调查设计了问卷模板,根据模板生成了当年的调查问卷,今年调查时增加了新的调查项目,只需修改模板后生成今年新的调查问卷即可。
与最终用于调查的问卷不同,用户随时都可以对调查问卷模板进行修改。
用户在进行调查问卷模板设计时,主要操作在调查问卷模板设计界面进行,如下图所示。调查问卷模板设计界面主要可分为三部分:
- 控件列表区域:在此区域中列出了所有系统可用的控件。用户通过点击控件列表区域的按钮向当前设计的调查问卷中加入新的控件。
- 问卷预览区域:当前设计调查问卷最终的布局和样式可以在此区域中实时查看。用户也可以通过在区域中点击对应的控件来选中此控件然后编辑其属性。
- 属性设置区域:在当前设计调查问卷中选中控件的属性在此区域中展示。如果当前未选中控件,则默认显示整个调查问卷模板的属性。为节省显示空间,样式设置部分默认只显示基础的,可以点击后方的小方框按钮展开全部样式设置。
新增问卷模板
将用户界面切换到问卷定制主菜单,然后点击左侧菜单树中【新建问卷模板】,系统打开调查问卷模板设计界面。如果用户通过点击调查问卷模板设计界面中右上角的【保存】按钮将当前设计的调查问卷模板的最新状态保存到系统中。
修改已有的调查问卷模板
将用户界面切换到问卷定制主菜单,然后点击左侧菜单树中【浏览问卷模板】,系统打开调查问卷模板浏览界面。
在调查问卷浏览界面中,通过点击列表中每条模板中右侧的【菜单】区域中的【修改】按钮,用户可以打开此调查问卷模板的编辑界面。
在调查问卷浏览界面中,用户可以上方的查询区域中输入查询条件,然后点击【查询】按钮来对列表中的数据进行筛选过滤。用户可以通过点击数据列表的标题栏对列表中的数据以顺序或逆序排序。
在调查问卷浏览界面中,通过点击列表中每条模板中右侧的【菜单】区域中的【删除】按钮,用户可以从系统中删除指定的调查问卷模板,如果模板属性未标识为“逻辑删除”则该操作彻底删除数据库中的信息。
设置问卷模板属性
在用户执行【新建调查问卷模板】或者【修改调查问卷模板】操作后,在调查问卷设计界面中的属性设置区域中默认显示的调查问卷模板的属性。用户可以修改属性的值以设置调查问卷模板的各项属性。
在调查问卷设计界面中,左键点击调查问卷预览区中的当前设计问卷的标题栏,右侧属性设置区域即显示此调查问卷模板的属性。用户可以修改属性的值以设置调查问卷模板的各项属性。通常情况下,用户需要编辑模板名和模板编号。模板主要属性如下表所示:
属性 | 属性说明 |
---|---|
模板编号 | 该模板在数据库内部生成的数据库表的名字,请使用字母开头且只能包含字母、数字和下划线,最长40字符。请不要使用order\from等数据库的关键字。出于兼容性考虑,不推荐使用大写英文字符。 |
模板名 | 模板的名字,如果生成调查问卷时未指定名字,则问卷的名字为“问卷模板”。 |
模板描述 | 对模板的说明性描述。 |
主键名 | 主键的显示名。系统将为每个模板自动生成一个主键,这个属性是确定该主键字段的显示名。 |
主键可查询 | 在数据浏览界面,显示将主键作为过滤条件 |
逻辑删除 | 删除的数据可以使用适当的工具或方法恢复出来。 |
允许的操作 | 在调查任务中,可以对该问卷进行的操作,包括新建、修改、删除、查看,打印、浏览和审核。 |
记录操作痕迹 | 在数据库中记录填写数据的用户ID、用户名和填写时间。 |
共享 | 是否将该模板共享给其他用户,只有共享的模板才能被其他用户看到和使用。 |
脚本 | 为模板设定整个调查问卷级别的用于逻辑校验和数据跳转的脚本。 (1)快捷设定:控制数据的重复录入。 (2)编辑脚本:添加脚本语句,实现问卷的质量控制。此处为问卷级别的脚本。 注意:“快捷设定”的设置会自动清空“编辑脚本”的脚本语句。如需将二者结合使用,请先设置“快捷设定”,然后在此基础上“编辑脚本”。 |
组合查询 | 在数据浏览界面,显示将组合查询条件作为过滤条件。点击“添加”按钮添加过滤条件,并选择过滤字段名。目前系统仅支持日期控件和地区编码控件的组合条件设置。 |
展示规则 | 针对每条数据在列表中的展示样式设置条件性的设定。当满足【行匹配规则】指定的条件要求时,该条数据则在列表中显示设定样式。行匹配规则是一个返回true/false的脚本表达式。行匹配规则可以为空,为空时则为所有数据的默认显示规则。 |
控件相关操作及说明
调查问卷由多个控件通过一定的关系组合而成。调查问卷的设计工作主要是对调查问卷的控件进行调整,主要操作包含添加、修改删除问卷内的控件,调整控件间的布局,设置控件的展示样式等。
按照能否包含其他控件作为其子控件,控件可以分为容器控件和非容器控件。在调查问卷设计时,如果在调查问卷中选中了容器控件,则新加的控件将作为该容器控件的子控件添加到调查问卷中。容器控件包括:矩阵容器,单行容器,多行容器,字表容器。
按照是否要保存数据录入用户的录入结果,控件可以分为数据控件和非数据控件。非数据控件只做辅助调查问卷的展示之用,不能在脚本中为辅助控件执行赋值等操作。
添加控件
单击控件列表中的任一控件按钮,将为该调查问卷模板添加一个相应的新控件,控件的添加采用流式布局,具体的控件添加规则如下:
- 在用户未选中调查问卷模板中的控件时,新控件将插入到模板最后一行。
- 在用户选中了调查问卷模板中的容器控件时,则新加入的控件将加入到当前选中的容器控件中;
- 如果当前选中的控件不是容器控件,但是包含在某个容器控件中时,则新控件为将加入到选中控件的容器控件中。
- 如果当枪选中控件不是容器控件,又未包含在容器控件中,则新控件将插入到模板最后一行。
需要注意,单选和多选控件在选中了其中某一选项时,再添加一个单选或多选控件将会与该控件进行绑定为一个。
选中控件
在控件预览区域中,可以直接鼠标单击某一个具体控件,则可以直接选中该控件。被选中的控件在问卷预览区域中显示为蓝色区域,并且在右侧的属性设置区域会显示该选中控件的属性。用户可以通过编辑属性设置区域中的属性的值来达到定制的目的。完成属性的修改,最新的属性的值作用在当前问卷模板上并且在问卷预览区域中显示为最新的状态。
当选中了某个控件时,可以点击属性设置区域中上方的【选中父容器按钮】,将选中该控件的容器控件。对于矩阵容器、多行容器来说,其经常用于辅助进行问卷的布局操作,本身并不在问卷中显示出来,因此需要通过这种方式进行选中。
选中的控件在问卷预览区域中显示蓝色矩形区域。如果当前选中的控件是容器控件,则在包含其子控件在内的所有控件都是显示为蓝色矩形区域。
删除控件
当选中了某个控件时,可以点击属性设置区域中上方的【删除按钮】,将会从当前调查问卷模板中删除此选中的控件。
如果选中的控件为容器控件,则其所有的子控件也将被从调查问卷模板中删除。
位置调整
在上图中蓝色区域表示当前选中的控件,红色底纹表示在当前问卷内有与其字段编码重复的控件,红色区域所示为控件相关操作按钮,依次为:
- 上移按钮:将控件上移,和其上一个控件互相交换位置。如果该控件为调查问卷模板或者容器控件的第一个控件,则无操作。
- 下移按钮:将控件下移,和其下一个控件互相交换位置。如果该控件为调查问卷模板或者容器控件的最后一个控件,则无操作。
- 删除按钮:删除当前选中的控件,并且选中该控件的容器控件。如果该控件无容器控件,则显示调查问卷模板的属性信息。
- 选中父容器按钮:选中当前选中控件的容器控件。如果该控件无容器控件则无操作。
- 查找同字段编号控件:点击自动跳转到问卷中与当前选中的控件字段编号相同的控件,如果没有字段编号相同的,则不跳转。
拖拽和复制/粘贴
在问卷模板设计器中,支持鼠标的拖拽操作。用户在控件上按下鼠标左键并且将鼠标滑动到目标区域上再释放鼠标时,如果目标控件不是容器控件,被拖拽的控件将会被移动到目标控件的后面;如果目标控件是容器控件,则被拖拽的控件将会附加到目标控件中。如果被拖拽的控件时容器控件,则其所有子控件都会随该控件一起移动。
在执行鼠标拖拽操作时,按照键盘CTRL键不放,则除去上段所描述的操作外,被拖拽的控件并不会在原来的位置移除。实际的操作是复制了一份被拖拽的控件到目标处释放。需要注意,由于在一个调查内任意数据控件的ID不能重复,因此执行此操作后需要额外修改复制出的控件的属性。
在问卷模板设计界面中,当前支持复制和粘贴操作。在选中了控件,在问卷预览区域按下CTRL+C键,被选中的控件的定义被复制到系统剪切板中。再按下CTRL+V键,会将系统剪切板中的控件的定义插入到当前选中的控件处。需要注意,由于在一个调查内任意数据控件的ID不能重复,因此执行此操作后需要额外修改复制出的控件的属性。
操作回滚
在问卷模板设计界面中,按下CTRL+Z键,问卷模板将回滚最近一次对调查问卷模板结构的修改。
需要注意,由于受浏览器的限制,系统只支持回滚对调查问卷模板结构操作,即只有对调查问卷模板执行了插入了新的控件、删除了已有的控件、对控件的位置进行了调整的操作才能被回滚。对问卷属性和控件属性的修改不会被回滚,拖拽和粘贴操作带来的修改可以被回滚。
通用属性
在本段中列出系统中所有的比较常用的控件通用属性;需要注意并不是所有的控件都有这些属性;另外,即便有些控件拥有以下属性,但是在添加到容器控件内则会隐藏部分属性。更多信息请参见本文参考部分。
属性 | 属性说明 |
---|---|
字段编号 | 该模板在数据库内部生成的数据库表的名字,请使用字母开头且只能包含字母、数字和下划线,最长40字符。请不要使用order\from等数据库的关键字。出于兼容性考虑,不推荐使用大写英文字符。 在脚本中可以直接操作此属性。 |
显示名 | 控件显示的名字,填写问卷时字段显示的名字和导出excel的列名等。 |
样式 | 设置控件在列表、录入表单等处的字体大小、颜色等样式 |
显示文本 | 在默认的问卷布局中,在数据录入左侧显示该控件的显示名。如果不勾选则直接显示为数据录入控件并不在左侧显示控件的显示名。 |
值可以空 | 是否必填,不勾选为必填字段 |
查询字段 | 如勾选,则在数据管理界面在此控件作为数据过滤条件。 |
是否列表字段 | 是否在列表列出,勾选为列出 |
列表宽度 | 如在数据列表中列出,则列表显示的宽度。支持录入百分比,如”10%”,如不带百分比则默认单位为像素。 |
值唯一 | 勾选则不允许重复录入。 |
允许编辑 | 不勾选则控件为不可编辑状态 |
前置文本 | 在数据录入控件的前方显示的提示信息 |
后置文本 | 在数据录入控件的后方显示的提示信息 |
字典 | 该控件使用的数据字典,可以使用系统内预置的数据字典,也可以选取问卷内的设置好的问卷字典,也可以自行为该控件定义数据字典。 |
联动项目 | 为机构编码控件指定管理的地区控件的编号。 |
提示信息 | 在录入调查问卷数据时,当用户将鼠标防止到控件上时,系统弹出的提示信息。如果用户未设定,则默认提示控件名称。 |
脚本 | (1)快捷设定:控制数据的重复录入。 (2)编辑脚本:添加脚本语句,实现问卷的质量控制。此处为控件级别的脚本。 注意:“快捷设定”的设置会自动清空“编辑脚本”的脚本语句。如需将二者结合使用,请先设置“快捷设定”,然后在此基础上“编辑脚本”。 |
控件一览
- 文本标签:文本标签用作标识性信息。例如标题或某一部分说明性文字。点击“文本标签”控件,将其添加至问卷模板中,并设置该文本标签的属性。可以将文本标签的文本设置为空白字符,此时文本标记显示为空白,因此也可使用文本标签将问卷划分为不同的部分。单个文本标签最多能录入3000个汉字。超过一行的范围后,文本将自动换行。
- 文本框:文本框控件可用于自由文本信息的录入。文本框控件支持设置为保密字段,则除了数据录入者和调查任务管理员,其他人都不可见此信息。
- 日期录入:用于录入年月日的日期和时间,可以在格式属性处选择是年月、年月日、年月日时、年月日时分、年月日时分秒等格式,从而录入不同的时间值。在填写问卷中的日期时,可以在前面的文本框中输入日期,如未输入分隔符,系统会自动按照设置的格式设置显示,如输入20140801,系统会会自动格式化为2014-08-01;也可以通过点击日期控件弹出日期选择框进行选择录入。
- 下拉选择控件:用于在一组给定的数据字典的选择录入。必须为下拉选择控件指定一个数据字典,可以选择选择自定义字典,并在属性设置区域下方定义该字典;也可以选择一个问卷内已经定义好的字典,或者系统内预置的字典。如果未设置字典,但是在【联动项目】属性内填入问卷内的多项选择或者列表选择控件的字段编号,则在录入问卷时,随着指定的联动控件选中项的数量的变化,下拉选择控件内的选项数会显示所指定联动控件中的选中项。
- 是否选择控件:用于录入只有是或者否两种状态的变量的录入。是否选择录入数据后,保存值为“Y”或“N”,选中用“Y”表示,未选中用“N”表示。在属性设置中,“选中时显示”和“未选中时显示”列出了当前问卷内已有的所有控件,可以轻松帮用户实现显示和隐藏其它控件的功能,系统会自动将用户指定的显示或者隐藏其他控件转换成该控件相关的脚本。如果用户在“选中时显示”勾选了某控件,则该控件仅在该是否选择录入框选中是显示出来,否则处于不可显示状态;“未选中时显示”的选项的作用与此相反。
- 多项选择控件:用于在一个变量内可以选中多个选项的数据的录入。必须为多项选择控件其指定一个数据字典,可以选择选择自定义字典,并在属性设置区域下方定义该字典;也可以选择一个问卷内已经定义好的字典,或者系统内预置的字典。如果未设置字典,但是在【联动项目】属性内填入问卷内的多项选择或者列表选择控件的字段编号,则在录入问卷时,随着指定的联动控件选中项的数量发生的变化,该多项选择控件的选项数会显示所有指定联动控件中的选中项。可以为多项选择控件设置属性【每行选项数】,默认为0时在一行内显示所有的选项。如果数字大于0时,控件会转换为多行显示,每行显示指定个数的选项数。如果指定每行选项数为1,则多项选项显示为竖直显示出所有选项。下图为设置显示每行显示3个选项的效果。
- 单项选择:和下拉选择控件类似,单项选择用于在一组给定的数据字典的选择录入。与传统的单项选择控件不同的是,在本系统中,如果一个选项已经被选中,那么再次点击此选项将取消选中选项。必须为单项选择控件其指定一个数据字典,可以选择选择自定义字典,并在属性设置区域下方定义该字典;也可以选择一个问卷内已经定义好的字典,或者系统内预置的字典。如果未设置字典,但是在【联动项目】属性内填入问卷内的多项选择或者列表选择控件的字段编号,则在录入问卷时,随着指定的联动控件选中项的数量发生的变化,该单项选择控件的选项数会显示所有指定联动控件的选中项。可以为单项选择控件设置属性【每行选项数】,默认为0时在一行内显示所有的选项。如果数字大于0时,控件会转换为多行显示,每行显示指定个数的选项数。如果指定每行选项数为1,则单项选项显示为竖直显示出所有选项。下图为设置显示每行显示3个选项的效果。
- 列表选择:和多项选择控件类似,在一个变量内可以选中多个选项的数据的录入,还可以对选中的选项进行排序。必须为列表选择控件其指定一个数据字典,可以选择选择自定义字典,并在属性设置区域下方定义该字典;也可以选择一个问卷内已经定义好的字典,或者系统内预置的字典。如果未设置字典,但是在【联动项目】属性内填入问卷内的多项选择或者列表选择控件的字段编号,则在录入问卷时,随着指定的联动控件选中项的数量发生的变化,该列表选择控件的选项数会显示所有指定联动控件的选中项。如果该列表选择控件被指定为其他的下拉选择、单项选择、多项选择,列表选择控件的联动项目,则该控件排序后的选中选项会作用于目标控件。
- 文件上传控件:用于数据填写用户上传图片等文件到系统中。用户在填写问卷时,点击选择按钮则弹出文件选择界面,如所示。在用户保存整个问卷的数据时,文件才会被上传保存到系统中。如果用户已经上传过文件,文件上传控件会显示出已经上传的文件名。可以点击【清空】按钮清空文件选中状态。用户在浏览、查看数据可以下载用户上传的文件。在导出excel时只能导出文件名。可以指定文件上传控件上传的内容为签名,则系统会生成签名区域,在保存数据时直接以图片的形式保存。
- 地区编码控件:用于中国疾病预防控制中心发布的8位全国到乡镇的地区编码的数据的录入,或者是国家统计局发布的12位到村的地区编码的录入。地区编码控件默认和用户本身的地区编码绑定,默认显示为用户本身所在的地区编码级别。如果设置地区编码控件为【受权限控制】,则在用户默认只能查看用户所在地区内的全部数据。如省级用户默认只能查看其本省内的数据。地区编码控件在录入时默认显示用户本身的地区,可以通过“上级”和“下级”按钮对地区选择进行导航选择。当在地区编码的下拉框中选中第一项时,可以通过点击“上级”按钮让下拉选择框内加载其上级地区内的所有编码,比如第一项是南京市时,点击“上级”按钮后下拉选择框内加载为江苏省和所有江苏省所辖市的编码。当在地区编码的下拉框中选中非第一项时,可以通过点击“下级”按钮让下拉选择框内加载其选中的地区及其下级地区的所有编码,比如选中南京市时,点击“下级”按钮后下拉选择框内加载为南京市和南京市的区县的编码。地区编码现支持两种展示方式,一是上面的互联网常用的省市县乡四级并联展示的级联展示方式,而是下面的疾控常用的切换式控件。
机构编码控件:用于录入中国疾病预防控制中心发布的全国卫生机构编码,该控件必须和地区编码控件绑定使用。必须在【联动项目】属性内输入与之关联的地区编码控件的字段编号。在录入数据时,在指定的地区编码控件发生变化时,该机构编码构建列出的机构列表会随之发生变化。
如果该控件被设置为受权限控制的控件,且该用户被指定了所属机构,则该框将默认显示为用户的所属机构,否则用户可以主动选择。默认情况下该控件的【受权限控制】属性为选中状态。如果该用户为直报用户且控件的【受权限控制】属性为选中状态,该控件显示为不可编辑状态,用户不能选择其他控件。
机构编码有一个重要的属性【显示模式】。显示模式有两个选项:
- 按所属县区:指对机构进行属地化管理,管理单位是区县。用户在关联的地区控件中选择某一区县,就可以看到该区县的机构。如地区编码选择“北京市东城区”,则机构编码列表中显示了东城区的所有机构。
- 按机构等级:按照用户选中的地区级别加载机构。目前系统支持国家级、省级、市级、县级和乡级五种单位级别。当用户选中南京市时,机构控件列出所有南京市内的市级机构的机构编码。
- 地图坐标控件:用于打开地图让用户选中具体点后记录其选中地点的经纬度坐标值。可以为地图坐标控件指定一个绑定的地区编码控件。当绑定了一个地区编码控件后,在用户新录入数据时,打开的地图界面会自动打开选中的地区编码的中心点附近。如果用户的浏览器支持HTML5的获取坐标的新特性,在新录入数据时,程序会尝试主动获取当前用户的坐标并在地图中打开。在定制问卷时,需要为地图控件选择所使用的在线地图服务的提供商,默认谷歌地图。推荐中国用户使用百度地图或者搜狗地图,非中国用户使用谷歌地图。
用户在录入数据时,可以通过点击【选择】按钮打开地图选择界面,如所示。在地图打开后,可以通过双击地图或者滚动滚轮来进行地图的缩放操作;要选中某处地点时,可以地图上单击鼠标左键,则下图中展示的红色椭圆型标记会移动到用户选择的地点,并且地图会以此地点居中显示。用户选中完成后,需要点击地图中间上部的【确定】按钮,关闭地图并且传回选中地点的坐标。要清空已经选择的地图坐标,可以通过点击【清空】按钮执行清空。可以在地图界面左下角输入地名从而快速定位到坐标。
表间关联控件:用于关联两个调查问卷进行关联输入。此控件有两种模式:
关联表模式:在表间关联控件的【关联实现类型】选择为“关联表”时启用。在此模式下,此控件是将当前记录与制定的其他调查表的记录关联,在此字段中记录的是被关联表的记录的唯一ID。可以通过点击选择按钮弹出目标数据选择界面,然后点击列表中记录后面的选择按钮进行选择。如要清空现有数据,点击【清空】按钮即可清空。使用表间关联控件时,必须为【关联问卷模板】指定被关联的调查问卷。在生成调查问卷进行预览时,选择按钮为不可选择状态。在发布调查任务时,必须在同调查任务内包含被关联的调查问卷模板生成的调查问卷。用户需要拥有被关联的调查问卷的浏览权限。在此模式下,当前调查问卷的记录和被关联调查问卷的记录之间是一对一的关联关系。可以通过与主子表控件配合使用实现与被关联表的一对多的关联关系。
通过表间关联控件录入的数据,且选择关联类型是关联表且关联关系是一对一时,在空间上默认显示的内容是如下规则寻找:如果关联的表单里有字段编号是以”_dname”结尾的控件,默认显示它的值;如果关联的表单里有字段编号是以”_name”结尾的控件,默认显示它的值;如果关联的表单里有字段编号是以”name”结尾的控件,默认显示它的值。
主子表模式:在表间关联控件的【关联实现类型】选择为“主子表”时启用。在此模式下,当前调查问卷会将在【关联问卷模板】处指定的问卷模板嵌入到本调问卷内。在当前问卷内的字段内记录的是有其在被关联表里有多少条关联记录,而在被关联问卷里记录了当前问卷的记录的唯一ID。使用主子表模式进行数据录入时,点击【打开】按钮时会先保存当前记录,然后系统界面会切换到被关联表的与当前数据关联的子表数据的列表。可以通过点击列表上的【新增】按钮来增加一条子表数据。子表数据录入完成后,点击返回按钮,界面返回到主表数据录入界面。在执行导出excel任务时,字子表数据会单独成为一个csv文件。只有和主表有关联的子表数据才会被导出。
- 矩阵容器: 矩阵容器是一个容器控件,并且不是一个数据控件。矩阵容器用于帮助用户在问卷内以二维表格的形式排布控件,提供良好的对齐和页面布局,预览效果下图所示。
在使用矩阵容器进行问卷设计时,子控件按照从左到右,从上到下的方式一次填充到矩阵容器的表格中。矩阵容器默认为显示行名和列名,可以设置其不显示行名和列名。可以往矩阵容器中放入文本标签控件以实现更复杂的文字显示效果。矩阵容器内可以嵌入其他容器控件从而实现更复杂的布局效果。
点击【列名】右面的【添加】按钮,可以新增一行显示。如果设置不显示列名,列的显示名项可以为空。列表宽度为该列显示的宽度,值可以为百分比或者绝对值,为数值时单位为像素。点击每列后面的【删除】按钮可以删除该列。行操作与列操作类似。
单行容器:单行容器是一个容器控件,并且不是一个数据控件。单行容器可以实现在一个控件显示区域内将其子控件显示在一起。如要注意,如果单行容器的子控件所需要展示空间超过了单行容器所拥有的展示空间的宽度,单行容器内的子控件也会折行显示。下图所示就是将2个文本框和一个下拉选择用单行容器组织在一起。
多行容器:多行容器是一个容器控件,并且不是一个数据控件。多行容器允许将其子控件以多行显示的方式显示在该控件的展示区域。每行内的显示方式问卷默认的每行显示方式类似。下图所示时一个使用多行容器组合展示信息的示例。
子表控件:子表容器既是一个容器控件,又是一个数据控件。子表容器控件和表间关联控件的主子表模式类似,都是向当前问卷加入一个和当前记录是一对多关系的子表。使用子表控件时,所有的子控件都在一行内展示。在设计问卷时,选中子表控件后,添加控件即可加入到子表控件中去。点击子控件的名称即可选中此子控件。
在进行数据录入时,可以点击标题行右边的【添加】按钮新增一行数据。可以点击行后面的【删除】按钮删除指定行的数据。
在导出excel时,子表的数据会单独生成一个文件/sheet。
问卷模板预览与测试
在“浏览调查问卷模板”界面,可以看到自己建立的问卷模板和其他人共享的问卷模板。点击“查看”按钮可以查看模板内容。用户只能修改自己建立的模板。点击“从此新建”可在其他人共享的问卷模板基础上创建一份新的模板。如需修改,点击“修改”按钮。
点击“预览”按钮可以查看问卷的实际运行效果。在调查问卷模板设计器中,为问卷指定的脚本都不会执行;而在问卷预览时,所有的脚本执行和问卷最终发布时一样运行,如跳转、数值范围等命令。
添加逻辑校验/跳转脚本
在本系统中,支持Epidata软件中采用的CHK脚本,并且适应于web的特性,做了一些调整和增强。
限于篇幅的原因,我们在这里假设用户具有epidata CHK脚本编辑的经验。如有用户需要了解,推荐阅读epidata软件的帮助文件,或者《EpiData3.0使用手册》(2004北京大学公共卫生学院吕筠版)。详细信息请参见本文脚本索引部分。
编辑脚本
在问卷的属性设置区或者控件的属性设置区(非数据控件不能设置脚本),会显示脚本设置功能。
- 快捷设定:快捷设置是为常用的脚本命令提供一个图形化的界面,供用户用于快速设定所需要的脚本。当前快捷设定在问卷级只支持【重复录入】选项,即REPEAT命令;在控件级别除【重复录入】选项外,还支持设置允许录入的最大值和最小值的范围,即RANGE命令。控件的快捷设定界面下图所示。
脚本编辑:脚本编辑按钮直接打开一个脚本编辑器,供用户直接录入、修改问卷或者控件相关的脚本命令。脚本录入、编辑完成后,可以点击右上角的【X】按钮关闭脚本编辑器返回主界面。如需再次编辑脚本,直接再次点击【脚本编辑】按钮即可重新打开脚本编辑器并且将加载上次最终修改后的脚本。脚本编辑器界面下图所示。
问卷的脚本可分为问卷级和控件级两类,在调查问卷和子表控件的属性编辑区中编辑的脚本即是问卷级脚本,控件级基本即在控件的属性编辑区域中点开编辑脚本设置的脚本。问卷级脚本的执行是填写问卷之前或数据保存之前。控件级脚本的执行是在鼠标选中该控件或离开该控件时。
问卷级脚本的编辑是在问卷模板的属性设置中,点击“编辑脚本”即可进行脚本语句的编辑。控件级脚本的编辑是在控件的属性设置中,点击“编辑脚本”即可进行脚本语句的编辑。
在脚本编辑器中,可以点击上方的快捷命令,系统会自动在脚本编辑器中加入选中的命令的模板,用户按照模板修改其中的内容即可。在编辑脚本,按下ALT键,系统自动会弹出当前的脚本的提示。
需要注意:如果使用“快捷设定”按钮,则将原脚本清除。编写脚本尽量简洁。问卷中脚本语句有字符限制,在3000个字符以内。
对epidata CHK脚本的兼容
在本系统中完全支持epidata软件的CHK脚本的表示式,支持绝大多数函数,支持BEFRORE/AFTER ENTRY、BEFORE/AFTER RECORD等事件。
在本系统中,对epidata软件的脚本命令兼容做了尽可能大的支持,主要可分为两种情况:
- 支持并完美执行:可以在脚本中使用并且能正确的运行的脚本命令,如AUTOJUMP、JUMPS、GOTO、RANGE、REPEAT、IF….THEN等命令
- 兼容但不执行:为了保持对导入epidata问卷的兼容,部分命令允许存在于脚本中但是在实际运行过程中不会被执行,如BACKUP、WRITENOTE、INCLUDE、RELATIVE等命令。
对epidata CHK脚本的新增特性
在本系统中,适应于在web系统的特性和实际应用中需要,在原有的epidata CHK脚本的兼容支持外,还自定义了一些增强的命令和函数等:
自定义函数:
- SELECTIONCOUNT:用于获取某个多选控件选中了多少个选项,如:SELECTIONCOUNT(C_PARTS),其中C_PARTS是多选控件或者列表选择控件的字段编号。
- ISSELECTED:用于判断某个多选控件是否同时选中了某些选项,如: ISSELECTED(C_PARTS,”1”,”2”)判断是否C_PARTS控件是否同时选中了保存值为1和2的选项;ISSELECTED(C_PARTS,”1”)判断是否C_PARTS控件是否选中了保存值为1的选项
- RECORDCOUNT:用于判断子表控件的录入数据的个数,如:RECORDCOUNT(S_TABLE),其中S_TABLE是子表控件的字段编号。
自定义命令:
- HIDEROW/UNHIDEROW:隐藏或者显示指定控件所在的行,如:HIDEROW F_NAME
HIDEROWS:和JUMPS命令类似,用于设定在某些取值的情况下隐藏或者显示某些控件所在的行。如:
HIDEROWS
1 FIELD_1
2 FIELD_2
4 WRITE
END
HIDES:和JUMPS命令类似,和HIDEROWS命令不同的是,此命令此隐藏或者显示控件本身。
ASSERT:用户定义数据校验,可在问卷脚本和控件中使用。
在问卷脚本中时,使用方式如下:
ASSERT FIELD_1, FIELD_1=1,” FIELD_1需要等于1”
当控件FIELD_1的值不等于1提示FIELD_1需要等于1,并且系统会跳转到控件FIELD_1。命令的第三部分是返回true/false表达式。
在控件级脚本时,如在FIELD_1字段上,可以直接编写
ASSERT FIELD_1=1,” FIELD_1需要等于1”
效果和上文中的问卷级脚本类似。
脚本示例
代码注释
注释行必须以/字符开始。以/字符开始的行在执行脚本时将被忽略。例如:
JUMPS /跳转
1 FIELD_1
2 FIELD_2
3 FIELD_3
END
AFTER ENTRY
设置一个命令块,其中的命令是在当前变量录入完毕后和/或光标移到另一个变量时执行。AFTER ENTRY是一个块命令,必须以END 结束。如果命令出现在变量块中,即使没有放在AFTER ENTRY块中,这些命令仍被视作AFTER ENTRY块命令。例如以下两段脚本,执行结果相同,当光标离开当前字段时,如果FIELD_1为0,则跳转至FIELD_2。
AFTER ENTRY
IF FIELD_1=0 THEN
GOTO FIELD_2
ENDIF
END
AFTER RECORD
设置一个命令块,其中的命令是在保存一条新的或者修改了的记录前执行。AFTER RECORD 命令通常用在问卷级脚本中,检查数据是否录入正确。如果在AFTER RECORD 命令块中执行GOTO 命令,那么当前记录将不被保存。
在下面的例子中,如果FIELD_1为“1”且FIELD_2为空,则程序会自动跳出一个警告框,光标移到FIELD_2变量上,该记录暂不被保存。
AFTER RECORD
IF (FIELD_1=1) AND (FIELD_2="") THEN
HELP "题2不能为空"
GOTO FIELD_2
EXIT
ENDIF
END
BEFORE ENTRY
设置一个命令块,其中的命令是在当前变量激活,但尚未录入时执行。
在下面的例子中,当光标移至当前字段,开始执行BEFORE ENTRY命令块中的语句。如果FIELD_1为2,则光标直接跳转至字段FIELD_2。
BEFORE ENTRY
IF FIELD_1=2 THEN
GOTO FIELD_2
ENDIF
END
BEFORE RECORD
设置一个命令块,其中的命令是在一条新纪录开始,但尚未录入任何数据时执行。通常用在问卷级脚本中。下面的例子中,当开始录入一条新纪录时,先执行BEFORE RECORD命令块中的语句,将当前日期赋给字段FIELD_1。
BEFORE RECORD
LET FIELD_1=TODAY
END
EXIT
停止执行并离开一个命令块。使用EXIT,可以使程序不必继续执行后面长长的命令。例如下面的命令块,当FIELD_1为1且FIELD_2为空时,弹出一个提示框,程序终止,不在继续运行后面的命令。
AFTER RECORD
IF (FIELD_1=1) AND (FIELD_2="") THEN
HELP "题2不能为空"
EXIT
…
ENDIF
END
GOTO
令光标移到指定的变量上去。
GOTO FIELD_3 /跳转至FIELD_3
GOTO WRITE /跳转至“保存”按钮,终止数据录入
HELP
使用该命令可以自动弹出一个消息框,消息框的内容由问卷定制人员自行指定。点击消息框的“确认”按钮继续数据的录入。有4种不同类型的消息框:信息(information)框、警告(warnings)框、确认(confirmation)框和错误(error)框。如果没有指定消息框的类型,程序会按照信息框来显示。指定消息框的类型,无需写类型的全称,只用第一个字母表示即可(例如,“C”表示确认框)。在消息文本中,插入“\n”可以使其后面的文字另起一行显示。消息框举例如下:
HELP “This is the information text” /信息框
HELP “This is a \n two-line warning box” TYPE=WARNING /警告框
HELP “This is also a warning box” TYPE=W /警告框
HELP “Please confirm” TYPE=CONFIRMATION /确认框
HELP “You made an error!” TYPE=ERROR /错误框
IF…THEN
IF…THEN命令块必须以ENDIF结束。IF…THEN命令的结构是:
IF \< condition expression > THEN /如果条件表达式为真
\< commands to execute if expression is true > /则执行命令
ENDIF
或者是:
IF \< condition expression > THEN /如果条件表达式为真
\< commands to execute if expression is true > /则执行此部分命令
ELSE /否则执行下面的命令
\< commands to execute if expression is false >
ENDIF
IF…THEN命令块中,条件表达式必须有布尔逻辑结果(即“真”或“假”),条件表达式可以包含几个部分,之间用AND或OR连接,每部分必须用圆括号括起来。例如:IF (FIELD_1=1) AND (FIELD_2=””) THEN…ENDIF。执行的命令可以写成几行,其中也可以包含其他的IF…THEN命令(即嵌套的IF语句),如下面的例子。
AFTER ENTRY
IF FIELD_1=1 THEN
IF FIELD_2=2 THEN
GOTO FIELD_3
ELSE
GOTO FIELD_4
ENDIF
ENDIF
END
JUMPS
有条件地跳转到其他变量上。JUMPS是一个块命令,必须以END结束。在JUMPS和END之间,需要指定:(1)当前变量可能录入的数值;(2)与数值对应跳转的目标变量名。
使用方法如下面的例子,如果当前变量为“1”,则跳转至字段FIELD_1;如果当前变量为“2”,则跳转至FIELD_2;如果当前变量为“3”,则跳转至最后一个变量;如果当前变量为“4”,则跳转至“保存”按钮,终止数据录入。
JUMPS
1 FIELD_1
2 FIELD_2
3 END
4 WRITE
END
LET
令某个变量等于某个数值或某个计算的结果。使用方法如下:
LET FIELD_1=1 /返回“1”
LET FIELD_2=FIELD_1 /返回“1”
LET FIELD_3=TODAY /返回当前日期,如“11/28/2012”
LET FIELD_4=((15/2)>4) /返回“true”
LET FIELD_5=((15/2)\<4) /返回“false”
MUSTENTER
保证当前变量必须录入。在控件级脚本中使用。在提交数据时对当前变量进行校验,如果为空则弹出提示框提示该值不能为空。控件属性中可以定义该控件是否“值可以空”,故不建议使用MUSTENTER。
RANGE
为变量定义一组允许录入的数值。此脚本也可以在控件的属性“快捷设定”中设置。脚本例如:
RANGE -5 5 /将值类型定义为整数,则允许录入-5到5之间的数值
RANGE 1.0 10.0 /将值类型定义为小数,则允许录入1.0到10.0之间的数值
RANGE 11/01/2012 11/30/2012
REPEAT
如果在问卷级脚本中设置REPEAT,则在新的记录中,程序自动复制前一条记录的内容到当前记录;如果在控件级脚本中设置REPEAT,则在新的记录中,仅复制前一条记录中该控件的内容。此脚本也可以在问卷或控件的属性“快捷设定”中设置。
生成调查问卷
调查问卷则是指将问卷模板发布为调查任务后,供数据录入用户进行数据录入时使用的问卷实例。系统中的调查问卷是由问卷模板在某一时刻生成的。调查问卷生成之后,调查问卷本身不能再进行修改,并且与生成它的调查问卷模板之间也再也没有直接的关系。即修改调查问卷模板,由该模板生成的调查问卷都不会再发生任何变化。系统没有提供直接修改问卷的方法。若要对调查问卷进行修改,则需要先修改模板,再通过模板生成一份新的问卷。
调查问卷可以是基于问卷模板生成,也可以是EpiData模板直接导入系统。实际中,使用问卷模板生成调查问卷应用较多。
新建调查问卷
“新建调查问卷”是指基于问卷模板生成调查问卷。在“定制管理”下拉列表选中“新建调查问卷”。系统切换到新建问卷界面,点击模板ID的“选择”按钮,弹出问卷模板列表,选择需要生成问卷的模板。保存后再进入浏览调查问卷界面,看到新生成的问卷已经在列表中。
导入Epidata问卷
在“调查问卷管理”菜单中选中“导入EpiData问卷”,如下图所示。在右侧窗口出现“调查问卷导入”界面,填写好调查问卷名和调查问卷描述,直接点击“选择”按钮选择本地的EpiData文件(系统当前仅支持导入一个REC文件和CHK文件),并确认是否将该问卷共享给其他人,然后点击保存按钮,即可创建新的调查问卷。在“浏览调查问卷”界面可以看到问卷类型为“EpiData问卷”。
只能将epidata问卷导入为调查问卷,而不能导入为可编辑的调查问卷模板。
导入调查问卷
在“浏览调查问卷”界面,点击“导入”按钮,即可进入“调查问卷导入”(XML文件)的界面。填写好调查问卷名和调查问卷描述,直接点击“选择”按钮选择本地的问卷文件(XML文件),并确认是否将该问卷共享给其他人,然后点击保存按钮,即可创建新的调查问卷。此处导入的XML文件可以从数据库或服务器中导出。更多信息请参见本文档参考部分。
组件设计和管理
用户可以将在调查问卷中经常使用具有关联性的一组变量以组件的形式保存下来,下次在需要使用此组变量时直接引用这个组件即可快速完成这组变量的设计。这部分的功能特性将在组件管理模块中详细介绍。
举个例子来讲,如果用户经常设计与人相关的调查问卷,那么可以将常用的人口学信息:姓名、性别、年龄、出生日期、身份证号码等信息设计为个人信息的组件,并可在组件内直接设置好身份证号码和出生日期、性别、年龄之间的逻辑校验关系。在设计问卷时,直接插入此组件到问卷中,可帮助用户省略了重复设计的巨大的工作量。
组件设计
组件设计界面和调查问卷设计界面类似,可以使用系统所有的支持的控件进行组件的设计,也可以加入数据校验和显示操作的脚本。组件设计效果如图 46。
和调查问卷模板设计界面不同的是,在组件设计界面,组件的属性只有【组件名】、【组件描述】和【是否共享】三项。
插入组件
组件设计好之后,在组件设计界面或者调查问卷模板设计界面的左上角,点击左上角【组件】按钮,即可弹出组件选择界面。选择需要插入的组件,点击后面的【选择】按钮,即可将选中的组件插入到当前问卷模板或者组件。
需要注意,由于组件内的各个控件的编号和名称都是固定的,因此如果需要在当前调查问卷模板内插入多个组件,请注意修改各个插入的控件的字段编号及其关联的脚本。对插入后的控件进行修改并不会修改原组件。
调查任务发布与管理
调查问卷设计完成之后,需要将调查问卷发布,最终的数据录入用户才能登录系统并且录入数据。支持在一次调查中发布多个调查问卷,所有的调查问卷都共享同一组用户和权限设置控制。一次调查对应于系统中的一个调查任务。每个调查任务都有一个独立的网址入口,以防止最终用户登录到错误的调查任务中。
发布调查任务
在问卷设计定制模块,在调查任务管理主菜单中,单击【新建调查任务】菜单项,右边工作区显示新建调查任务界面.
在新建调查任务界面,主要属性描述如下:
- 调查任务名:调查任务的名称,会在调查任务登录页面显示。
- 任务短网址:生成的调查任务的访问的网址的自定义部分,可以使用任务相关的英文关键字。
- 描述:对调查任务的文字性描述说明
- 页面样式:此调查任务使用哪种预置的页面风格。
- 权限管理:
- 系统内置(共享用户):问卷定制平台的用户可以直接登录此调查任务访问,但用户访问的功能授权需要单独管理。
系统内置(单独用户):独立一套的用户。调查任务管理员需要单独从头建立用户并给用户授权。
一般情况下,推荐使用【单独用户】。
启用匿名用户:在【权限管理】选择【单独用户】时此选项可用。在此选项选中后,系统会默认建一个用户名为匿名用户的用户,数据录入用户初次访问系统时无需登录即可直接以此匿名用户的权限登录访问系统。系统管理员可以设置匿名用户的权限从而达到管理默认访问用户的权限的目的。
- 操作手册:可以上传调查任务的使用指南以便数据录入用户可以下载查阅。在调查任务界面,下载操作书册的链接在系统界面的右上角。
- 调查任务所属问卷:点击“添加”或“删除”按钮完成对问卷的管理。【问卷分组】控制不同的调查问卷在数据录入主界面显示在不同的分组中,相同分组名字的调查问卷会显示在同一个菜单下。生成调查任务后,对调查问卷的修改将不会影响该调查任务。
- 视图映射:指在本次调查任务中某些视图映射到系统内的某个数据字典上。如果在问卷中用到了地区编码或机构编码等系统内置的字典,就需要设置视图映射。如果本次任务中使用了但是未指定的数据映射,将使用系统级的数据视图所映射的字典。
设置完任务属性后,点击保存,则任务创建完毕。在“浏览调查任务”界面可看到新建的任务。对于权限控制为【单独用户】的调查任务,创建此任务的用户为管理员,默认拥有所有权限。在未建立其他用户之前,只有此用户可以登录访问此调查任务。
浏览调查任务
在调查任务管理主菜单中,单击【浏览调查任务】菜单项,右边工作区显示调查任务浏览界面。可在此界面上对调查任务执行修改、删除、打开、导入、导出等操作。
在调查任务浏览界面,用户只能浏览自己创建发布的调查任务,也就是说调查任务只能被他的创建者浏览到。
修改调查任务
在“浏览调查任务”界面的“操作”栏,可以对调查任务进行管理,包括修改、查看、删除等。这里主要介绍“修改”操作。在“浏览调查任务”界面点击“修改”按钮,即可打开任务修改界面,如所示。常见的修改主要有修改任务结束日期、问卷升级和替换等。
调查任务内的调查任务一般放置在【数据采集】菜单下,如果需要使用其他的名称,请在调查任务的【问卷分组】中填入所需要的菜单项名称。
升级问卷是用调整后的问卷替换旧的问卷,升级过程中会将旧的数据转换到新的问卷中来。升级问卷注意事项:
- 新旧问卷的数据项设计需兼容(注意以下情况:有新增的必填字段、将有空白数据的字段设置为必填字段、更换字段的类型为不兼容的数据类型等),否则会导致数据丢失。
- 升级过程是不可逆的。
- 在问卷升级之前最好备份数据。
- 升级问卷后,需要对用户组权限进行相应修改。
替换问卷是用新的问卷替代掉旧的问卷,并且清除掉旧的问卷数据。如果在被升级的问卷和旧问卷存在不兼容的情况,请使用替换问卷功能。替换问卷注意事项:
- 在替换问卷之前必须备份数据。
- 问卷替换过程中旧问卷的数据将被直接清除且不可恢复。
替换问卷后,需要对用户组权限进行相应修改。
只有在修改界面才能设置欢迎页类型,欢迎页设置,问卷字典绑定等功能。
访问、登录调查任务
调查问卷成功发布以后,系统即成功建立了一个调查任务。系统会为调查任务分配一个全局唯一的ID,同时根据这个ID,用户可以直接打开这个调查任务的登录界面。在调查任务列表处的调查任务上点击“打开”按钮,新打开的页面的网址即是此调查任务的专用访问地址。
直接在浏览器中输入调查任务的登录网址即可打开调查任务的登录界面,在登录界面中,会显示用户创建调查任务时指定的调查任务的名字。需要注意,如果允许匿名用户登录,则系统会默认无需登录直接以匿名用户登录到调查任务中,如需要切换为其他用户,请先点击右上角的退出登录按钮后再以其他用户登录。
调查任务管理
调查任务的管理一般包含对调查任务信息的修改,为调查任务的数据录入建立用户,为数据录入用户分配权限,为用户定制报表等。其中调查任务信息的修改请上面的章节,为用户定制报表请参见数据统计章节。
在本系统中,采用了基于角色的访问控制(RBAC)来实现对用户的管理和授权。因此在本章节中主要介绍如何管理用户并且为用户授权。
登录到调查任务
创建调查任务的用户打开调查任务的网址后,直接使用其在调查问卷定制管理模块的账号和密码登录,即可登录成为此调查任务的管理员。
初始情况下,只有调查任务的管理创建者能访问并登录此调查任务。其需要先登录到调查任务中,创建用户和权限,或者审核用户祖册的账号,然后其他用户才能登录到此调查任务,进行数据录入、统计分析等操作。
用户管理
调查任务创建之后,除了系统内置的用户(调查任务创建用户和匿名用户),系统内不存在任何其他用户。因此一般来说需要调查任务登录进调查任务创建数据录入账号并且为其授权,则数据录入账号才能登录进入调查任务进行数据录入。
新建用户
点击【用户管理】菜单中的【新建用户】菜单,系统界面打开新建用户菜单,如下图所示。
如果不允许用户浏览其他机构的数据,请勾选【机构直报用户】。
如果需要为用户授予多个权限,请多次点击【用户分组关系】的右侧的【添加】按钮,再分别点击【选择】按钮选择需要授予的权限。
批量创建用户
如果需要大量创建用户,使用新建用户功能一个一个的创建用户将是一个非常巨大的工作量,因此系统提供了批量创建用户的功能。系统支持按照地区编码和机构编码创建用户。
点击【批量创建用户】菜单,系统打开批量创建用户的界面,如下图所示。
如果在创建用户类型中选择【地区】,系统将创建用户名为地区编码的账号,否则使用地区编码和机构编码为每一个编码创建一个账号。
在级别中勾选上的级别的地区编码才会被创建账号。
在用户账号生成规则指定用于生成用户登录账号的模式,用{0}表示当前用户生成用户的地区编码或机构编码。如输入lr{0}yh,且四川省的地区编码为51000000,则生成的四川省省级用户的登录名为lr51000000yh。
用户名生成规则中指定用于生成用户显示名的模式,用{0}表示当前用户生成用户的地区名称或机构名称。如输入“{0}用户”,则生成的四川省省级用户的显示名为“四川省用户”。
在初始密码中设置的密码为会赋予每一个创建的用户作为其初始密码。在用户分组关系中所有选中的用户组权限会被赋予每一个创建的用户作为其用户授权。
用户注册和审核
系统支持用户自主注册调查任务账号,系统管理员审核通过授予用户登录的用户管理模式。
在用调查任务登录界面,点击【注册】按钮,系统打开服务条款显示界面,用户点击同意服务条款后打开用户信息注册界面后,用户填写注册信息保存后即完成用户信息注册。
调查任务管理员登录进入调查任务管理界面后,点击【浏览审核注册用户】,即可打开已经注册的用户的浏览界面,点击【生成用户】按钮,进入用户生成界面,如下图所示。
在注册用户生成界面,系统会装载用户在注册时填写的信息,调查任务管理可以对信息进行修改,并且对其完成授权后点击【保存】按钮即可生成账号。
角色管理
在本系统中,采用了基于角色的访问控制(RBAC)来实现对用户的管理和授权。用户组对应于基于角色的访问控制模型中的角色的概念,代表一类用于所拥有的权限的集合。
权限分为两部分,一是控制对功能的访问,如新建、浏览、删除等。一是对数据访问范围的限制,比如省级用户只能访问其辖区范围内的数据,或者对病种设置为受权限控制以后,用户只能浏览查看被授予访问的病种的数据。
新建角色
点击【新建用户组】菜单,系统进入用户组新建界面,如所示。
各个属性描述:
- 用户组名:名称
- 用户组描述:关于用户组的描述性文字
- 允许的操作:设定对于每个调查问卷的功能的访问控制。
- 应用程序:下拉选择问卷内的所有调查问卷的名称,包含用户管理和报表等内置的应用程序
- 操作:选定的应用内受权限控制的功能集合,勾选了表示允许用户使用此功能。需要注意,对于编辑、删除、查看等功能来说,其依赖与浏览功能,需要授予浏览功能才能让用户对数据进行编辑和删除等操作。
- 用户数据隔离:用户控制用户对浏览到的数据的功能访问控制,此选项只有在设计调查问卷模板时在问卷模板属性处勾选了【记录操作痕迹】才生效,包含三个选项:
- 数据不共享:用户只能查看、编辑、删除自己录入数据
- 只读共享:用户能浏览、查看所有权限内的数据,但是只能修改和编辑自己录入的数据
- 读写共享:用户只能查看、编辑、删除所有权限内的数据
- 数据权限授予:用于处理在问卷设置为授权控制的字段的权限的授权。地区编码控件默认只允许访问用户辖区内的数据;机构编码控件默认只允许直报用户访问本机构的数据,其他控件的则需要授权才能访问,否则不允许访问。
- 应用程序: 下拉选择问卷内的所有调查问卷的名称
- 数据表字典:选中的应用程序的受权限控制字典的列表
- 权限授权:授予访问的值范围,多个值以逗号分隔。
浏览角色
点击【浏览角色】,系统打开角色的浏览界面,如下图所示。
需要注意,由于面向的是问卷调查的数据处理,因此系统的所有的用户组是所有用户可以访问的。这和传统的基于角色的访问控制模型是有区别的。
数据录入用户操作
调查问卷发布完成之后,需要调查人员将收集的调查问卷结果录入对应问卷,或者请被调查人员直接填写问卷。本章节介绍录入调查问卷数据的相关操作和问题。
需要注意,对任意的调查任务,系统都支持登录调查任务录入数据和直接填写问卷这两种数据填报方式。调查任务的创建者可根据被调查者等实际因素考虑采用任意一种数据录入方式,或者同时采用两种录入方式。
登录调查任务录入数据
在实际的应用过程中,由于受被调查者的能力或者其他约束,或者受调查实施的环境(网络、计算机等)等因素的影响,被调查者往往难以直接填写问卷。如果某个调查任务的数据需要经常用户登录进行录入或者编辑,推荐采用用户登录调查任务进行录入调查问卷数据的方式。
登录调查任务
调查问卷成功发布以后,系统即成功建立了一个调查任务。系统会为调查任务分配一个全局唯一的ID,同时根据这个ID或者使用用户创建任务指定的短网址,用户可以直接打开这个调查任务的登录界面。
调查任务登录网址的一般的形式为http://[SERVER]/dap/t/[TASKID],其中SERVER是指系统发布的服务器的域名或者IP,如http://www.dapyun.com/dap/task/1。调查任务的管理员任何获取调查任务的登录网址请参见相应的章节。
如果在创建调查任务时允许匿名用户,则初次打开时即以匿名用户登录。如果用户需要以其他用户登录,请先点击右上角的【退出系统】按钮,重新使用其他账号进行登录。
如下图所示,用户登录系统后,在主菜单区域默认打开【数据采集】主菜单,或用户设定的主菜单项目。在右侧工作区默认打开系统讨论区。
如果调查任务的创建者在创建调查任务时指定了多个【问卷分组】,系统默认打开第一个问卷分组菜单。用户如果要访问其他分组菜单,请在具体问卷分组菜单按钮上单击鼠标左键。
录入数据
系统定制出来的默认的录入调查问卷的菜单名为“新建”加上调查问卷的名称,用户直接单击问卷菜单区的新建菜单名称,即可在右侧的工作区中打开数据录入界面。
调查任务的创建者应在调查任务的操作手册中注明数据填报要求,以便数据录入用户在填报调查问卷时知晓每个问卷字段的业务含义。调查问卷的设计者也可以在设计调查问卷时,在调查问卷模板的对应的控件的【提示信息】属性中填入对应的提示信息。
浏览数据
系统定制出来的默认的浏览调查问卷数据的菜单名为“浏览”加上调查问卷的名称,用户直接单击问卷菜单区的浏览菜单名称,即可在右侧的工作区中打开数据浏览界面,如图 64所示例。
浏览界面一般可分成两部分:
查询条件区:当用户在设计调查问卷模板时指在某些控件上勾选了【查询字段】,则该控件会出现在查询条件区域。查询条件区出现在页面的上部,用户可以在里面设置过滤条件,然后点击【查询】按钮即可按照指定的查询条件查询并且列出数据。
在设计调查问卷模板时,在问卷属性中指定的组合查询就是出现在查询区域的前面,如图中左上角红色框处所示。用户可以点击左侧的下拉选择控件以切换查询条件作用的字段。
是否选择控件在查询条件区显示为下拉选择框,主要是用于帮助用户处理查询全部数据的情况,如图中右上角红色框处所示。
数据列表区:数据列表区出现在页面的下部,用户在设计调查问卷模板时勾选了【列表字段】的控件都会出现在列表中。列表最左侧第一列固定位调查问卷数据的全局唯一ID,最右侧固定位问卷数据支持的操作项,查看、修改、审核、删除等操作都需要在此处点击。
在数据列表的标头上单击鼠标可实现按照指定字典进行排序,可重复单击实现顺序、逆序排序的切换。对应于不同的排序规则,系统显示不同的图标以供用户认知。
在数据列表区才用了分页显示数据的方式,系统默认按照每20条数据显示为以屏,称为一页。用户可以通过数据分页工具栏对数据进行浏览,也可以通过指定更精确的查询条件进行精确的查找。
在数据列表的最下方,是数据分页工具栏。数据分页工具栏中显示的信息依次为当前页数、总页数和总数据记录数。点击【导出excel】按钮,系统会将符合查询条件的全部数据以压缩文件的方式下载给用户。点击【\<\<】按钮显示第一页数据,点击【\<】按钮显示前一页数据,点击【>】按钮显示下一页数据,单击【>>】按钮显示最后一页数据。
直接填写问卷
随着网络的发展和普通民众的IT知识的增长,越来越多的人能够熟练地使用计算机。因此对于计算机比较熟练地被调查者,可以将调查问卷的录入地址发给他们,由被调查者直接录入,从而减少代录数据带来的误差。
与此同时,随着互联网的发展,我们需要经常需要面对网络上的未知的用户发布调查问卷,对于这种需求,只能是将问卷数据录入的网址发布出去。本章节将介绍将某个问卷的数据录入功能发布成网址的方式。
发布问卷录入地址
调查任务的每一个调查问卷的每一个操作的功能都是可以直接输入网址访问的。功能直接访问的网址满足是如下格式:http://[SERVER]/dap/form/[TASKID]/[APPID]/[TEMPLATE]_add
。其中SERVER是服务器部署的地址或者IP,TASKID时调查任务编写的编号,APPID时问卷发布的ID(从调查任务浏览界面点击【导出excel】按钮,在导出的压缩包里打开“调查任务所属问卷”里的ID字段),TEMPLATE时设计调查问卷模板时指定的【模板编号】。
调查问卷的录入功能的网址也可以不用自己拼装而直接获得。调查任务创建用户可以登录调查任务,打开对应的数据录入主菜单,将鼠标放置到录入功能的菜单项上,系统将弹出包含直接访问网址的提示信息,
在某些显示样式下,如果用户需要复制功能放置地址,可以通过快捷键获得:
- 在IE浏览器下,单击新建调查问卷数据功能,然后按下CTRL+C键,系统将把网址等信息复制到剪切板,用户可以直接使用。
- 在谷歌浏览器(Chrome),火狐浏览器(Firefox)中,在数据录入功能的左边按下鼠标,一直向右选中功能名称,然后按下CTRL+C键,系统将把网址等信息复制到剪切板,用户可以直接使用。
对于通过URL地址直接录入数据方式,系统支持一个额外的参数:single=true/false。当设置single的值为true时,当用户录入完一条数据后,系统将提示用户用户只能录入一条数据,否则将提示用户是否录入下一条数据。网址对大小写敏感,请注意参数之前的问号。网址带参数示例:
http://localhost/dap/form/3/1/SURVEY__add?single=true
在某些页面样式下,用户也可以直接单击二维码按钮,系统会直接弹出当前访问界面的二维码供用户扫码访问:
访问网址录入
被调查者使用直接录入网址完成第一条的数据的填报后,如果该问卷允许用户录入多条数据,系统将弹出对话框询问用户是否录入下一条数据,点击【确定】按钮开始录入下一条,点击【取消】将进入编辑当前数据的界面,如所示:
被调查者使用直接录入网址完成第一条的数据的填报后,如果该问卷只允许用户录入一条数据,则系统提示数据已经成功保存并将关闭此窗口,然后【保存】按钮将禁用。如下图所示:
其他
系统讨论区
用户可以通过系统公告栏就调查任务相关的问题进行讨论。
用户点击右上角的【讨论区】即可进入系统讨论列表界面。在列表中只列出最近30天的用户发表的主题,如下图所示。
点击讨论区右上角的【发表新主题】界面,可以打开发表新主题界面,如下图所示。需要注意,只有调查任务的创建者才能设置【置顶截止日期】和【不允许回复】。设置了【置顶截止日期】,该主题将一直显示在讨论区的最前面;勾选了【不允许回复】,则只有调查任务的创建者能够回复该主题。用户填写完【标题】和内容之后,直接点【发表新主题】按钮即可发布一条新的讨论。
在讨论主题的浏览界面,在对应的主题后面点击【回复】按钮,系统将打开主题回复界面,如图 70所示。在回复区的前面将列出所有的回复,用户录入完回复内容后点击【回复】按钮即可完成主题回复,点击【返回】按钮即可返回主题列表。
系统公告栏
在系统讨论区的上方,如果存在系统公告,则会显示一个黄色的上下滚动显示的区域。当显示到某个公告时,用户如需要了解详细信息,可直接单击打开详细信息的介绍。系统公告浏览效果下图所示。
系统公告的维护由系统管理员在问卷定制管理平台的【系统管理】主菜单项中维护管理。
修改密码
对于批量创建的用户,他们的密码都是一样的,因此在用户登录时需要用户修改密码。修改密码的功能在调查任务【系统管理】主菜单项中。
点击【修改密码】菜单,系统打开修改密码界面,如下图所示,用户可以修改其显示名、密码和联系信息。修改密码是,用户先在密码的文本框内输入新的密码,然后在【重复新的密码】里填入新的密码即可。用户的创建者也可以对用户的密码进行重置修改。
录入超时设置
系统默认登录一次的最长有效期为30分钟。如果用户在登录30分钟后长时间未操作,则用户的登录将失效。
对于一些特别复杂的调查表,如果用户填写的时间超过了30分钟,则在用户填写完成后点击保存按钮保存数据时,用户的登录已经失效。系统对这种场景做了优化,将弹出系统登录框,提示用户重新登录。一旦用户重新登录成功,则用户的数据也会被成功保存到系统中。
数据统计定制与查看
在本系统中,提供了对调查任务中的数据的实时查看和汇总的功能。实时数据的浏览查看通过数据浏览功能实现,而数据的统计分析汇总功能则是使用了类似于调查问卷的先定制后使用的方式进行。
在本系统中, 统计分析汇总功能操作可以分成两部分,即统计分析的定制和统计分析结果的查看功能。由于统计分析的定制功能是设置在调查任务里的,只能由调查任务的管理用户操作;而统计分析结果的查看功能则是可由普通用户操作的。因此本文将数据统计的定制和查看功能单独成为一章介绍。
登录统计分析菜单
要启用简单报表功能,需要在调查任务的“扩展功能”项中启用“简单报表”。
统计分析的定制和结果查看功能都是包含在具体的调查任务里的,因此用户要使用统计分析的定制和结果查看功能时,都需要先登录统计分析菜单。
- 用户要登录统计分析菜单,需要先打开浏览器,输入调查任务的访问地址。
- 用户在登录界面输入用户和密码,点击登录按钮。登录成功后转入系统主菜单。
- 某些显示样式下,在系统主界面点击工具栏上的【统计分析】按钮,在菜单区打开统计分析菜单,如下图所示。
需要注意,如果用户在创建调查任务时未选择调查权限管理类型,则【统计分析】菜单项不会出现。
在统计分析菜单界面中,第一部分是统计报表定制的菜单,包含新建、修改、删除、浏览报表等。第2部分则是具体统计分析报表的菜单,只有用户获得授权的统计报表或者是用户设计的报表才能在此处显示出来。
统计报表定制
要启用简单报表功能,需要在调查任务的“扩展功能”项中启用“简单报表”。
在统计分析菜单中,点击【新建简单报表】,即可打开报表定制界面,如下图所示。
在统计报表定制界面,各属性说明如下:
- 报表名:报表的名称,用户显示在授权和报表功能处
- 类型:统计结果展现形式,可多选。
- 业务规则:列出了本调查任务内所有的可用于统计的数据规则。其格式时:[调查分组]调查问卷名称_调查问卷模板名称,便于用户准确识别在哪个调查问卷上进行统计。
- 查询条件:列出了选中的调查问卷中的所有的可用于查询条件的控件。只有在控件的属性中包含【查询字段】属性的控件才会出现在此处。和勾选了【查询字段】类似,在此处勾选了的字段会作为统计报表的查询字段出现在统计报表数据的查看界面。
- 数据值:用于计算统计值的设置。
- 分组列:用于纵向或者横向展开的数值设定,对应不同的字段有不同的分组规则:
- 包含数据字典的字段:以数据字典的值展开
- 日期字段:以日期段展开,根据日期范围的不同按年、按月或者按日展开
- 地区编码控件:按照辖区即下级编码展开,上级数据包含所有的下级数据的汇总
- 机构编码控件字段:和地区编码类似,但是在县级时列出按照机构展开
- 数据约束:分用户授权的数据权限类似,用户统计报表的默认数据约束,这里可以设置任意的字段作为约束。
统计报表的属性的在统计报表结果的展示页面的位置如下图所示。
点击【浏览简单报表】菜单,可以打开浏览简单报表的列表界面。在列表界面了列出了本调查任务用户定制的全部报表。除去修改、查看、删除等功能外,还提供了一个【预览】功能。点击预览功能,即可打开该简单报表的实际运行界面,以便用户在设计时查看实际的运行效果。
统计报表授权
完成简单报表的定制功能之后,最终用户还不能运行查看定制好的报表。用户需要获得简单报表的授权才能在报表功能处列出此报表的菜单。
在用户组管理处管理统计报表的授权时,应用程序项目应该选择【统计分析】项,在操作处会列出该调查任务中所有的简单报表名称,如下图所示。
-rando
查看统计结果
如果用户已经获得某调查问卷的授权,则用户可以直接在统计分析菜单下点击具体的统计分析的菜单项,直接会在工作区打开统计数据的查看界面。
统计数据的查看界面和数据列表的界面类似,页面的上部是统计数据过滤条件区域,这是由报表定制用户在设计统计报表时指定的,用户可以在其中编辑数据过滤条件,然后【查询】按钮即可应用查询条件进行数据分析汇总。数据列表下面是结果展示区域。界面示例下图所示。
数据表对比
在统计分析功能处,系统预置了一个数据表对比的功能,用于辅助用户完成双录入核查等情况下的两个调查问卷数据之间的比对工作,界面示例如下图所示。
要启用数据表对比功能,需要在调查任务的“扩展功能”项中启用“数据表对比”。
其他功能
AI快卷
根据问卷模版到调查问卷再生成调查任务的过程比较多,所以针对一些简单的临时数据收集的任务,利用AI技术开发了AI快卷功能。AI快卷可以利用AI大模型快速生成问卷,并可继续使用AI对已经生成的问卷进行修改。问卷创建完成后可分享给其他人进行填写。
要开启AI快卷功能,需要在系统部署时额外配置AI大模型的地址和参数。
创建AI问卷
点击主菜单的“新建AI快卷”菜单,即可打开新建界面。
界面最上部分为工具栏:
- 点击“对话”可以切换到查看对话内容
- 点击“预览”可以切换到查看生成的问卷的具体格式
- 点击“属性”可以查看此问卷的具体属性信息
- 点击“保存”保存可以保存此问卷的需求,用户需每次修改问卷后点击保存后才能生效。
- 点击“返回”按钮返回问卷列表
在界面的最下方为对话输入区,在文本框内输入新的内容后,点击回车,或点击右侧的发送按钮即可将新对命令发送给AI,从而对问卷进行修改。点击发送按钮旁边的图片按钮可以选择一个图片一起发给AI。
浏览AI快卷
点击主菜单的“浏览AI快卷”菜单,即可打开浏览界面。
点击后面的每个问卷后面的“浏览数据”按钮,可以打开问卷数据的浏览界面。点击每条数据后面的查看按钮即可查看此条数据。也可以点击“新建”按钮,手工录入新数据。
点击每个问卷后面的分享按钮,即可打开问卷的访问二维码,用户可以保存此二维码并分享给需要填报数据的用户。
数据抽样
要启用数据抽样,需要在调查任务的“扩展功能”项中启用“抽样功能”。
和简单统计类似,数据抽样也是分创建抽样功能,执行抽样,以及查看抽样结果三部分。
创建抽样功能
- 源数据表:用哪个表的数据进行抽样
- 结果数据表:抽样出来的结果保存到哪个表里。
- 导入字段:抽样结果的哪些字段保存到目标表里去。必须源表和目标表字段名一直才能保存进去,支持主键。
- 分层字段:用哪些字段进行先分类:比如按县级的话就选取地区编码,并选择到县级
- 排序字段:进行抽样的结果用哪些字段进行排序,主要是影响系统抽样时数据的排序。
- 抽样方法:
- 系统抽样:抽样位置支持填多个位置(多个之间用英文逗号分割),如1表示第一个,倒数的位置用负数表示,如负一表示最后一个。如果 2,-2表示抽取第2个和倒数第2个。抽样间隔表示割了多少个之后继续循环抽,直接到最后一个。抽样位置填2,抽样间隔填5,则抽取结果为 2,8,14
- 随机抽样:填写总共随机抽取多少个。
一般进行抽样时,可以把相同字段的问卷分别用作抽样源头和目标表。抽样结果的各种通过问卷本身指定和提供。
执行抽样
创建抽样功能并分配权限之后,具有权限的用户可以按需要执行抽样。
在主菜单上点击具体抽样功能,并在界面中填入抽样的参数并提交之后,后台会自动按照规则设计执行抽样,会将抽样结果插入目标表。
查看抽样日志
每次执行抽样都会在抽样日志插入一个条记录,详细记录抽样过程中的信息。可以点击查看。
日志查看
要启用日志查看,需要在调查任务的“扩展功能”项中启用“日志查看”。
日志查看包含通知日志,用户日志和访问日志三个功能。其中:
- 通知日志包含向用户发送邮件、短信等通知的内容
- 用户日志主要包含用户登录、退出、修改密码等事件的日志
- 访问日志则为用户填报数据相关的访问服务器的日志。
应用示例
在本章节中,尝试以一个结构化的职工家庭情况调查未示例,演示如果通过本软件实际的进行问卷的设计、发布、更新,以及问卷数据的收集、管理和统计分析。
示例调查说明
问卷标题: 职工家庭基本情况及生活状况调查表
填表说明:
- 目的: 本次调查旨在了解职工家庭基本情况和生活状况,以便更好地关心职工生活,提供必要的帮助和支持,促进和谐稳定。
- 保密承诺: 您提供的所有信息将严格保密,仅用于内部关怀帮扶工作,不会用于任何其他目的或泄露给无关第三方。
- 填写要求: 请根据您家庭的实际情况,如实、完整地填写以下信息。请在对应选项的“□”内打“√”,或在“____”处填写具体内容。
- 家庭成员: 指共同居住、共同生活的直系亲属(配偶、子女、父母)以及其他需要您长期供养或共同承担家庭责任的亲属。
- 第一部分:家庭整体情况
- A. 基本信息
- 职工姓名:____
- 职工工号/部门:____
- 家庭住址:____(省/市/区/详细地址)
- 联系电话(本人):____
- 紧急联系人姓名:____ 关系:____ 电话:____
- 家庭常住人口总数:__人 (指经常共同居住生活的人数)
- 家庭主要收入来源(可多选):
□ 职工本人工资 □ 配偶工资 □ 其他家庭成员工资 □ 经营收入(如开店、办厂)
□ 投资理财收入 □ 退休金/养老金 □ 政府补贴/救助 □ 其他:____ - 家庭月平均总收入范围(人民币):
□ 3000元以下 □ 3001-5000元 □ 5001-8000元 □ 8001-12000元
□ 12001-20000元 □ 20001元以上
- B. 居住状况
9. 住房性质:
□ 自有产权房(无贷款) □ 自有产权房(有贷款) □ 租赁房 □ 单位宿舍/公寓
□ 借住亲友房 □ 其他:____
10. 住房面积:__ 平方米
11. 居住环境自评:
□ 非常宽敞舒适 □ 比较舒适 □ 基本够用 □ 比较拥挤 □ 非常拥挤困难
12. 住房是否面临以下问题(可多选)?
□ 无 □ 房屋老旧失修 □ 交通不便 □ 周边环境差(治安/卫生/噪音)
□ 还贷压力大 □ 租金压力大 □ 其他:____ - C. 生活水平评估
13. 家庭每月基本生活支出(衣食住行、水电煤等)占家庭总收入的比例大约为:
□ 30%以下 □ 30%-50% □ 50%-70% □ 70%以上
14. 家庭每月是否有结余?
□ 经常有较多结余 □ 略有结余 □ 基本持平 □ 经常入不敷出
15. 家庭拥有的主要耐用消费品(可多选):
□ 私家车 □ 冰箱 □ 洗衣机 □ 空调(多台) □ 电脑(多台)
□ 智能手机(多部) □ 其他大件:____
16. 近一年内,家庭是否有能力承担以下支出(无困难)?
* 一次国内旅游: □ 是 □ 否
* 购买/更换一台大家电(如冰箱、空调): □ 是 □ 否
* 应对一次5000元左右的意外开销(如医疗、维修): □ 是 □ 否
* (请根据实际情况选择) - D. 家庭当前面临的主要困难(请如实填写,可多选)
17. 经济压力:
□ 收入低,生活拮据 □ 负债(房贷/车贷/消费贷/其他借款)沉重 □ 抚养/赡养负担重
□ 重大疾病医疗费用高昂 □ 子女教育费用压力大 □ 其他:____
18. 住房困难:
□ 无固定住所 □ 居住条件恶劣 □ 房租/房贷压力过大 □ 其他:____
19. 家庭成员照料压力:
□ 家中有长期患病(重大疾病/慢性病)成员需照料 □ 家中有残疾成员需照料
□ 家中有失能/半失能老人需照料 □ 婴幼儿/学龄前儿童照料压力大 □ 其他:____
20. 工作与家庭平衡困难:
□ 工作时间长/强度大,无暇顾家 □ 通勤时间过长影响家庭生活
□ 因家庭原因(如照料)影响工作稳定性 □ 其他:____
21. 其他困难:
□ 突发变故(如灾害、事故) □ 法律纠纷 □ 心理/精神压力大
□ 单亲家庭压力 □ 其他:(请简要说明:____)
22. 您认为家庭最迫切需要哪方面的帮助或支持?____ - 第二部分:家庭成员详情(请为每位共同居住或需您主要供养的直系亲属填写以下信息)
(请根据家庭人数复制本部分表格)
| 序号 | 与职工关系 (如:配偶、长子、父亲、母亲等) | 姓名 | 年龄 | 健康状况 (良好/一般/慢性病/重大疾病/残疾/失能等) | 就业/就学情况 (工作单位/职务 或 学校/年级 或 退休/无业/学龄前等) | 月收入/生活费来源 (如有) | 是否为本家庭主要经济负担来源? (如重大疾病、无收入、高学费等) | 备注 (如特殊困难、特殊才能、获奖情况等) |
| :--- | :--------------------------------------- | :--- | :--- | :----------------------------------------------- | :----------------------------------------------------------- | :--------------------------- | :----------------------------------------------------------- | :------------------------------------- |
| 例: | 配偶 | 张三 | 35 | 良好 | XX公司 / 职员 | 约6000元 | 否 | |
| 1 | | | | | | | | |
| 2 | | | | | | | | |
| 3 | | | | | | | | |
| ... | ... | ... | ... | ... | ... | ... | ... | ... |
(“是否为本家庭主要经济负担来源?”列是重点,用于识别困难核心点)
- 第三部分:补充说明与承诺
- 以上所填内容是否属实? □ 是 □ 否
- 您是否还有其他情况需要补充说明?_____
- 您是否愿意接受单位后续可能的家访或进一步沟通以提供帮助? □ 愿意 □ 需要考虑 □ 暂不愿意
职工签名: ____
填表日期: __年__月____日
问卷设计与发布
问卷的设计与发布流程为:
- 先设计问卷模版,
- 问卷模板设计完成后,使用问卷模板创建问卷
- 然后使用创建的问卷发布调查任务
设计问卷模版
按照上述所列,我们可以先将整个调查设计为一个问卷,其中家庭成员部分使用子表控件实现。出于美观考虑,将每部分设计为一个多行控件包含,以便方便的实现分页或者分段录入。
系统字典及问卷内字典
对于单选、多选、下拉选择等控件,其选项的存储值和展示值通常是不同的,这种键值对在系统内一般称之为字典。设计问卷时,可以给每个需要字典的控件设置问卷内字典,操作方式则是在控件属性那里选择“数据字典”为“自定义字典”,并且在下面的自定义字典那里添加多个键值对,分别在“保存值”和“显示名称”里输入需要的内容。一般建议保存值以英文字符和数字为主。
如果其他的控件要使用此控件的字典,则此在其他控件的“数据字典”里选取此控件名称的字典即可。
对于需要跨问卷层面需要共享的字典,则建议在系统的数据字典管理菜单里创建公共字典,并在数据字典这里进行选取。系统字典通常用于国标及系统层面通用定义的字典的管理,只有系统管理员能管理。创建字典时注意设置字典的存储字段和显示字典。演示这里为常用是否选项创建了一个系统字典。
标题栏实现
问卷类的标题栏,如“A基本信息”,为加粗字体,以及横跨全屏的背景色。要实现这种效果一般先创建一个单行容器,设置此单行容器的背景色为需要的颜色;
然后在单行容器内放一个文本标签,文本标签内的内容为所需的加粗显示的字体。
必填字段及效果
如图中的职工姓名为必填字段,且在文本框后面跟了一个红色的星号*。要实现此效果,除了在文本框的属性中去掉勾选“值可以为空”,还需要设置后置文本及后置文本的字体颜色。
单选/多选勾选其他出现文本框
设计问卷时,先点击选中某选项,然后再添加文本框,文本框就会出现在此选项后。要在其他之后添加,则点击选中“其他”选项,然后添加文本框,并记下此文本的字段编号。
要实现勾选了“其他”才出现文本框,则需要配合脚本实现,一般使用HIDES命令。在HIDES和END之间,每行就是哪个选项值对应哪些额外的控件需要(多个控件则ID之间以逗号分割),选项值和控件ID之间以空格隔开。
创建记录时默认赋值
对于此问卷里的填报日期等类似内容,一般都是在新填写数据自动设置为当前时间。对于此类内容,一般是在问卷及设置脚本来填入自动的内容。其中 BEFORE RECORD是声明此脚本只在问卷打开时执行,因为新建和修改的时候都会执行,所以需要判断控件值为空时(修改时次字段应该都有值了),才赋予某个特定值。
复杂逻辑校验
出去常见的是否必填,值范围等校验项,系统也支持通过特定的命令实现特殊的校验。通常为ASSERT命令,也可以在表的AFTER RECORD中执行脚本判断。
对于图中选中的“住房是否面临以下问题(可多选)”,除去上面所说的选中其他需要出现额外的详细的文本框外,还需要判断,如果选择了“无”选项,则不应该选择其他选项。因为此字段也不是必填字段,所以还需要考虑完全没选择任何选项的情况。因此此控件的脚本如下:
运行效果如下:
上传手写签名
要实现手写签名的上传,需要使用文件上传控件,并且类型选择为签名,则用户在签写完成后,签名内容会作为图片上传。
生成问卷
问卷模版设计完成后,直接点击新建问卷按钮,并选择刚才设计的问卷模版。
创建调查任务
点击主菜单上的“新建任务”,输入任务名,并且权限管理一般选择为“单独用户”,在“任务所属问卷”添加一行并选择刚才生成的问卷即可,然后点击保存,即可生成一个新的任务。
数据填报
管理登录任务并创建用户
创建任务的用户回到浏览任务界面,然后点击新建的“任务”后面的“打开”按钮,系统会打开新任务的登录界面。请记录下此网址,并分发给后面需要登录并填报数据的用户。
使用创建任务的用户的账号和密码登录此新打开的任务。创建任务的用户会默认是此任务的超级管理员角色,拥有所有权限。
先新建一个标准用户权限的角色:
然后创建录入数据的用户并赋予刚创建的角色:
用户创建以后就可以登录系统并填报数据了。
录入用户登录并填报数据
录入数据的用户用浏览器打开任务的登录网址,并且输入用户名和密码,登录到系统,即可进行数据录入相关的操作。
任务管理/数据统计
定制统计
如需要统计,需要在任务中对“扩展功能”中勾选“简单报表”选项。
则管理员登录任务之后,可以定制简单报表。如图所示,定制了一个简单的数据量统计:
则下次登录后,在简单报表菜单里选择此菜单,即可查看结果。如果需要别的用户可以看到此报表,则需要通过角色将此统计报表的权限赋予其他用户。
修改任务
管理员可以任务设定进行修改,或者从任务中添加/删除/修改问卷。在问卷设计定制模块的浏览任务界面中,点击修改按钮,既可以进入任务的修改界面。除去可以修改任务的属性,修改/添加/删除问卷外,还可以修改任务的欢迎页。
登录后欢迎页显示为
附录问卷模板xml
可以在问卷模版管理处直接导入此xml。
系统参考
本部分包含系统各个模块和功能的详细使用说明。本部分的内容仅供用户在实际操作时参考使用。如需要介绍系统的操作流程和操作步骤,请阅读本文档简明操作部分。
通用信息参考
本章节包含适用于调查文件定制管理和具体调查任务内的数据录入、系统管理等系统模块的通用性信息介绍。
系统兼容性
浏览器兼容性
本系统的主要功能都是通过用户使用浏览器访问系统具体功能从而为用户提供服务,并保存用户提交的数据。因此系统的兼容性主要是介绍能够准确的使用系统的各个功能的浏览器的软件名称及其版本。
本系统主要功能都是在Windows 平台进行开发,并且在安卓、IOS等移动操作系统进行了少量的验证性测试,因此如无特殊的声明,系统的兼容性都是指在Windows 操作系统之上的浏览器的兼容性。对于在Windows 平台上兼容的浏览器,理论上对其Linux、Unix、Mac OS 等其他操作系统发行版本是支持的,但是由于成本等因素我们未进行验证。
本系统在开发时主要使用谷歌公司Chrome 浏览器(俗称谷歌浏览器,详细信息请参见http://www.google.cn/intl/zh-CN/chrome/)和微软的Internet Explorer浏览器(简称IE 浏览器),在发布时会使用Mozilla Firefox 浏览器(俗称火狐浏览器,详细信息请参见http://www.firefox.com.cn/)进行验证测试。当遇到用户报告的在苹果公司Safari浏览器使用的Bug,我们会尝试修改。
在用户使用本系统时,我们推荐使用谷歌浏览器版本64 以上,或者使用IE浏览器版本10以上。用户可以使用IE 浏览器版本11 及其以上版本以及谷歌浏览器、火狐浏览器和Safari 浏览器的最近版本访问系统。使用最新版本的浏览器访问系统,将获得更快的操作速度,并且获得最大的系统兼容性和稳定性。
对于当前的各种机遇上述浏览器进行二次开发的浏览器软件,如搜狗浏览器、QQ 浏览器等,我们未进行功能验证。请用户尽量使用上面章节中介绍的浏览器进行功能操作。本系统提供的功能我们都尽量确保用户在安卓和IOS 等移动操作系统上使用系统自带浏览器可以操作。对于其他的浏览器,我们未做功能测试和验证。
屏幕分辨率兼容性
本系统在调查问卷布局实现上采用的是自动适应浏览器所在计算机的分辨率的算法实现,因此理论上本系统支持所有的主流的分辨,但是本系统的功能测试主要在1920x1080 以及1440x900 等分辨率下进行测试。
在使用本系统进行调查问卷的设计时,推荐使用1920x1080及以上的大分辨率的计算机进行操作。使用大分辨率的计算机进行调查问卷的设计时,用户将获得更好的界面的操作性和用户体验。
用户完成调查问卷设计后,请在调查问卷发布的目标用户的主流分辨率上进行预览并且进行调整,以便数据录入用户获得最好的数据录入体验。在大分辨率下设计的调查问卷,在小分辨率的计算机会遇到原本一行内的控件折行显示等问题。
网络兼容性
本系统主要通过HTTP 协议对外提供基于网页的功能服务,因此在任何支持HTTP 协议的IP 网络上都可以正常访问本系统所提供的各项功能。
用户在操作系统时,应使用快速、稳定的网络链接。特别是在进行文件上传、数据导入等大数据量的操作时,网络的时断时续将可能导致数据上传等操作彻底不可用。
系统支持使用http和https访问,如需要使用https访问,则需要系统在部署时额外部署https访问时的证书等。
系统通用特性
控件及其操作方法
在本章节中,控件是指在系统中的用于用户在操作某项数据时的界面操作对象。在本系统中,任何控件都具有两个形态:编辑状态和显示状态。其中在调查问卷的查看和数据列表功能中,控件都是以显示状态输出;而在数据录入和编辑状态下,控件处于编辑状态。这里的所说的操作方法如无特殊说明,都是指数据处于编辑状态下,用户录入和或者修改数据时的操作方法。
文本框
在系统中,文本框控件可用于用户录入字符串、数字、密码等信息。在录入数据时,用户可以通过鼠标点击或者键盘导航等方式使目标文本框控件处理获得输入聚焦的状态,然后可以通过敲击键盘或者通过粘贴等方式录入数据。
用户使用文本框录入密码信息时,或者该字段是保密字段且用户不是该条记录的创建者时,用户录入的信息将不会显示在文本框控件中,而是以星号(*,随操作系统的不同而不同)的方式显示。用户在设计问卷时如果在该控件的【文本行数】属性中输入了大于1 的数值,则该控件将显示为多行显示状态,并且所占的行数同用户在【文本行数】属性中指定的数值。默认情况下,该控件所占的宽度同用户在设计问卷时指定的【字段长度】属性。但当指定的【字段长度】属性大于60 时,将最大以60 的宽度显示。当该控件被用于子表控件内时,无论用户指定的【字段长度】属性的值为多大,该控件都是将占满系统为其分配的显示宽度。
当该控件用户字符串的录入,并且作为查询条件时,用户可以输入特殊字符以达到模糊匹配的效果。其中星号(*)表示匹配任意长度的任意字符,问号(?)表示匹配一个任意字符。如11*表示匹配任意以11 开始的字符串,11?表示匹配任意一个以11 开头的长度为3 的字符串。
当该控件被用于数字类型的数据录入时,用户则只能录入数字和小数点。如果用户在设当该控件被用于数字类型的数据录入时,用户则只能录入数字和小数点。如果用户在设计问卷时为该控件指定了格式,当用户录入数据后该控件失去焦点时,如果用户录入的数据不符合要求,系统将提示错误并将使该控件重新获得焦点。
当该控件在问卷设计时【数据类型】属性值为“是否(布尔型)”时,用户只有录入1或者Y 或者true 时其值存储为逻辑真值,否则为逻辑假值。
当该控件在问卷设计时【数据类型】属性值为“日期”时,用户可以按照“yyyy-MM-dd”的格式接受用户录入日期,用户也可以直接只录入数值,系统会对用户的录入结果执行格式化。
在用户调查问卷时,用户可以为文本框控件指定一个实现了“文本框查询录入”数据视图的数据字典。当该控件指定了数据字典后,用户在数据录入界面可以先输入模糊匹配字符串然后按下回车键或者F9 键,系统将列出符合查询条件的字典内的数据项,如下图所示。
用户可以用鼠标点击选中录入,或者通过键盘的上下光标选择然后按下回车键进行选中。如果该控件指定了数据字典,当用户录入的值在数据字典中不存在时系统将报告错误,如下图所示。
如果需要自动生成编码,则在“自编码格式”中输入编码模式即可,编码模式为支持静态内容和动态内容,其中动态内容以大括号{}包含起来,支持三类动态内容:
- 变量值,以@开头后面跟上变量名,如{@Field_1}
- 日期相关的值,如年月日时分秒等,其中y\m\d\h\w\n\s\l分别代表年月日时周分秒毫秒,如取日期的格式为{yyyymmdd}
- 顺序值,从1开始的值,以#表示位数,如要表示四位整数,则为{####}
如常见的编码是 “国{yyyymmdd}{####}”,则生成的编码为 国202002020001.
日期录入
日期录入控件用于帮助用户录入或者使用日历选择录入包含年月日的日期的控件。日期录入控件一般由两部分组成:可以输入日期的文本框和弹出日期选择的按钮。
一般需要为日期录入控件指定日期显示的格式,在中国一般使用yyyy-MM-dd 的格式。其中yyyy 表示4 位数的公元年数,MM 表示从01 到12 的2 位的月份,dd 则表示从01 到最大31 年的月内日期,短横线(-)是日期的分段符,也可以使反斜杠(/)分隔符。用户可以定制问卷自定义日期,如年月、年月日、年月日时、年月日时分、年月日时分秒等。
用户可以在前面的文本框里直接录入日期:可以按照指定的格式录入日期,如输入2012-12-11;也可以不输入段分隔符而直接输入数字表示的日期,如20121211,系统会自动按照指定的格式格式化成对应的显示方式。如果用户以纯数字的方式录入日期且未完全录入日期时,系统会默认以当前日期补充完用户未录入的部分。如用户设定以年月日格式录入日期,则当用户录入完2011 时,系统会自动将数据格式化成2011+当前日期。
用户也可以通过点击文本框后面▼按钮弹出日历选择框来根据日历选择日期录入。在弹出的日期选择框中,点击【\<】按钮日历框将加载前一个月的日历;点击【>】按钮日历框将加载后一个月的日历。点击【清空】按钮日历框将自动隐藏并且清空文本框中已有的数据。点击【今天】按钮,系统将将今天的日期填入到日期录入控件中并且隐藏日历框;点击【关闭】按钮系统将直接隐藏日历选择框。用户可以通过日历框中上部的年和月的下拉框快速定位到对应的年份和月份。
下拉选择
下拉选择控件用于在较小的屏幕范围内从指定的标准数据字典内选择一项作为输入值。下拉选择控件保存的值时用户在数据字典内指定的存储字段,而在界面上显示则是用在数据字典内指定显示字段。
默认情况下,下拉选择控件的输入值为空,用户可以通过点击下拉选择控件弹出选项来进行选择。如果当用户已经选择某项数据要进行清空数据时,请点击控件在弹出的选项中选中第一项空白项即可清空录入的数据。
默认清空下,下拉选择占用的屏幕控件宽度为数据字典内最大的显示项的字符宽度。下拉选择最小占用宽度不会小于40 像素。
下拉选择控件可以和一个系统级别的固定值的数据字典进行绑定,也可以和问卷内的包含的固定值的数据字典绑定。当和固定字典绑定时,控件内的选项是固定不变的。在问卷定制时,可以将控件的【联动项目】属性设置为问卷内的一个多项选择控件或者列表选择控件的编号,则当被指定的控件的选择项发生变化时,该下拉控件内的选项也会随之发生变化。
是否选择
是否选择控件用于录入逻辑真值和假值的录入,主要可用户只有两种状态的变量的录入。是否选择控件默认初始的值为逻辑假,因此即使在用户未点击输入的情况下调用ISBLANK 函数也是回返回逻辑假值(False)。
默认情况下,是否选择控件选中和未选中状态下查看状态显示的值为是、否。可以通过在调查问卷定制界面下在其【数据字典】属性中选择一个特定的数据字典由于输出特定的字符。逻辑真值的表示可以用数字1 或者字符串“Y”或者true 作为其保存值,逻辑假值可以用数字0 或者字符串“N”或者false 作为其保存值。例如在【数据字典】选择为自定义字典时,自定义字典可以通过下列值让其输出为特殊的显示名称。
在脚本中为是否选择控件赋值时,可以使用数字1 或者字符串“Y”或者true 设置其处于选中状态,用数字0 或者字符串“N”或者false 设置其为未选中状态。例如对于字段编号为FIELD_YN 的是否选择可以使用以下脚本设置其处于选中状态:
FIELD_YN=TRUE
多项选择
多项选择控件用于在特定数据字典下选择多项字典值的数据录入控件。选中项的值之间用逗号连接并且保存起来。
可以通过在定制调查问卷时设置【每行选项数】属性设置其输出格式。当【每行选项数】属性的值为1,控件每输出一个选项即换行。
多项选择控件可以和一个系统级别的固定值的数据字典进行绑定,也可以和问卷内的包含的固定值的数据字典绑定。当和固定字典绑定时,控件内的选项是固定不变的。在问卷定制时,可以将控件的【联动项目】属性设置为问卷内的一个多项选择控件或者列表选择控件的编号,则当被指定的控件的选择项发生变化时,该多项控件内的选项也会随之发生变化。如果在数据字典中的某项的保存值为空时,则该选项只做为文本显示界面上。
多项选择控件支持在每个选项上关联显示其他控件,如上图所示。可以通过点击具体选项,使选项处于选中状态,然后在选择添加新的控件,则新添加的控件则和该选项进行关联,并且显示在选项后面。每个选项只能关联显示一个控件,如果需要关联显示多个控件,请使用容器类控件作为其关联控件,然后将其他控件加入到容器控件中。
单项选择
单项选择控件用于在特定数据字典下选择多项字典值的数据录入控件。选中项的值之间用逗号连接并且保存起来。
在单项选择控件的选项上单击鼠标即可选中此选项。此时如果其他选项处于选中状态,则会取消其他选项的选中状态。如果在已经选中的选项上单击,则该选中的选项的状态会被取消。
可以通过在定制调查问卷时设置【每行选项数】属性设置其输出格式。当【每行选项数】属性的值为1,控件每输出一个选项即换行。
单项选择控件可以和一个系统级别的固定值的数据字典进行绑定,也可以和问卷内的包含的固定值的数据字典绑定。当和固定字典绑定时,控件内的选项是固定不变的。在问卷定制时,可以将控件的【联动项目】属性设置为问卷内的一个多项选择控件或者列表选择控件的编号,则当被指定的控件的选择项发生变化时,该单项选择控件内的选项也会随之发生变化。如果在数据字典中的某项的保存值为空时,则该选项只作为文本显示界面上。
单项选择控件支持在每个选项上关联显示其他控件,如所示。可以通过点击具体选项,使选项处于选中状态,然后在选择添加新的控件,则新添加的控件则和该选项进行关联,并且显示在选项后面。每个选项只能关联显示一个控件,如果需要关联显示多个控件,请使用容器类控件作为其关联控件,然后将其他控件加入到容器控件中。
列表选择
列表选择控件用于在特定数据字典下选中多个选项的数据录入,并可对选中的选项进行排序。列表选择控件也可以用于仅仅对数据进行排序,可以通过在定制问卷时不勾选【选项选择】属性即可。右边列表框中选项会作为控件的值被保存起来。
列表选择控件的左边的列表框显示未选中的选项,右边列表框为选中的选项,并且各个选项处于排序状态。在列表选择控件处于排序模式下,列表选择控件仅仅显示右边的选择框和排序按钮。列表控件中各个按钮的功能和操作如下:
- >>:将左边列表框中的所有选项(无论是否选中)都选择到右边列表框。
- >:将左边列表框中选中的所有选项都选择到右边列表框。
- \<:将右边列表框中选中的所有选项都选择到左边的列表框。
- \<\<:将右边列表框中的所有选项(无论是否选中)都选择到左边的列表框。
- 双上箭头:将右边列表框中选中的选项移到最顶端。
- 向上箭头:将右边列表框中的选项向上移动一格。
- 向下箭头:将右边列表框中的选项向下移动一格。
- 双下箭头:将右边列表框中的选中的选项移动到最底端.
列表选择控件可以和一个系统级别的固定值的数据字典进行绑定,也可以和问卷内的包含的固定值的数据字典绑定。当和固定字典绑定时,控件内的选项是固定不变的。在问卷定制式,可以将控件的【联动项目】属性设置为问卷内的一个多项选择控件或者列表选择控件的编号,则当被指定的控件的选择项发生变化时,该多项控件内的选项也会随之发生变化。
列表选择控件默认占用较大的显示空间,因此在定制调查问卷时,需要用户手工的设定的控件的显示的大小。可以通过设置【宽度】、【高度】属性设置大小,值可以为百分比,表示占用父控件的显示的范围的百分比,如50%。也可以使纯数字,单位为像素。
文件上传
文件上传控件用于用户上传一个文件,文件名被保存到控件的值中。其他用户可以直接下载上传的文件。
文件上传控件的文件在数据保存之前被上传到服务器上。如果文件上传失败,则数据保存失败。如果文件上传成功但是数据保存失败,则文件传到服务器上并且无法直接下载或者删除。
文件上传控件采用原生的HTML 上传技术实现,不依赖Flash 或者其他第三方技术实现,因此在移动设备上也能很好的工作。在指定上传文件时,点击【选择】按钮即可打开文件选择框。由于操作系统和浏览器的实现差异,请尽量点击【选择】按钮的左上角以免操作失败。
如果要情况文件上传控件的值,请点击【清空】按钮清空。如果文件已经上传,清空按钮只是接触上传文件和当前数据的关联,上传的文件并不会被删除。
上传的文件默认存放在系统部署的根目录下的/WEB-INF/uploaded/目录下,文件存放路径为年月日/时间戳+随机数+原始文件名 如:20131009/1381330019666.501574.test.zip。
地区编码
地区编码控件用于支持对中国疾病预防控制中心发布的8 位地区编码或者国家统计局发布的12 位地区编码的数据的录入。在使用地区编码时,如果控件未指定字典,控件则使用调查任务内指定的地区编码试图绑定的字典。
默认情况下,地区编码控件使用中国的8 位地区编码的数据视图,当用户在定制调查问卷时【数据字典】属性中选择第一项效果相同。如果要使用国家统计局发布的12 位区划编码视图,请在定制调查问卷时【数据字典】属性中选择第2 项【国家统计局区划编码】。除此之外,在【数据字典】属性中还列出了系统内内置的所有符合【地区编码】和【国家统计局区划编码】数据视图的全部的数据字典。用户一旦选中了某个数据字典,则该控件将一直使用此字典,而无论在调查任务或者系统中地区编码数据视图绑定的是哪个数据字典。
在用户定制符合【地区编码】的数据字典,还可以为地区编码的结构指定编码形式。编码形式可以有两种方式,一是全数字的组合,每个数字依次表示每段(每级)的编码的长度,如果标准的中国疾病预防控制中心发布的8 位地区编码的编码格式为2222。在此模式下,用00 表示为上级编码在此级缺少的值,如省级编码在市级的编码则为00。还有一种模式则是用小数点和数字的组合形式,每个数字仍然是依次表示每段(每级)的编码的长度,但是和第一种模式不同的是如果高级的编码在低级的段上值可以为空,且每段之间用小数点分隔。如编码格式为2.2.2,则可能存在的编码为11、11.11、和11.11.11。
地区编码控件默认和用户本身的地区编码绑定,默认显示为用户本身所在的地区编码级别。如果设置地区编码控件为【受权限控制】,则在用户默认只能查看用户所在地区内的全部数据。受权限控制的地区编码控件无需授权用户即可查看其辖区内的全部数据,如果需要进行特殊的控制才需要在数据授权处进行特殊的授权控制。
地区编码控件在录入时默认显示用户本身的地区,可以通过“上级”和“下级”按钮对地区选择进行导航选择。当在地区编码的下拉框中选中第一项时,可以通过点击“上级”按钮让下拉选择框内加载其上级地区内的所有编码。当在地区编码的下拉框中选中第一项时,可以通过点击“上级”按钮让下拉选择框内加载其上级地区内的所有编码。当在地区编码的下拉框中选中非第一项时,可以通过点击“下级”按钮让下拉选择框内加载其选中的地区及其下级地区的所有编码。
机构编码
机构编码用于中国疾病预防控制中心发布的标准的9 位的机构编码的数据的录入。该控件必须和使用了标准的中国的8 位地区编码的地区编码控件配合使用。
必须在【联动项目】属性内输入与之关联的地区编码控件的字段编号。在录入数据时,在指定的地区编码控件发生变化时,该机构编码构建列出的机构列表会随之发生变化。
如果该控件被设置为受权限控制的控件,且该用户被指定了所属机构,则该框将默认显示为用户的所属机构,否则用户可以主动选择。默认情况下该控件的【受权限控制】属性为选中状态。如果该用户机构直报用户且控件的【受权限控制】属性为选中状态,该控件显示为不可编辑状态,用户不能选择其他控件。
机构编码有一个重要的属性【显示模式】。显示模式有两个选项:
- 按所属县区:指对机构进行属地化管理,管理单位是区县。用户在关联的地区控件中选择某一区县,就可以看到该区县的机构。
- 按机构等级:按照用户选中的地区级别加载机构。目前系统支持国家级、省级、市级、县级和乡级五种单位级别,编码值依次为0、1、2、3、4。
地图坐标
地图坐标控件用于打开在线地图让用户选中具体点后记录其选中地点的经纬度坐标值。在离线录入应用中,用户可以直接录入经纬度值,或者使用系统的自动定位功能获取当前位置的经纬度值录入。
可以为地图坐标控件指定一个绑定的地区编码控件。当绑定了一个地区编码控件后,在用户新录入数据时,打开的地图界面会自动打开选中的地区编码的中心点附近。如果用户的浏览器支持HTML5 的获取坐标的新特性,在新录入数据时,程序会尝试主动获取当前用户的坐标并在地图中打开。
在定制问卷时,需要为地图控件选择所使用的在线地图服务的提供商,默认谷歌地图。推荐中国用户使用百度地图或者搜狗地图,非中国用户推荐使用谷歌地图。
用户在录入数据时,可以通过点击【选择】按钮打开地图选择界面,如所示。在地图打开后,可以通过双击地图或者数遍滚轮来进行地图的缩放操作;要选中某处地点时,可以地图上单击鼠标左键,则如中展示的红色椭圆型标记会移动到用户选择的地点,并且地图会以此地点居中显示。用户选中完成后,需要点击地图中间上部的【确定】按钮,关闭地图并且传回选中地点的坐标。要情况已经选择的地图坐标,可以通过点击【清空】按钮执行清空。
在数据录入时,值存储的方式采用逗号分隔的经纬度坐标值。需要注意,由于国家政策要求等原因,所获取的经纬度值和选中地点的实际经纬度具有一定的差异,请按照您选择的地图供应商进行修正。此差异不影响在地图中的回显坐标值。
表间关联
数据选择控件一般用于在当前调查表中关联的第三方调查表的数据。在问卷定制时,使用【表间关联控件】并且【关联实现类型】属性选择关联表时,最终生成的就是数据关联控件。在调查问卷定制管理模块中,组件的选择、调查问卷选择等功能都是使用的数据选择控件。
由于当前离线录入工具的实现限制,数据选择控件只能在在线录入平台上使用。用户在定制需要使用离线录入工具的问卷,请勿使用此控件。
可以通过点击选择按钮弹出目标数据选择界面,然后点击列表中记录后面的【选择】按钮进行选择。如要清空现有数据,点击【清空】按钮即可清空。用户需要具有打开的列表的调查问卷的浏览权限才能正确浏览数据,否则提示权限错误。用户只能目标调查问卷的浏览数据权限范围内的数据。
子表容器
子表容器用于向当前问卷加入一个和当前记录是一对多关系的子表。使用子表控件时,其所有的子控件都在一行内展示。
操作子表控件时,通过点击标题栏上的【添加】按钮可以新加一行数据。通过点击每行
数据后面的【删除】按钮则可以删除当前的行。
在导出excel 时,子表控件会单独生成一个csv 文件,并且通过调查表的数据ID 和主表的数据保持关联。导出excel 时,只会导出主表数据关联的子表数据。
在子表控件使用脚本时, 应使用和调查问卷一样的脚本, 即子表控件只支持BEFORE/AFTER RECORD 事件,不支持BEFORE/AFTER ENTRY 事件。在子表控件的控件上使用脚本时,如果需要访问和操作该子表内的其他控件,脚本获得时和脚本执行的行内同行的数据。在子表控件内可以访问和操作主调查表的控件。
富文本编辑器
富文本编辑器时一个在线所见即所得的格式化文本编辑器,主要用于一段经过格式化的文本的录入。在讨论区、系统公告栏、文本标签控件的文字的输入时都可以使用。
在富文本编辑器内,可以设置文本的字体、大小、颜色和对齐方式等,也可以上传并显示图片,或者显示外部图片。
脚本编辑器
在本系统中,支持对调查问卷和控件一级编写脚本。脚本录入时在脚本编辑器里进行的。本编辑器不仅提供脚本字符的录入,供提供对录入的脚本的以不同的颜色的功能。
脚本编辑器有两种编辑模式:
- 快捷设定:快捷设置是为常用的脚本命令提供一个图形化的界面,供用户用于快速设定所需要的脚本。当前快捷设定在问卷级只支持【重复录入】选项,即REPEAT 命令;在控件级别除【重复录入】选项外,还支持设置允许录入的最大值和最小值的范围,即RANGE 命令。
- 脚本编辑:脚本编辑按钮直接打开一个脚本编辑器,供用户直接录入、修改问卷或者控件相关的脚本命令。脚本录入、编辑完成后,可以点击右上角的【X】按钮关闭脚本编辑器返回主界面。如需再次编辑脚本,直接再次点击【脚本编辑】按钮即可重新打开脚本编辑器并且将加载上次最终修改后的脚本。
样式编辑器
样式编辑器用于设置调查问卷或者控件的显示的样式。样式编辑器采用所见即所得的方式提供设置问卷样式的编辑功能。对于每个调查问卷或者控件,对于其在数据编辑界面、查询界面、列表界面等实用场所的不同,系统提供了多种主题的编辑方式。
通常情况下,样式编辑器提供了如下的样式主题,其作用范围及意义如下所示:
- 基础:设定该控件的基础样式,下面的各个设定是基于此之上的
- 名称:设定数据录入界面的文字列的显示的样式
- 前置:设置前置文本的显示样式
- 后置:设置后置文本的显示样式
- 控件:设置数据录入界面和列表界面的查询区域的控件的样式
- 列表:设置数据列表界面的在列表中显示数据的样式
针对每个主题,每个按钮的功能依次为:
- 字体
- 字体大小
- 文字颜色
- 背景颜色
- 设置字体加粗,再次点击可以取消效果
- 设置字体斜体,再次点击可以取消效果
- 设置下划线,再次点击可以取消效果
- 设置删除线,再次点击可以取消效果
- 设置对齐方式
除此之外,最下方的“橡皮擦”按钮提供清除当前问卷或者模板的所有样式设置的功能。
按钮
按钮控件主要供用户提供一个可点击触发执行特定脚本的控件。可选择按钮样式、大小及图标等。其脚本仅在用户点击按钮后执行,因此不要在按钮的脚本中使用HIDES等声明式的命令。
键盘事件及导航
除去在调查问卷设计界面中支持CTRL+C、CTRL+V、CTRL+Z 键用于复制、粘贴、回复操作,在调查问卷数据录入界面,还支持一系列的键盘事件,并且提供根据键盘事件跳转到上一个或者下一个控件的键盘事件导航。
需要注意,要是键盘事件生效,必须保证一个控件处于获得焦点的状态。
快捷键
在数据录入界面,支持下列键:
- F9:如果当前获得了输入焦点的控件被指定了数据字典,按下F9 可以快速列出所有的字典的数据。
- CTRL+ENTER:结束当前的数据录入,提交调查问卷数据,系统会弹出对话框请用户确实是否提交数据。
键盘导航
键盘导航是指用户在录入数据时,通过按下某个键使输入焦点从当前控件跳转到下一个控件或者上一个控件。在文本框、日期录入等控件中,当数据录入到当前控件指定的长度后,系统将自动跳转到下个控件。当系统当前支持如下的键盘按键导航。
通常情况下,系统支持如下的键盘导航:
跳转到下一个控件:回车键、Tab 键(制表键)、下光标键、右光标键
跳转到上一个控件:ALT+回车键、左光标键、上光标键
由于各个控件输入数据及实现的要求,下列控件在处理键盘导航事件时存在以下例外:
- 文本框:左光标键和右光标键用于在文本框内的输入光标在文字之间来回移动
- 多行文本框:回车键用于文本框内内容输入换行而不是切换控件
- 日期录入:左光标键和右光标键用于在文本框内的输入光标在文字之间来回移动
- 下拉选择:上光标键、下光标键用于在选项之间切换
- 多项选择:左光标键、右光标键用于在各个选项之间切换输入焦点,当某选项获得焦点之后,按下空格键可使该选项处于选中状态或者取消选中状态。
- 单项选择:左光标键、右光标键用于在各个选项之间切换输入焦点,当某选项获得焦点之后,按下空格键可使该选项处于选中状态或者取消选中状态。
- 列表选择:上光标键、下光标键用于在选项之间切换并且选中,左光标键和右光标键用于从该列表框移动到另外的列表框。
- 文件上传:左光标键和右光标键用于输入焦点在按钮之间切换
- 地区编码:上光标键、下光标键用于在选项之间切换
- 机构编码:上光标键、下光标键用于在选项之间切换
- 地图坐标:左光标键和右光标键用于输入焦点在按钮之间切换
- 表间关联:左光标键和右光标键用于输入焦点在按钮之间切换
分页浏览列表和导出excel
在系统中,所有的数据列表都时分页显示的,每页显示20 条数据,用户可以通过数据列表下方的分页浏览工具栏进行页面导航浏览操作。
在分页浏览工具栏中,第一个按钮【导出excel】是将数据整个列表的数据导出成数据文件供用户下载。数据文件是一个zip 压缩文件,调查问卷的数据会调查问卷的名字作为文件名保存在一个csv 文件中。新版本支持将数据导致为一个excel文件,原来的每个csv文件转换成excel里的一个sheet页。如果调查问卷存在子表(见子表控件),则每个子表的数据也会保存在以子表名称为文件名的csv 文件中。子表数据和调查问卷主表数据通过调查问卷的数据主键关联。子表数据只包含当前导出调查问卷主表数据关联的数据。
在导出的csv 文件中,调查问卷的所有的控件的信息都会被导出。控件的显示名作为列名称。如果该控件绑定了数据字典(如多选、单选、地区编码、机构编码等控件),在列出输出的数据字典里指定的保存值,同时在csv 文件的最后会议两个\$符号包裹控件显示名称的列,里面输出的是数据字典里显示的值。如果用户在定制问卷时勾选了追踪用户操作,则csv 文件还会包含数据新建时间、最后修改时间等信息。在分页浏览工具栏中,【\<\<】按钮让当前列表跳转到第一页。【\<】按钮让当前列表向前跳转一页。【>】按钮使当前列表跳转到下一页。【>>】按钮使当前列表跳转到最后一页。文字信息显示的依次为当前页数/总页数(总记录行数)。
列表中的数据项是由用户在定制问卷时指定的。如果在定制问卷时,控件属性中的【列表字段】被勾选了,则该控件会作为列表的一列出现。
系统通用功能
本章节中列出的信息为所有的调查任务(包含调查问卷定制管理模块)中的都会用到的
功能。公告栏等操作请参见本文操作教程的相关章节。
系统登录
在录入或者操作管理调查任务之前,都需要先登录到调查任务。在浏览器里输入调查任务网址之后,首先打开的是调查任务的用户登录界面,在登录界面需要注意调查任务的名称。
用户在用户名文本框中输入登录用户名,在密码框中输入用户密码,在验证码框里输入验证码,然后点击【登录按钮】即可执行登录。如果登录成功,则界面跳转用户主菜单。登录失败则返回登录界面。
用户注册
在用户登录界面,点击【注册】按钮,系统将跳转到系统服务条款确认界面。请仔细阅读服务条款,如果同意继续请点击【已阅读并同意】按钮,系统跳转到用户信息注册界面。
请仔细填写各项信息,然后点击【申请注册】按钮提交注册申请。请注意填写电子邮箱信息。如果用户填写了电子邮箱信息,则当用户注册被审核通过后,系统将发送邮件到此电子邮箱中通知用户。
用户提交申请后,调查任务的管理员用户可以到用户管理的浏览审核注册信息功能处审核注册信息。
调查任务主菜单
在调查任务主菜单界面,上部窗口时调查任务信息窗口,显示的有调查任务的名称,当前登录用户的信息。在上部窗口的下部是分组菜单工具栏,列出调查任务内的各个功能的分组。用户可以再发布调查任务时设定。
在调查任务主菜单界面左边窗口时当前调查任务分组内的菜单窗口。用户点击分组菜单工具栏上的分组菜单项后,菜单窗口将显示对应的具体的菜单项。在菜单项上点击鼠标,在右边的工作区窗口将显示对应的操作界面。
点击分组菜单工具栏右边的【讨论区】按钮,工作区窗口将显示讨论区讨论列表。点击【退出系统】按钮,用户将退出当前登录。
用户管理
用户管理功能在【系统管理】功能分组中。其包含以下入口菜单:
- 新建用户:点击【新建用户】菜单项,系统将打开用户信息界面。填写完成点击保存按钮,系统将创建一个可登录的新用户。
- 浏览用户:打开浏览用户列表,用户可以执行修改用户信息、删除、授权等操作。
- 批量创建用户:打开批量创建用户界面,录入完成后将执行批量创建用户操作。
- 修改密码:打开修改密码界面,录入修改信息即可修改密码等信息。
- 浏览审核注册信息;打开浏览注册用户信息浏览界面,可以根据注册信息创建用户
用户信息界面
用户信息界面的属性如下:
- 用户登录账号:用于登录的用户账号,可以为中文,但是要求调查任务内全局唯一。
- 用户显示名:用户的描述性名字
- 密码:登录密码
- 登录后修改密码:用户下次登录时,强制用户修改密码后才能使用系统功能。
- 地区:用户所属地区级别,用户控制可访问的数据范围
- 机构:用户所属机构,
- 机构直报用户:如果是直报用户,则用户只能访问该机构的数据。机构直报用户只能是县级用户用户,并且机构项不能为空。
- 联系邮箱:用户的联系邮箱,在用户修改密码等操作时,系统将通过电子邮件发出通知。
- 联系电话:用户的联系电话信息。
- 用户分组关系:用户所属的分组。每个分组包含了数据权限和功能权限,和用户的地区属性、直报用户属性组成了完整用户授权信息。注意管理用户只能修改自己添加的授权信息。
浏览用户列表
用户只能修改、删除自己创建的用户。
对于其他管理用户创建的用户,用户为其增加、修改其增加的授权。
批量创建用户界面
批量创建用户界面的属性如下:
- 地区:在哪个地区范围内生成用户
- 创建用户类型:地区-只根据地区编码生成用户;机构-生成地区编码和机构编码用户
- 级别:生成那些级别的地区编码的用户,显示的内容和用户本身的级别有关。
- 用户登录账号生成规则:在用户账号生成规则指定用于生成用户登陆账号的模式,用{0}表示当前用户生成用户的地区编码或机构编码。如输入lr{0}yh,且四川省的地区编码为51000000,则生成的四川省省级用户的登录名为lr51000000yh。
- 用户显示名生成规则:用户名生成规则中指定用于生成用户显示名的模式,用{0}表示当前用户生成用户的地区名称或机构名称。如输入“{0}用户”,则生成的四川省省级用户的显示名为“四川省用户”。
- 初始密码:生成的用户的初始密码
- 户分组关系:生成的用户所拥有的初始权限。
如果需要生成的用户已经存在,则此操作只会将此次新增的用户分组关系附加到旧用户上。
注册用户信息浏览界面
- 查看注册信息:查看用户注册时提交的信息
- 生成用户:根据用户注册信息打开用户信息界面创建用户,管理员需要为注册用户额外指定权限等。
- 删除注册信息:删除当前注册信息。
已经审核通过的注册信息不显示在列表中,但是会在导出excel 时导出。
角色管理
系统实现了基于角色的权限管理模型,用户组即对应于模型中角色对象。角色管理功能在【系统管理】功能分组中。其包含以下入口菜单:
- 新建角色:打开用户组信息界面创建新的用户组
- 浏览角色:打开用户组信息浏览界面
一个用户可以拥有多个角色,多个角色之间的关系式或的关系,即用户拥有所有用户组指定的功能权限的全集,所有数据权限指定的合集。
用户组信息界面
角色信息界面的属性如下:
- 用户组名:名字
- 用户组描述:描述信息
- 共享级别:默认用户创建后对其他用户不可见,但是勾选了此处够将向用户管理
- 辖区内的其他的指定级别的用户开放此用户组信息。
- 允许的操作:允许用户操作的功能.
- 应用程序:选择调查任务内的发布的问卷和管理模块
- 操作:指定的应用程序内的可控制的操作列表,允许操作则勾选即可
- 用户数据隔离:如果该问卷启用了“追踪操作”特性,可在此处选择:
- 数据不共享:用户只能查看、编辑、删除自己录入数据
- 只读共享:用户能浏览、查看所有权限内的数据,但是只能修改和编辑自己录入的数据
- 读写共享:用户只能查看、编辑、删除所有权限内的数据
- 数据权限授权:对受权限控制的字段的数据权限进行授权:需要注意,默认情况下地区编码和机构编码都是按照用户访问辖区内的数据来控制,用户不需要特殊控制。
- 应用程序:选择调查任务内的发布的问卷和管理模块
- 数据表字段:选定的调查问卷内授权控制的字段列表,选择一个
- 权限授权:授权的值。允许使用“操作符.值”的方式设置复杂的数据查询逻辑,支持的操作符有 “>”,“\<”,“LIKE”,“=”等,如 LIKE.11*表示所有以11 开头的数据。同时可以使”\${expression}”方式的脚本,脚本内可以操作用户、问卷、和调查表信息
角色浏览界面
用户只能修改和删除自己创建的用户组。用户可以浏览到别的用户共享出来的用户组。
简单报表定制
系统内支持简单的报表定制功能,遵循的原则还是专业人员设计报表,其他用户直接查看定制出的报表查看结果。设计出的报表都是根据当前系统内的数据实时计算出的结果。除用户自己定制出的报表外,设计出的报表需要额外的授权才能访问。
简单报表定制功能在【系统管理】功能分组中。其包含以下入口菜单:
- 新建简单报表:打开简单报表信息界面,设计新的报表
- 浏览简单报表:打开简单报表浏览界面,可以修改、删除报表。
用户只能修改和删除自己设计的报表,但是可以查看别人设计的报表。用户在查看报表时,直报查看到在自己的数据权限范围内的数据。
简单报表信息界面
简单报表信息界面的属性如下:
- 报表名:报表的名字,同时也是报表菜单项的名字
- 业务规则:当前调查任务的所有调查问卷主表的名字,需要选择一个用户进行统计的调
- 查表。
- 查询条件:选定的调查表里用于数据查询过滤的字段。
- 数值列:作为报表的统计项的定义:
- 列名:统计指标的显示名
- 字段:用以计算的调查问卷的字段(变量)
- 计算方法:
- 求和:求取所有符合条件的数据的和
- 计次:计算所有符合条件的数据出现的次数
- 最大值:计算所有符合条件的数据出现的最大数
- 最小值:计算所有符合条件的数据出现的最小数
- 求和:求取所有符合条件的数据的和
- 只计算机唯一值:如果数值已经出现过则不再参与计算
- 分组列:用于展开的选项的定义:
- 列名:显示的名字
- 字段:用于分组的字段。在调查问卷中所有单项选择、下拉选择、地区编码、机构编码、时间/日期都可以作为分组列,各类型字段展开规则:
- 单项选择:以其数据字典的数据项展开
- 下拉选择:以其数据字典的数据项展开
- 地区编码:以查询字段中的选中的地区编码展开,如果查询字段中没有地区编码,则以用户的级别展开
- 机构编码:和地区编码类似,只不过在区县级列出所有的机构而非乡镇级地区编码
- 时间/日期:小于一个月的日期以日展开,小于一年的范围以月为单位展开,其他以年为单位展开。
- 展开方向:
- 横向:横向的展开各项数值列
- 纵向:纵向展开各项数值列
- 数据约束:除去用户的数据权限外,作用于此报表结果计算上的额外的数据约束。数据约束的定义同数据权限定义
简单报表浏览界面
用户只能修改和删除自己设计的报表,但是可以查看别人设计的报表。
查看报表结果界面
所有用户可以查看的报表都在【统计分析】菜单分组中的【统计分析】菜单下。用户直接点击简单报表的名称即可在右边工作区打开报表结果查看界面。
报表结果查看界面的上方时查询条件区域,显示用户在设计问卷时勾选的查询字段。需要注意所有数据类型是数字和日期的数据都可以按范围查询。查询区域的下方则是结果显示区域,用户可以点击【导出excel】按钮导出报表结果。
数据表比对
为支持传统的双录入核查等功能,系统内置了一个数据表对比的功能,界面下图所示:
查询条件区各个字段的意义及作用如下:
- 源数据表:用于对比的数据表源表
- 目标数据表:用于对比的数据表目标表
- 关联匹配字段:用于判断两个表中的数据是不是为同一条数据的字段,此处指列出两个调查表都有的同名的字段。常用的各类编号,对于人的信息则可以指定身份证号等。
- 比较值不同的字段:用于比较两个调查表的数据是否一致的字段,此处指列出两个调查表都有的同名的字段。
- 数据范围:
- 只列出源表和目标表都有匹配值且相等的数据:在源表和目标表里关联匹配字段值都存在的数据才纳入对比
- 列出源表有而目标表没有的数据:在源表里有的而不管目标表里有没有的数据都纳入对比
- 列出目标表有而源表没有的数据:在目标表里有的而不管源表里有没有的数据都纳入对比
数据列表中各个字段的意义如下:
- 源表主键值:当前记录的源表的主键值
- 目标表主键值:当前记录的目标表的主键值
- 关联匹配字段值:在关联匹配字段中指定的各个字段在当前记录的值
- 值不同字段:当前记录中不同值不同的字段,以逗号分隔。
为实现双录入核查,请在发布调查任务时将同一个调查问卷发布到不同【问卷分组】,以便在进行数据核查时方便区分调查表。
调查问卷定制管理模块参考
本章节介绍系统自动的调查问卷定制管理模块的功能。
定制管理
定制管理主要包含组件的设计、调查问卷模板的设计以及调查问卷的管理功能。
调查问卷管理
调查问卷管理提供了根据调查问卷模板生成调查问卷、导入epidata 文件生成调查问卷以及浏览调查问卷的功能。
导入epidata问卷
导入epidata 问卷只支持一次导入一个rec 文件,不支持Epidata 的RELATE 命令带来的多个rec 文件关联的情况。并且每个Rec 文件只支持导入其直接关联的CHK 文件,不知道INCLUDE 的关联命令。CHK 脚本的支持情况请参见脚本模块的说明。
导入epidata 问卷界面属性:
- 调查问卷名:问卷显示名
- 调查问卷描述:问卷的文字性描述
- Epidata REC 文件:Epidata 文件的REC 文件,只会导入数据库机构和问卷样式,不会导入数据
- Epidata CHK 文件:与Rec 文件关联的脚本文件,支持LABEL 等数据字典定义。
- 问卷类型:指定最终生成的问卷的样式,默认为【Epidata 问卷】。选择【系统定制问卷】时,不仅会将导入的问卷生成定制问卷的列表编辑样式,同时也会加上用户操作追踪字段。
- 共享:选中则别人也可以使用此问卷并且发布成调查任务
新建调查问卷
从调查问卷模板中选中一个模板并且将其创建成调查问卷。用户只能使用调查问卷发布到调查任务中。
新建调查问卷界面属性:
- 调查问卷名:问卷显示名
- 调查问卷描述:问卷的文字性描述
- 模板ID:选择一个调查问卷模板
- 共享:选中则别人也可以使用此问卷并且发布成调查任务
浏览调查问卷
用户可以浏览自己创建和的和别人共享出来的调查问卷。用户只能删除自己创建的调查问卷。
数据操作按钮:
- 点击【预览】按钮,系统打开一个新窗口按照实际的效果运行调查问卷,用户可以对设计的问卷进行测试。每次打开调查预览界面,以前录入的数据都会被清空。
- 点击【打印】,系统打开调查问卷打印界面。
- 点击【导出】按钮,可以调查问卷导出为xml。导出的文件可以通过列表上方的【导入】
- 按钮导入。
调查问卷打印
页面打开后,请先点击左上角的问卷名称前面的单选框,系统会在下面显示出选中的表单。比表单样子会表单所有控件都显示的样子,并不会触发命令从而影响布局。如果使用表
间关联控件并且关联类型为主子表,一个调查问卷中可能包含多个表单。
待表单显示完成并确认无误后,请点击右上角的【打印】按钮直接打印。如果需要设置打印样式,请修改浏览器的打印设置。
调查问卷模板管理
在此处可以新增、修改、删除、浏览调查问卷模板,并且可以在别的用户共享出来的调查问卷模板的基础上对其进行修改并且保存为自己的调查问卷模板。
新建调查问卷模板
点击【新建调查问卷模板】,打开调查问卷模板的设计界面。
调查问卷的设计的详细请参见问卷设计的相关说明章节。
浏览调查问卷模板
用户可以浏览自己创建和的和别人共享出来的调查问卷模板。用户只能删除自己创建的调查问卷模板。
问卷模板操作按钮:
- 点击【预览】按钮,系统打开一个新窗口按照实际的效果运行调查问卷模板,用户可以对设计的调查问卷模板进行测试。每次打开调查问卷模板预览界面,以前录入的数据都会被清空。
- 点击【打印】,系统打开调查问卷模板打印界面。操作方法同调查问卷打印。
- 点击【导出】按钮,可以调查问卷模板的定义导出为xml。导出的文件可以通过列表上方的【导入】按钮导入。
组件管理
用户可以新建、修改、删除、浏览组件。
新建组件
点击【新建组件】,打开组件的设计界面。
调查问卷的设计的详细请参见问卷设计的相关说明章节。
浏览组件
用户只能修改、删除自己创建的组件,可以浏览和使用别人共享出来的组件。
点击【导出】按钮,可以组件的定义导出为xml。导出的文件可以通过列表上方的【导入】按钮导入。
发布管理
发布管理主要包含对调查任务的发布、修改等调查任务相关的管理功能。
调查任务管理
调查任务的管理功能主要用户使用已经创建好的调查问卷发布成调查任务。用户可以为调查任务指定用户和权限管理模型等。
新建调查任务
- 调查任务名:名字,显示于登录界面和主菜单上
- 任务短网址:此调查任务的特定的URL路径。
- 描述:文字性描述
- 权限管理:指定调查任务所使用的权限及用户管理模式。值可以为空,为空时用户可以直接访问调查问卷并且使用所有功能。
- 系统内置(共享用户):创建的调查任务和问卷定制管理模块共享用户,但是使用此调查任务需要额外授权。注意:用户创建此调查任务,但是不是此调查任务的调查任务管理员。
- 系统内置(单独用户):使用问卷定制管理模块相同的管理模型,但是需要重新建立用户。创建此调查任务的用户是此调查任务的调查任务管理员,可以直接登录到调查任务里进行用户管理等工作。
- 启用匿名用户:【权限管理】选择为【系统内置(单独用户)】时可见。如果启用匿名用户,则所有未登录的用户都默认以系统建立的【匿名用户】账号登录系统。调查任务管理员可以通过对【匿名用户】账户的权限管理来控制未登录系统的用户的权限:
- 禁用匿名用户:不能使用匿名账户访问此调查任务,所有未登录的用户访问都会跳转到登录界面。
- 启用匿名用户:启用匿名账户访问此调查任务,所有未登录的用户访问都会默认以匿名账户登录。
- 启用匿名用户但不允许登录:直接访问问卷功能时可以使用匿名账号登录访问,但是访问调查任务主页时需要以其他账户登录后才能访问。
- 注册用户自动审核: 在【权限管理】选择【单独用户】时此选项可用。勾选之后用户在注册用户之后,无需系统管理员审核即可自动创建新用户,并为新用户关联到用户组【自动审核用户用户组】。
- 任务开始日期:如果输入了日期,则小于此日期此调查任务不可访问。
- 任务借宿日期:如果输入了日期,则大于此日期此调查任务不可访问。
- 操作手册:如上传了操作手册文件,调查任务用户可以在调查任务里主菜单上下载。
- 调查任务所属问卷:调查任务里包含的调查问卷
- 问卷ID:点击选择需要发布的调查问卷
- 问卷分组:问卷的分组,如双录入核查等需要为问卷分配不同的分组名。问卷分组
- 在调查任务的主界面显示为不同的主菜单项。默认为数据采集。
- 视图映射:设置调查任务的数据视图映射,如果不设置,即使用系统默认的数据视图映射,即问卷定制管理模块的数据视图设置。
- 数据视图ID:选择一种需要设置的数据视图
- 数据字典ID:列出了所有实现了此数据试图的数据字典,选择一项即可。
浏览调查任务
用户只能浏览自己发布的调查任务。
点击【打开调查任务】按钮,用户可以打开调查任务的登录界面。用户可以将此网址发布给需要登录的用户。
点击【修改】按钮,进入调查任务的修改界面,用户可以修改调查任务的基本信息,或者升级、替换调查问卷。
点击【导入数据】按钮,打开调查任务的数据导入界面。点击【导出】按钮可以将调查任务的问卷和数据都导出为一个文件,再在其他地方进行导入操作。导出文件里不包含用户和授权信息。
点击页面上部的【导入】按钮,可以导入一个调查任务的文件为一个新的调查任务。
修改调查任务基本信息
在修改基本信息界面中只能修改调查任务名、描述、启用匿名用户、任务开始日期、任务结束日期、操作手册、问卷分组和视图映射等项。
页面样式:可以指定调查任务使用某个预置的显示样式。
调查数据ID 起始值:填入一个数字,则调查任务中所有的调查问卷的新建的数据的ID
将以此值开始。此功能为每个调查任务的部署设立分段ID。
变更通知:当问卷内的数据发生变化时,系统会发送一个通知给此联系信息(当前仅支持电子邮件通知)。
欢迎页类型:登录进调查任务后默认显示的页面:
- 讨论区
- 网页
- 统计摘要:显示自定义的dashboard,dashboard的内容根据摘要数字、仪表盘进度、摘要图表。其中仪表盘进度指定的问卷的分母取自问卷设定处的“期望数据量”属性,摘要图表取自调查任务中创建的报表。
- 数据操作:可以指定浏览浏览或者录入某个问卷数据。
在每个调查问卷ID 上点击【升级问卷】或【替换问卷】按钮,系统将打开升级/替换问卷界面。
升级/替换问卷
升级和替换问卷操作类似,都是使用新的问卷替换掉调查问卷中的旧的问卷。升级问卷功能会尝试将旧的数据转到新的调查问卷中,这要求新的问卷在数据定义上必须和旧的问卷一致。比如不能出现旧问卷中字段可以为空并且在已有数据中也有空值存在;或者新加了一个必填字段等情况。
字典绑定
将调查任务内的某个问卷给任务内的某个问卷的某个空间做数据字典使用。
界面属性:
- 调查问卷字段:为哪个字段/控件指定字典
- 数据字典:指定哪个调查任务内的问卷或者系统字典作为字段/控件的使用的字典
- 字典存储字段:指定的哪个字段作为字典的存储的值
- 字典显示字段:指定的哪个字段作为字典的存储的值
- 字典查询字段:指定的哪个字段作为字典的显示值
- 编码规则:仅当控件为地区编码或者机构编码时有效,可指定编码规则。
导入调查任务
数据文件:必须是在调查任务浏览界面处使用导出功能导出的文件。
导入数据:如果勾选了则会将数据文件中的数据(如果有)导入。
导入数据
数据文件必须是在调查任务浏览界面处使用导出功能导出的文件。
系统管理
和其他调查任务不同的是,在问卷定制管理模块中,系统管理多出了数据试图管理、系统字段管理和系统公告管理三个功能。
数据视图管理
数据试图管理可以浏览系统里所有的数据试图及其默认的映射的数据字典,并且修改数据试图默认映射的数据字典。
问卷定制管理模块只能使用默认的数据视图映射。调查任务可以自行设定特殊的数据视图映射,如果未设定则使用系统默认的数据试图映射,即问卷定制管理模块的数据试图映射。
浏览数据试图
系统默认支持三个数据视图,其中地区编码控件支持使用地区编码和国家统计局区划代
码,机构编码控件支持使用机构编码视图。
- 地区编码
- 国家统计局区划代码
- 机构编码
除此之外,在设计数据字典时还有一个数据视图叫【文本框查询录入】。此视图无固定结构且不需要映射设置,所有不在此列出。
点击【修改】进入修改数据试图映射界面。
修改数据试图映射
修改数据试图映射界面会列出数据试图的具体的字段定义,所有有实现了此数据试图的数据字典都必须实现相同字段编码和名称以及数据类型的字段。
用户可以修改【默认数据字典项】,此处只列出了实现了此数据视图的数据字典,然后点击保存即可完成修改操作。
对于地区编码和国家统计局区划代码数据视图,中心点坐标(geocenter)字段是可选
的字段,其值为逗号分隔的经纬度值。对于机构编码数据试图,机构级别(orglevel)目前
仅支持国家级、省级、市级、县级和乡级五种单位级别,编码值依次为0、1、2、3、4。
系统字典管理
数据字典主要用户标准化数据的统一管理。系统管理员可以将性别、名族、地区编码等标准化数据以数据字典的形式预先维护好,即省去了问卷定制用户的自行维护这些数据的麻烦,同时也避免了各个问卷之间由于数据字典的不同而带来的数据不兼容的问题。
数据字典管理提供了新建、修改、删除、浏览、管理数据字典数据、导入数据等功能。
新建数据字典
点击【新建数据字典】,打开数据字典的设计界面。
调查问卷的设计的详细请参见问卷设计的相关说明章节。
浏览数据字典
用户只能修改、删除自己创建的数据字典。
点击修改按钮可以打开问卷设计界面,用户可以修改数据字典的结构定义。需要注意,如果修改了数据字典,则以前建立的数据将会被清空。
点击【导出】按钮可以导出数据字典的定义文件为xml 文件。
点击【编辑数据】按钮,可以打开数据字典的数据列表界面。在数据字典的数据列表界面,点击【新增】按钮可以加入新数据,也可以修改、删除、导出数据字典的数据。
导入数据
数据导入功能支持导入csv 文件或者zip 压缩的csv 文件。在zip 文件里的csv 文件文件名必须为数据字典的名称。建议使用数据字典的列表上的【导出excel】功能导出文件,然后将数据写入对应的列,然后再将此文件上传导入。
如果勾选了【是否清空原有数据】,则导入前会将以前的数据清空。
系统公告管理
在公告区的上方有系统公告的浏览区。系统公告的发布和管理是在此功能处提供的。
新建系统公告
用户可以在公告上提交相关文件供用户下载。
如果填写了【有效截止日期】,则当当前日期大于此日期后,公告栏即不再显示此公告。
浏览系统公告
用户可以浏览所有公告,包含已经失效的公告。
控件定制属性参考
问卷类属性
调查问卷模板属性
- 模板编号:模板的编号,用于在数据库创建表和脚本里访问使用
- 模板名:模板额显示名
- 模板描述:文字性描述
- 主键名:主键的显示名
- 主键可查询:勾选则在列表界面出现主键的查询条件
- 分页录入:是否启用分页式录入。如果启用用分页式录入,则在数据录入时,调查表的每一行都显示为单独的一页,用户可以通过上一页、下一页按钮进行页面之间的导航。定制用户也可以通过在页面以脚本控制跳转到某控件,则该控件所在的页会自动显示出来。如果用户需要在一行内显示多行内容,可以使用多行容器、矩阵容器等容器类控件。
- 样式:问卷级的样式设置。默认显示基础设置,可以通过后面的小方框按钮展开全部设置。
- 文本列宽:设置调查问卷数据录入界面名称列的宽度,可以使百分比,也是数字(单位为像素)。默认宽度为25%。
- 数据列表样式设置:设置数据在列表时额外的样式设置,以第一条起作用的规则为主。
- 行匹配规则:范围逻辑值的脚本表达式,可以访问调查问卷的所有的字段,如果返回值为真,则以此样式作为输出样式。如果规则为空,则默认为所有数据都符合。
- 展示样式:可以设计文本的大小、字体等样式
- 文本行高:调查问卷录入界面中每行的高度,可以为百分比,表示和默认数值之间的关系。也可以为数字,单位为像素。默认为30。
- 逻辑删除:如果勾选则用户在删除数据时并非直接删除数据,而将其状态设置为已删除状态。默认列表查询时不可见,但导出excel 时可以导出。
- 查询删除状态:【逻辑删除】属性勾选时可见,如果勾选则在查询条件区增加一个对查询状态的查询。
- 允许的操作:对当前调查问卷的数据支持的操作:新建、修改、删除、查看、浏览、审核、导出、打印、暂存,勾选则该功能在调查问卷中可见
- 新建功能名:【允许的操作】属性中【新建】项勾选时可见,可以使用逗号分隔的字符串创建多个修改功能,同时配合脚本完成简单的流程操作。
- 修改功能名:【允许的操作】属性中【修改】项勾选时可见,可以使用逗号分隔的字符串创建多个修改功能,同时配合脚本完成简单的流程操作。
- 删除功能名:【允许的操作】属性中【删除】项勾选时可见
- 查看功能名:【允许的操作】属性中【查看】项勾选时可见,可以使用逗号分隔的字符串创建多个修改功能,同时配合脚本完成简单的流程操作。
- 查询功能名:【允许的操作】属性中【查询】项勾选时可见
- 审核功能名:【允许的操作】属性中【审核】项勾选时可见,可以使用逗号分隔的字符串创建多个修改功能,同时配合脚本完成简单的流程操作。
- 上报功能名: 【允许的操作】属性中【上报】项勾选时可见,上报功能是指根据指定的字段的值新增或者编辑数据,如根据字典是用户和日期,则默认以用户和当天日期进行判断,如果上报过则修改已经存在的数据。
- 上报依据字段:上报功能中数据的确认字段的字段编号,多个编号之间以英文逗号分隔,可以使用user\$id指代填报数据的用户的ID,user\$name指代填报的数据的用户的名称
- 查询审核状态:勾选则可以再列表的查询区中增加对审核状态的查询
- 记录操作痕迹:勾选时则会增加新建用户ID、新建用户名、新建时间、最后更新用户id,最后更新用户名、最后更新时间等字段;如果启用了审核功能,则会增加审核用户id,审核用户名、审核时间等字段;如果启用了逻辑删除功能,则会增加删除用户id,删除用户名、删除时间等字段。这些字段都会在用户操作数据自动填充,并且在导出excel 时导出。
- 查询操作时间:【记录操作痕迹】勾选时可见。如果勾选在查询条件区增加【记录操作痕迹】勾选时各个时间的查询。
- 共享:是否可以让他人可见。其他人只能查看或者以此新建一个调查问卷模板,不能修改此调查问卷模板。
- 脚本:问卷级的脚本
- 组合查询:当前支持对地区编码和日期录入控件的将多个控件组合成一个查询条件的组合选择式查询。
- 唯一性限制:
- 唯一限制字段,进行唯一判断的多个字段编号,多个编号之间以英文逗号分隔,可以使用user\$id指代填报数据的用户的ID,user\$name指代填报的数据的用户的名称
- 错误消息:新填报的数据唯一此唯一性约束时,系统提示的错误消息。
- 手机优化:开启此按钮之后,在手机上打开数据填报界面时,文本和控件默认会转换成两行展示。
组件属性
- 组件名: 组件名
- 组件描述:文字性描述
- 共享:是否可以让他人可见。其他人只能查看或者以此新建一个组件,不能修改此组件。
数据字典属性
- 字典编号:模板的编号,用于在数据库创建表和脚本里访问使用
- 字典名:显示名
- 字典描述:文字性描述
- 主键名:主键的显示名
- 主键可查询: 是否在列表界面增加对主键的查询条件
- 数据视图:当前数据字典支持的数据试图:
- 文本框查询录入:用于文本框的特殊数据字典
- 地区编码:用于地区编码控件的特殊字典
- 统计局地区编码:用于地区编码控件的特殊字典
- 机构编码:用于机构编码的特殊数据字典
- 查询字段:数据视图选择为文本框查询录入时可见。指定用户输入的查询条件用户哪些字段的查询。
- 编码规则:当数据试图选择为地区编码时可见。编码形式可以有两种方式,
- 全数字的组合,每个数字依次表示每段(每级)的编码的长度,如果标准的中国标准的8 位地区编码的编码格式为2222。在此模式下,用00 表示为上级编码在此级缺少的值,如省级编码在市级的编码则为00。
- 小数点和数字的组合形式,每个数字仍然是依次表示每段(每级)的编码的长度,但是和第一种模式不同的是如果高级的编码在低级的段上值可以为空,且每段之间用小数点分隔。如编码格式为2.2.2,则可能存在的编码为11、11.11、和11.11.11。
- 存储字段:保存在调查表中的值的字段
- 显示字段:查看和导出excel 时显示的值的字段
- 共享:是否可以让他人可见。其他人只能查看或者以此新建一个数据字典,不能修改数据字典。
控件属性
此处列出的是所有属性的参考。需要注意,当控件出现在容器类控件的内部时,其某些属性可能不可见,编辑其值也不产生任何作用。
多行表头的设计
新版系统在矩阵容器和子表容器的表头上支持多行模式,即表头显示为多行内容。示例如下所示:
要使用多行模式,在矩阵容器和子表容器的直接子控件的名称上进行特殊的设定即可实现。控件的名称以英文的竖线分割,每个竖线即分割为一层表头,相同的表头会合并。如:
矩阵容器的是否食用和C1为一个文本标签的内容生成:是/否食用||C1
矩阵容器的食用次数分别为三个文本标签生成:
食用次数|次/天|C2
食用次数|次/周|C3
食用次数|次/月|C3
子表容易的录入1和录入2的实际的名称分别为:
1|录入1
1|录入2
通用属性
- 字段编号:该模板在数据库内部生成的字段的名字,请使用字母开头且只能包含字母、数字和下划线,最长40 字符。请不要使用order\from 等数据库的关键字。在脚本中可以使用此编号直接操作此控件并且获得其值。
- 显示名:控件显示的名字,用于默认的文件左侧显示信息和导出excel 等。
- 字段长度:此控件最多能容纳的数据的长度。
- 样式:设置控件在列表、录入表单等处的字体大小、颜色等样式。默认显示基础设置,可以通过后面的小方框按钮展开全部设置。
- 显示文本:在默认的问卷布局中,在数据录入左侧显示该控件的显示名。如果不勾选则直接显示为数据录入控件并不在左侧显示控件的显示名。
- 值可以空:是否必填,不勾选为必填字段
- 查询字段:如勾选,则在数据管理界面在此控件作为数据过滤条件。
- 是否列表字段:是否在列表列出,勾选为列出
- 列表宽度:【是否列表字段】勾选时可见。如在数据列表中列出,则列表显示的宽度。支持录入百分比,如”10%”,如不带百分比则默认单位为像素。
- 值唯一:勾选则不允许重复录入。
- 允许编辑:不勾选则控件为不可编辑状态
- 前置文本:在数据录入控件的前方显示的提示信息
- 后置文本:在数据录入控件的后方显示的提示信息
- 数据字典:该控件使用的数据字典,可以使用系统内预置的数据字典,也可以选取问卷内的设置好的问卷字典,也可以自行为该控件定义数据字典。如果在此选择为【自定义字典】时,请在属性编辑区下方的自定义字典区设置字典的详细内容。
- 联动项目:为机构编码控件指定管理的地区控件的编号。
- 提示信息:在录入调查问卷数据时,当用户将鼠标防止到控件上时,系统弹出的提示信息。如果用户未设定,则默认提示控件名称。
- 脚本:可以使用脚本编辑器编辑详细的脚本。此处为控件级脚本,支持 BEFROE/AFTERENTRY 事件。
当控件作为调查表的直接子控件,或者作为多行容器的子控件时,在控件的左侧会显示出控件的名称。该名称是一个文本标签控件,其编号为控件的控件编号加上”\$NAME”。举例来说,如果想要隐藏掉Field_1 名称,可以使用HIDE Field_1\$NAME 的命令。
如果在控件的属性中设置了前置文本或者后置文本,在最终生成的问卷中会为前置文本和后置文本创建一个文本标签控件(前置文本的文本标签控件的控件编号为控件的控件编号加上”\$PREFIX”,后置文本的文本标签控件的控件编号为控件的控件编号加上”\$SUFFIX”),并且使用单行容器将控件本身和生成的文本标签封装在一起(单行容器的控件编号为控件的控件编号加上”\$BLOCK”)。在使用HIDE 等命令操作控件时,需要根据实际的需要指定实际的控件编号。例如当控件Field_1 的有前置文本或者后置文本时,想要隐藏掉Field_1 及其相关的所有内容,需要使用 HIDE Field_1\$BLOCK 这个命令。
各控件特性属性
此处列出所有控件不包含在公共属性中的特性属性及其作用。
文本标签
文本标签的【显示名】属性编辑框时富文本编辑器。
文本标签在脚本中只可用于控制显示状态,不能用于获取值。
可以在文本标签控件的内容中设置输出表达式值,表达式值以两个大括号包含。如下面的内容就是分别输出当前在子表控件的第几行和总共多少行。脚本的执行通MONITOR命令。
按钮
按钮控件主要供用户提供一个可点击触发执行特定脚本的控件。
- 按钮样式:几种常见的样式,显示不同的前景或者背景色
- 图标:内置了常见的图片,选中后可在按钮上显示此图标
- 小按钮:勾选后按钮显示为小一号的样式
- 文字按钮:勾选后按钮显示为类似链接的样式。
文本框
- 数据类型:文本框内可以输入的数据的类型
- 小数位数:数据类型为小数时可见。小数点后数字的位数。
- 文本行数:数据类型为自由文本时可见,如果输入值大于1 则显示为多行文本框控件。
- 格式:数据类型为自由文本时可见。通过正则表达式的形式约束字符串的格式。可以在系统字典类的TEXT_FORMAT 字典里新增选项。
- 保密字段:如果勾选了,则只有数据录入者和调查任务管理员可以查看已经录入的数据里此字段的值。
- 自编码格式:自动生成编码的编码模式,编码模式为支持静态内容和动态内容,其中动态内容以大括号{}包含起来,支持三类动态内容:
- 变量值,以@开头后面跟上变量名,如{@Field_1}
- 日期相关的值,如年月日时分秒等,其中y\m\d\h\w\n\s\l分别代表年月日时周分秒毫秒,如取日期的格式为{yyyymmdd}
- 顺序值,从1开始的值,以#表示位数,如要表示四位整数,则为{####}
如常见的编码是 “国{yyyymmdd}{####}”,则生成的编码为 国202002020001.
日期录入
格式:日期显示的格式。在中国一般使用yyyy-MM-dd 的格式。其中yyyy 表示4 位数
公元年数,MM 表示从01 到12 的2 位的月份,dd 则表示从01 到最大31 年的月内日期。新版改成了下拉选择,可以组合选择年月时分秒的输入样式。
下拉选择
联动项目:可以输入当前问卷多选控件或者列表选择控件的字段编号。则被指定的控件的选中项左为此控件的数据字典。
是否选择
- 选中时显示:列出所有调查表的字段,如果勾选则当此控件处于选中状态时其所处的可见。
- 未选中时显示:列出所有调查表的字段,如果勾选则当此控件处于未选中状态时其所处的行可见。
多项选择
联动项目:可以输入当前问卷多选控件或者列表选择控件的字段编号。则被指定的控件的选中项左为此控件的数据字典。
单项选择
联动项目:可以输入当前问卷多选控件或者列表选择控件的字段编号。则被指定的控件的选中项左为此控件的数据字典。
列表选择
- 宽度:控件的显示的宽度,可以为百分比,表示其占父控件显示宽度的百分比;或者输入纯数字,单位为像素。
- 高度:控件的显示的高度,可以为百分比,表示其占父控件显示高度的百分比;或者输入纯数字,单位为像素。
- 联动项目:可以输入当前问卷多选控件或者列表选择控件的字段编号。则被指定的控件的选中项左为此控件的数据字典
文件上传
无特殊属性。
地区编码
- 级联样式:勾选后按钮呈现默认出现几个下拉框的样式
最低级别:从1开始,决定出现几个下拉框(几级)。
数据字典处只列出系统内所有实现了地区编码数据视图的数据字典。
机构编码
- 数据字典:处只列出系统内所有实现了机构编码数据视图的数据字典。
- 显示模式:机构编码控件和地区编码控件关联显示的方式。
- 按所属县区:指对机构进行属地化管理,管理单位是区县。用户在关联的地区控件中选择某一区县,就可以看到该区县的机构。
- 按机构等级:按照用户选中的地区级别加载机构。目前系统支持国家级、省级、市级、县级和乡级五种单位级别,编码值依次为0、1、2、3、4。
- 联动项目:必须是问卷内地区编码控件的字段编号。
地图坐标
- 地图服务:选择在线服务提供商,中国用户建议选择百度地图或者搜狗地图。
- 联动项目:必须是地区编码字段编号。当被关联的地区编码控件所使用的数据字典包含geocenter 属性时,打开地图时可以直接定位到选中的地区编码的坐标值。
表间关联
- 关联类型:和其他问卷的关联方式:
- 主子表:将关联的问卷包含在此问卷中,提供此控件打开其操作界面
- 关联表:不将将关联的问卷包含在此问卷中,而是在发布后的调查任务调用调查任务中的问卷。
- 关联模板:此控件关联的其他调查问卷模板的ID。
- 关联关系:本问卷的数据和关联问卷的数据的关联关系:
- 一对一:本问卷的数据只能关联到关联问卷中的一条数据。
- 一对多:本问卷的数据只能关联到关联问卷中的0到多条数据。
- 复制数据:在关联表且一对一关联可见,只在指定关联数据后,将选中的数据的其他属性(仅包含在列表中的属性)复制给当前问卷中的同名的属性。
TAB方式显示: 本问卷和关联问卷以tab的方式显示。如下图所示:
显示摘要:在通过此控件关联的子表中,显示当前设计的表的摘要信息。摘要信息的判断分两步进行:如果在当前问卷里有字段编号名叫当前模板的ID+“summary”或者就是叫“summary”的控件,将此控件的信息显示在关联的表单上,否则把列表信息显示在关联的模板界面上。效果如下图,图中黄色的部分就是显示的摘要信息:
通过表间关联控件录入的数据,且选择关联类型是关联表且关联关系是一对一时,在空间上默认显示的内容是如下规则寻找:如果关联的表单里有字段编号是以”_dname”结尾的控件,默认显示它的值;如果关联的表单里有字段编号是以”_name”结尾的控件,默认显示它的值;如果关联的表单里有字段编号是以”name”结尾的控件,默认显示它的值。
矩阵容器
- 无边框:勾选时则在调查问卷内该矩阵容器的不显示边框
- 显示列名:是否输出列名。
- 列名:通过此子表控件的行数指定矩阵容器显示多少列
- 显示名:当显示列名勾选时显示的名称,可以不填写。
- 列表宽度:此列所占的宽度。可以为百分比,表示其占整个矩阵控件显示宽度的百分比;或者输入纯数字,单位为像素
- 显示行名:是否输出行名
- 行名:过此子表控件的行数指定矩阵容器显示多少行
- 显示名:当显示行名勾选时显示的名称,可以不填写。
- 列表宽度:整个矩阵控件显示的宽度。可以为百分比,表示其占父控件显示高度的百分比;或者输入纯数字,单位为像素。
单行容器
无特殊属性。
多行容器
- 可折叠:是否显示为可折叠的状态。勾选了会显示个标题栏,点击可以折叠/展开内容,用于节省页面空间。
- 默认折叠:是否默认呈折叠状态。
- 标题:标题栏上显示的文本
子表容器
- 显示标题:不勾选则生成的子表控件上不会出现标题栏,因此也没有【操作】栏上的【添加按钮】,可以通过脚本的ADDRECORD 命令新增行。
- 显示操作:不勾选时不显示最右边的【操作】一列,即页面上无【新增】和每行数据后面的【删除】按钮。可以通过脚本的ADDRECORD 、REMOVERECORD,COPYRECORD 命令以及RECORDCOUNT 函数等来控制子表控件数据行。CLEAR命令作用于此控件上是会清除所有行数据。
- 操作:添加、删除、复制、清除四种操作任意选择
- 横向模式:子表控件默认为行模式,即多加一条数据会多出一行。勾选此项后会改为列模式,即多加一条数据会多出一列。
- 各列宽度:以逗号分割的各列的宽度。
问卷脚本(CHK)参考
在系统中中,为了兼容Epidata 软件生成的Rec 文件和Chk 文件,在Epidata 软件的Chk 脚本的基础之上,适应Web 系统的特性,提供了一套兼容chk 脚本的脚本引擎。用户可以像在Epidata 软件中编辑chk 脚本一样,在系统中为调查表和控件设置各个脚本。脚本的录入和编辑请参见问卷定制的相关章节。
本章将介绍脚本的技术信息,并且列出脚本支持的所有特性。
在系统中,除去系统内置的特殊变量外,脚本的编写是不区分大小写的。
在本章节中,一般以Field_开头的都是假定在脚本代码所在的调查问卷里定义好的一个特定类型的控件。{字段}表示这个一个调查问卷内存在的字段编号,{表达式}表示一个值表达式。
基本概念
在定制调查问卷时编写的,在数据录入用户在录入数据时被解释执行的。因此在定制问卷时编写的脚本并不能看到实际的效果,需要通过预览来验证在实际运行时调查问卷结合脚本执行的实际效果。
通常来说,脚本也是一门简化的编程语言。在流行病学动态数据采集平台中编写脚本之前,最好先掌握以下几个基本概念。
基本数据类型
在系统中的脚本引擎中,每个变量(控件的数据)都是类型的,比如在设计文本框控件时,可以选择文本框控件内保存的数据的类型。在系统中的脚本引擎中,只有以下四种数据类型:
- 整数
- 小数(浮点数)
- 逻辑值(Boolean 类型)
- 字符串
在Epidata 软件中,将日期作为小数处理,将其换算为自1899 年12 月31 日以来的天数。在系统的脚本引擎中为了和Epidata 的脚本保持兼容,对日期类型也做类似的处理。
各个数据类型的值是可以相互转换的,在下面函数部分会有专门的类型转换函数的介绍。
8.1.2. 命令
系统脚本引擎中,每个起作用的代码块都作为一个命令的形式存在的。通常情况下,一个标准的代码块是以命令名开头,后面跟以参数和子命令,如:
LET Field_1=1
在这个代码块中,命令是LET。LET 命令式为变量复制的作用,通常是可以省略的。这个代码块的意义是给变量赋值为整数1。
有一个类型的命令的代码行数超过了一行,则需要以END 作为代码块的结束。如:
JUMPS
1 Field_1
2 Field_2
END
表达式
表达式,是由数字、算符、数字分组符号(括号)、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合。约束变量在表达式中已被指定数值,而自由变量则可以在表达式之外另行指定数值。摘自:http://baike.baidu.com/view/420676.htm
系统中的脚本引擎中的表达式是用操作符将各个变量相连并且计算出某个结果的脚本。例如:
Field_1+Field_2
一个变量本身也可以算作是表达式。例如对于LET 命令来说,为变量赋的值可以一般是一个表达式计算后的结果,也可以使一个一个变量。如:
LET Field_1=1
LET Field_1=Field_2+Field_3
函数
函数是指在系统内给定某些输入给出一个特定的计算结果的规则定义。函数可以用在表达式里,或者本身就是作为一个表达式。
函数的调用一般是函数名+前括号+逗号分隔的参数列表+后括号。如:
ISBLANK(Field_1)
POS(Field_1,”a”)
操作符
操作符是指将变量以某个计算机规则进行计算的表达。在系统支持三类操作符:
- 算术运算符
- 逻辑运算符
- 关联运算符
变量
每个在调查问卷中定义的数据控件在脚本中都是可操作的对象,称之为变量。除去用户定义的变量外,还有一些系统内置的变量。
事件
对于BEFROE/AFTER RECORD/ENTRY 命令,也可以称之为调查问卷/控件的BEFORE/AFTER事件。写在其中的代码只有在该事件发生时才会执行。
命令参考
在系统存在两类的名,一类是声明式命令,这类命令式需要编写在BEFROE/AFTERRECORD/ENTRY 代码块之外的;一类是操作类命令,是需要结合IF 等条件判定并且需要编写在BEFROE/AFTER RECORD/ENTRY 代码块内部的。如果操作类命令没有编写在BEFROE/AFTERRECORD/ENTRY 代码块内,系统会自动将其移到AFTER RECORD/ENTRY 事件内执行。
ADDRECORD
为指定的子表控件添加一行数据。编写方式:
ADDRECORD {子表控件ID}
例:
ADDRECORD SUB_DATATABLE
或者根据某个控件的数据字典,逐条添加对应的数据,后两个控件id为可选:
ADDRECORD {子表控件ID} LABEL {字典控件ID} {存值控件ID} {存名控件ID}
ADDRECORD 命令需要写在BEFROE/AFTER RECORD/ENTRY 代码块中。
ASSERT
用于在提交调查问卷记录验证数据是否符合校验要求。此命令有根据使用的地方不同有两种编写方式:
- 用在调查问卷的代码里:ASSERT {字段},{表达式},”{提示消息}”
- 用在控件的代码里:ASSERT {表达式},”{提示消息}”
在提交数据时,当表达式计算的结果返回逻辑的假值时,系统将显示命令中指定的提示信息,并且将焦点跳转到{字段}指定的控件上,或者代码所在的控件。例如:
写在调查问卷的代码里:
ASSERT Field_1,Field_1>10,” Field_1 必须大于10”
写在控件的代码里:
ASSERT Field_1>10,” Field_1 必须大于10”
ASSERT 命令不能写在BEFROE/AFTER RECORD/ENTRY 代码块中。
AUTOJUMP
和Epidata 的实现类似,在系统中AUTOJUMP 是让输入焦点自动跳转到其他控件上。编写方式:
AUTOJUMP {字段}
除去字段编号,AUTOJUMP 命令后还可以跟一些特定的参数:
- WRITE:结束录入并提交数据
- END:最后一个控件
- SKIPNEXTFIELD:跳过下一个控件直接跳到后一个控件
例:
AUTOJUMP Field_1
AUTOJUMP WRITE
当此命令编写在脚本上时,在进入问卷数据录入界面时,输入焦点自动跳转到指定的字段上。
AUTOJUMP 命令不能写在BEFROE/AFTER RECORD/ENTRY 代码块中。
BEEP
在计算机上发出一声(需浏览器支持)。BEEP 有三种类型的声音可选:
- BEEP
- BEEP CONFIRMATION
- BEEP WARNING
BEEP命令需要写在BEFROE/AFTER RECORD/ENTRY 代码块中。
CLEAR
清空变量的值。编写方式:
CLEAR {字段}
例:
CLEAR Field_1
CLAER 命令需要写在BEFROE/AFTER RECORD/ENTRY 代码块中。
COPYRECORD
从子表控件中复制一行数据添加到最后。两种编写方式:
COPYRECORD {子表控件ID} {数据行的位置}
当此命令处于子表控件的子控件上时,可以不用写第二个参数,而以用户当时编辑的行作为需要复制的行。例:
COPYRECORD SUB_DATATABLE 1
或
COPYRECORD SUB_DATATABLE /此写法只能用于子表控件的子控件上
COPYTOCLIPBOARD
此命令将一个字符串(可包含一个或更多变量的值)拷贝到系统剪贴板上(需浏览器支持)。用户可以将拷贝的内容其它应用程序中。需要注意,由于浏览器的限制,此命令只支持在IE 和Firefox中调用。编写方式:
COPYTOCLIPBOARD ”{提示消息}”
拷贝的文本需要用双引号括起来。需要在消息文本中的变量前加个@。例:
COPYTOCLIPBOARD “Field_1 的值为@Field_1”
COPYTOCLIPBOARD 命令需要写在BEFROE/AFTER RECORD/ENTRY 代码块中。
COLLAPSE
用于折叠多行容器。编写方式:
COLLAPSE {字段}
例:
COLLAPSE Field_1
DEFINE
DEFINE 命令可以用于定义新的、临时变量。这些临时变量可以用来保留计算过程中的中间值。与此有关的信息请参见Epidata 帮助文件对此命令的介绍。
用DEFINE 定义的变量名最多16 个字符。临时变量不会被保存在数据库中。在关联的数据库中,相同的DEFINE 可以用在几个CHECK 文件中。重复的DEFINE 命令会被忽略。例如:
DEFINE MyTempVar ####
DEFINE varSurname \ CUMULATIVE
DEFINE tempDate \<yyyy-mm-dd>
DEFINE varCity GLOBAL
DIALOG
将某个控件(文本标签、多行容器等)的内容以模态对话框的方式弹出。编写方式:
CLEAR {字段}
例:
CLEAR Field_1
DISABLE
禁止某个控件录入,使控件处于不可录入的状态。编写方式:
DISABLE {字段}
DISABLE 命令需要写在BEFROE/AFTER RECORD/ENTRY 代码块中。
ENABLE
和DISABLE 命令相反,启用某个控件录入,使控件处于可录入状态。编写方式:
ENABLE {字段}
ENABLE 命令需要写在BEFROE/AFTER RECORD/ENTRY 代码块中。
EXIT
停止执行并离开一个命令块(例如,AFTER ENTRY 命令块)。使用EXIT,可以使程序不必再继续执行IF…THEN-ELSE 中EXIT 后面长长的命令。例:
AFTER ENTRY
IF Field_1=1 then
Exit
Endif
Field_1 = Field_2+ Field_3
END
GOTO
使输入焦点跳转到某个控件。编写方式:
GOTO {字段}
除去字段编号,GOTO 命令后还可以跟一些特定的参数:
- WRITE:结束录入并提交数据
- END:最后一个控件。
例:
GOTO Field_1
GOTO WRITE
GOTO 命令需要写在BEFROE/AFTER RECORD/ENTRY 代码块中。
HELP
此命令显示一个对话框,用户指定显示的字符串(可包含一个或更多变量的值)。编写方式:
HELP ”{提示消息}”
文本消息需要用引号括起来。需要在消息文本中的变量前加个@。例:
HELP “Field_1 的值为@Field_1”
HELP 命令需要写在BEFROE/AFTER RECORD/ENTRY 代码块中。
HIDE
隐藏指定的控件。编写方式:
HIDE {字段}
例:
HIDE Field_1
HIDE 命令需要写在BEFROE/AFTER RECORD/ENTRY 代码块中。
HIDEROW
隐藏指定的控件所在行,通常情况下包含控件的名称和控件本身。如果使用了单行容器,则使用此命令可以隐藏整个单行容器的内容。编写方式:
HIDEROW {字段}
例:
HIDEROW Field_1
HIDEROW 命令需要写在BEFROE/AFTER RECORD/ENTRY 代码块中。
HIDEROWS
和Epidata 软件中JUMPS 命令类似,使用此命令可以声明当控件的各个取值时隐藏掉不用录入的控件所在的行。在命令中,在值对应的是控件的值是这个值时需要显示的行,而其他在脚本中提及但是不在此行中的控件的行则被隐藏。值后面空格之后跟控件编号。值对应的控件可以多个,多个之间以都好分割。编写方式:
HIDEROWS
{值1} {控件1},{控件2}
{值2} {控件3},{控件4}
END
例:
HIDEROWS
1 Field_1
2 Field_2
3 Field_3
END
这个命令表示在当前脚本的控件在取值为1 的时候显示Field_1 所在的行,隐藏Field_2和Field_3 所在的行; 取值为2 的时候显示Field_2 所在的行,隐藏Field_1 和Field_3 所在的行;取值为3 的时候显示Field_3 所在的行,隐藏Field_1 和Field _2 所在的行。
HIDEROWS 命令只能写在控件(不包含子表控件)的BEFROE/AFTER RECORD/ENTRY 代码之外。
HIDES
和HIDEROWS 命令类似,使用此命令可以声明当控件的各个取值时隐藏掉不用录入的控件。在命令中,在值对应的是控件的值是这个值时需要显示控件,而其他在脚本中提及但是不在此行中的控件则被隐藏。值后面空格之后跟控件编号。值对应的控件可以多个,多个之间以都好分割。编写方式:
HIDES
{值1} {控件1},{控件2}
{值2} {控件3},{控件4}
END
例:
HIDES
1 Field_1
2 Field_2
3 Field_3
END
这个命令表示在当前脚本的控件在取值为1 的时候显示Field_1,隐藏Field_2 和Field_3;取值为2 的时候显示Field_2,隐藏Field_1 和Field_3;取值为3 的时候显示Field_3,隐藏Field_1 和Field _2。
HIDES 命令只能写在控件(不包含子表控件)的BEFROE/AFTER RECORD/ENTRY 代码之外。
IF…THEN
IF…THEN 命令用于在某个条件下执行某些命令。他的写法是:
IF {表达式} THEN
{命令1}
ENDIF
或者是:
IF {表达式} THEN
{命令1}
ELSE
{命令2}
ENDIF
在命令中的表达式的计算结果应该为逻辑值(Boolean),即真或者假。当表达式的结果返回真值时,执行命令1 中的一连串的命令,否则执行命令2。例:
IF field1>10 THEN
GOTO field10
ENDIF
IF (Cos(field1)*Sin(field1)\<0.3) AND (field2\<>0) THEN
IF field2\<field3 THEN
HELP “Something is wrong.”
Exit
ENDIF
ELSE
Field4=Tan(field1)
GOTO field23
ENDIF
IF…THEN 命令需要写在BEFROE/AFTER RECORD/ENTRY 代码块中。
JUMPS
声明当控件的值为某个值的时候输入焦点跳转到某个控件。JUMPS 是一个块命令,必须以END 结束。编写方式:
JUMPS
{值1} {控件1}
{值2} {控件2}
END
例:
HIDEROWS
1 Field_1
2 Field_2
3 Field_3
END
当控件取值为1 时跳转到Field_1;取值为2 时跳转到Field_2;取值为1 时跳转到Field_3。JUMPS 命令只能写在控件(不包含子表控件)的BEFROE/AFTER RECORD/ENTRY 代码之外。
LET
令某个变量等于某个数值或某个计算的结果,或者等于用DEFINE 定义的变量。LET 命令可以省略,直接书写后面的表达式即可。编写方式:
LET {控件}={表达式}
例:
LET Field_1=Field_2 + Field_3
或者
Field_1=Field_2 + Field_3
LET 命令需要写在BEFROE/AFTER RECORD/ENTRY 代码块中。
MONITOR
类似LET命令,声明执行一个赋值表达式,但是会额外监视表达式中的每一个控件,当表达式中任一控件的值发生变化时都会触发计算。编写方式:
MONITOR {控件}={表达式}
例:
MONITOR Field_1=Field_2 + Field_3
上例中Field_2和Field_3控件的值发生变化时都会触发计算,Field_1的值随即改变。
ORDER
声明表数据在列表默认按照那个字段排序。如:
ORDER {控件}
例:
ORDER Field_1
列表默认使用Field_1排序。
RANGE
为控件定义值范围,定义的值类型需要和控件的值的类型一直。编写方式:
RANGE –5 5
允许录入-5 到5 间的数值,包括-5 和5。
RANGE 命令只能写在控件(不包含子表控件)的BEFROE/AFTER RECORD/ENTRY 代码之外。
REMOVERECORD
从子表控件中删除一行数据。两种编写方式:
REMOVERECORD{子表控件ID} {数据行的位置}
当此命令处于子表控件的子控件上时,可以不用写第二个参数,而以用户当时编辑的行作为需要删除的行。例:
REMOVERECORD SUB_DATATABLE 1
或
REMOVERECORD SUB_DATATABLE /此写法只能用于子表控件的子控件上
REMOVERECORD 命令需要写在BEFROE/AFTER RECORD/ENTRY 代码块中。
REPEAT
在输入下个记录的时候自动填入上次的记录的值。需要注意,由于web 系统的限制,
此命令默认仅仅在连续录入的时候生效。当页面跳转到其他调查问卷再跳转回来的时候,所有的值都不起作用。编写方式:直接写下REPEAT 即可;
当指定以系统最后填写的值为默认值,请使用 REPEAT SYSTEM.而以用户最后录入的值为参考值,请使用REPEAT USER.如:
REPEAT
REPEAT USER
REPEAT SYSTEM
REPEAT 命令只能写在控件(含子表控件)和问卷的BEFROE/AFTER RECORD/ENTRY 代码之外。当REPEAT 命令作用于子表控件和问卷上时候,则所有子表中的或者问卷中的控件的值都会被自动填入。
UNCOLLAPSE
跟COLLAPSE相反,用于展开多行容器。编写方式:
UNCOLLAPSE {字段}
例:
UNCOLLAPSE Field_1
UNHIDE
和HIDE 命令相反,显示指定的控件。编写方式:
UNHIDE {字段}
例:
UNHIDE Field_1
UNHIDE 命令需要写在BEFROE/AFTER RECORD/ENTRY 代码块中。
UNHIDEROW
和HIDEROW 相反,显示指定的控件所在行,通常情况下包含控件的名称和控件本身。如果使用了单行容器,则使用此命令可以隐藏整个单行容器的内容。编写方式:
UNHIDEROW {字段}
例:
UNHIDEROW Field_1
UNHIDEROW 命令需要写在BEFROE/AFTER RECORD/ENTRY 代码块中。
其他Epidata 命令
下列Epidata 命令的支持仅仅用于对Epidata 软件的支持。下列命令可以存在于脚本中,但是可能不会发生任何作用:
- AUTOSAVE
- AUTOSEARCH
- BACKUP
- COLOR
- COMMENT
- CONFIRM
- CONFIRMFIELD
- EXECUTE
- INCLUDE
- KEY
- LEGAL
- MISSINGVALUE
- MUSTENTER
- NOENTER
- QUIT
- RELATE
- TOPOFSCREEN
- TYPE
- WRITENOTE
函数参考
在系统脚本中支持的函数和Epidata 软件中支持的函数基本一致,但是在Epidata 函数的基础上增加了一些自定义的函数。
算术函数
ABS(X): 小数
计算x 的绝对值。x 可以是整数或小数。例如:
ABS(4)=4, ABS(-4)=4
ARCTAN(X: 小数): 小数
计算x 的反正切。在下面的例子中,同样,用Sin、Cos 和Tan 计算其它三角函数。例如:
Tan(x)=Sin(x)/Cos(x)
ArcSin(x)=ArcTan(x/sqrt(1-sqr(x)))
ArcCos(x)=ArcTan(sqrt(1-sqr(x))/x)
COS(X: 小数): 小数
计算角x(弧度)的余弦。
EXP(X: 小数): 小数
计算e 的x 次幂,e 是自然对数的底。
FLOAT (X): 小数
将x 转换为小数。如果FIELD1 等于“Q34.3”,则下列函数的结果为34.3。
Float(copy(field1,2,4))
FRAC(X: 小数): 小数
x 是一个小数类型变量,该函数将得到x 的小数部分,即:
Frac(x)=x-Int(x)
INT(X: 小数): 小数
x 是一个小数型变量,该函数将得到x 的整数部分。但是,即使它只含x 的整数部分,该结果仍然属于小数数值。
INTEGER(X): 整数
该函数将一个字符串(其中含有数字)转换成一个整数。如果FIELD1 等于“41”,那么下列函数的结果为41。
Integer(copy(FIELD1,2,2))
LN(X: 小数): 小数
计算小数型变量x 的自然对数。
PI: 小数
表示圆周率π,即圆周长度与圆的直径长度之比,近似等于3.1415926535897932385。
POWER(BASE, EXPONENT: 小数): 小数
计算某值(base)的任意次幂(exponent)。该值(base)必须大于0。
RANGE(A,B,C: 小数): 逻辑值
如果a≥b 且a≤c,则返回“Y”(是)。b 和c 可以是数字或数值型变量的变量名。如果结果变量被设置为整数,例如:
LET Teenager=Range(age, 13, 19)
ROUND(X: 小数): 整数
将小数四舍五入转换为整数型数值。例如,下列函数的结果为3。
v2=round(2.5)
SIN(X: 小数): 小数
计算角x(弧度)的正弦。
SQR(X: 小数): 小数
计算x 的平方。
SQRT(X: 小数): 小数
计算x 的平方根。
SUM(依次列出变量名或列出变量范围): 小数
将指定的这些变量的数值加起来。时间变量、IDNUM 变量和其它非字符串型变量都可以计算。例如:Sum(V1,V2,”V10-V20”)。记住用双引号把范围值括起来。
TRUNC(X: 小数): 小数
该函数截去小数的小数点后的部分,保留整数部分。例如,下列函数的结果为2。参见
Round( )。
v2=trunc(2.5)
字符串函数
UPPER(S: 字符串): 字符串
将字符串S 中的所有字符都转换为大写字母。该转换会影响ANSI 字符集中的所有字符。
LOWER(S: 字符串): 字符串
将字符串S 中的所有字符都转换为小写字母。该转换会影响ANSI 字符集中的所有字符。
COPY(S: 字符串, INDEX, COUNT: 整数): 字符串
返回字符串中的某个子串。S 是一个字符型表达式。Index 和Count 是整数。Copy(S: 字符串, Index, Count: Integer)可以返回一个字符串,其中含有Count 个字符,从字符串S 的Index位置开始。如果Index 比S 的长度大,则该函数只能返回一个空的字符串。如果Count 指定的字符数超过了实际有的,则该函数只能返回从Index 开始到结尾的字符。例如,下列函数的结果为“short”。
SHORT=copy(“My short sentence”, 4, 5)
POS(SUBSTR: 字符串,S: 字符串): 整数
该函数将在一个字符串(S)中查找某个子串(Substr)。S 和Substr 都是字符型。Pos(Substr:字符串; S: 字符串)是在S 中找Substr,然后返回一个整数值,这个值就是Substr 的第一个字符在S 中的位置。Pos(Substr: 字符串; S: 字符串)。如果没有找到Substr,函数返回数值0。
例如:下列函数的结果为4。
position=pos(“short”, “My short sentence”)
LENGTH(S: 字符串): 整数
得出字符串S 占用的字符数。例如,下列函数的结果为11。
length(“This string”)
STRING(X): 字符串
将x 转换为字符串。如果FIELD1 是一个整数变量,等于41,则下列函数
的结果为“sb41”。参见INTEGER 函数,可将字符串转换为数字。
”sb”+String(FIELD1)
SOUNDEX(S: 字符串): 字符串
函数的结果是字符串S 的声索引编码。请参见Epidata 中的相关说明。
日期和时间函数
在系统脚本中和EpiData 类似,将日期作为小数处理,将其换算为自1899 年12 月31 日以来的天数。这么处理日期使与日期有关的计算非常方便。例如,计算两个日期之间相差的天数,用简单的减法即可实现。
DATE(D: 整数, M: 整数,Y: 整数): 日期
参数有3 个:日、月和年,返回的日期就是由这三个参数组成。该函数得到的结果是日期格式还是整数,取决于指定的变量的类型。
DAY(D: 日期): 整数
得到日期D 的日(即,1~31 中的一个数)。
DAYOFWEEK(D: 日期): 整数
得到一个数字,代表指定日期是星期几。例如,下列函数的结果为4,表示该日为周四。
注意,这里对应的编码是:周一=1,……,周日=7。
DayOfWeek(“22/02/2001”)
MONTH(D: 日期): 整数
得到日期D 的月份(即,1~12 中的一个数)。
NOW: 日期
得到当前日期。例:
LET D1=Now
LET T1=Num2Time(Now)。
NUM2TIME(D: 日期): 小数
将一个0~1 的数转换为小数##.##,其中,整数部分表示小时,从0~24;小数部分表示分钟,从.00~.59。
TIME2NUM(F: 小数): 日期
如果F 是一个小数,表示时间,从0.00~23.59,那么Time2Num 函数会将这个时间转
换为一个0 ~ 1 的数。例如:
Time2Num(12.00)=0.50
Time2Num(0.00)=0
Time2Num(24.00)=1.00
Time2Num(9.30)=0.40。
TODAY: 日期
给出当天的日期。该函数得到的是日期格式还是整数,取决于指定的变量的类型。
WEEKNUM(D: 日期): 整数
得到指定日期距离当年1 月1 日的周数。例如:
WeekNum(now)
YEAR(D: 日期): 整数
得到日期D 的年数(4 位数)
其它函数
ISBLANK(FIELD 控件): 逻辑值
如果某个变量没有录入,则认为是“真”;如果变量中含有数据,则认为是“假”。例:
IF ISBLANK(Field_1) THEN …
RECORDPOS(TABLE 子表控件): 整数
用于子表控件的子控件中时,返回当前处在子表中的第几行。从1开始。
RECORDCOUNT(TABLE 子表控件): 整数
此函数用在调查问卷主表上时返回值恒定为1,用于子表控件时,返回当前子表有几行数据。
SELECTIONCOUNT(FIELD 控件): 逻辑值
返回指定的多选控件或者列表选择控件选中的项的数量值。
ISSELECTED(FIELD 控件,v1,v2:字符串): 逻辑值
判断指定的多选控件或者列表选择控件的选中项中是否包含V1,V2 等项。V1,V2 时数据字典的保存值,可以为一个,也可以为多个值。例:
IF ISSELECTED(Field_1,”1”) THEN
IF ISSELECTED(Field_1,”1”,”2”,”3”) THEN
SELECTNAME (FIELD 控件): 名称
用于单选、多选控件,返回其选中项的名称的集合。
ID_CARD_DATE(FIELD 控件): 日期
根据输入的身份证号获的其中的出生日期信息。
YEAR_AGE(birth, ageDate):年龄
返回两个日期之间计算所得的年龄,周岁。
不支持的Epidata 函数
下列epidata 的函数在系统脚本中不被支持,无论调用的参数是什么,其返回值都是固定的。
- RECORDNUMBER
- COUNTMISSING
操作符
系统脚本中支持的操作符和Epidata 软件中支持的操作一致。
算术运算符
运算符 | 运算 | 数据类型 | 结果类型 |
---|---|---|---|
\^ | 指数 | 整数 | 小数 |
小数 | 小数 | ||
+ | 加法 | 整数 | 整数 |
小数 | 小数 | ||
字符串 | 字符串 | ||
- | 减法 | 整数 | 整数 |
* | 乘法 | 整数 | 整数 |
小数 | 小数 | ||
/ | 除法 | 整数 | 整数 |
小数 | 小数 | ||
div | 整数除法 | 整数 | 整数 |
mod | 整数除法取余 | 整数 | 整数 |
逻辑运算符
运算符 | 运算 | 数据类型 | 结果类型 |
---|---|---|---|
not | 否 | 逻辑值 | 逻辑值 |
and | 和/并且 | 逻辑值 | 逻辑值 |
or | 或 | 逻辑值 | 逻辑值 |
xor | 异或 | 逻辑值 | 逻辑值 |
注意,not 操作符后面只跟一个操作对象。如
IF not (Field_1 = 1) then
{命令}
ENDIF
关系运算符
关系运算符用于两个空间的值之间进行比较,返回逻辑值。值比较最好是两个比较的值的类型一致,比如整数对整数的比较。如果两个比较的值类型不一致,将转换成同一类型后再比较。
运算符 | 运算 | 结果类型 |
---|---|---|
= | 等于 | 逻辑值 |
\<> | 不等于 | 逻辑值 |
\< | 小于 | 逻辑值 |
> | 大于 | 逻辑值 |
\<= | 小于等于 | 逻辑值 |
>= | 大于等于 | 逻辑值 |
内置变量
在脚本中通过,我们有一些已经内置的变量,用户在编写脚本时可以直接范围而无需先声明。
RESULTLETTER 和RESULTVALUE
使用help 命令中,返回保存在这两个变量中。请参见Epidata 中的相关说明。
用户相关信息
通过以下变量可以直接放回用户相关的信息。需要注意,下列变量需要区分大小写:
- user\$id:用户的ID
- user\$name:用户的名称
- user\$ zonecode:用户的地区编码
- user\$ orgcode:用户的机构编码
- user\$ login:用户登录账户名
- user\$ reguser:是否是注册用户,值为字符串形式的true/false
- user\$ superUser:是否是调查任务管理员,值为字符串形式的true/false
- user\$ limitOrgUser:是否是机构直报用户,值为字符串形式的true/false
- user\$ linkage:用户联系方式
其他信息
通过以下变量可以直接其他相关的信息。需要注意,下列变量需要区分大小写:
- application\$name 导出为调查问卷时指定的调查问卷的名称
- form\$name:设计调查问卷模板时指定的名称
- action\$name:当前操作的名称,编辑、修改等。可配合多个编辑操作实现简单的流程。