在59. XPages自定义控件(二)搜索视图里,笔者演示了如何用一个自定义控件给一个XPage页面添加全文搜索的功能,这在以文档为主要数据的系统里很好用,也足够了。不过,如在62. 全文搜索与条件查询一文里提到的,对于包含了结构化数据的系统,用户经常希望按字段做更精确的条件查询,利用Lotus Notes全文搜索支持的查询语法,也可以实现这一点。下面笔者就同样用一个控件来演示简单的多条件查询。与全文搜索不同,多条件查询在界面上要显示查询的数据包含的字段,不能简单使用一个通用的界面。即使用参数控制,也很难做到像依具体字段和查询特点专门设计的界面那样让用户方便,这一点,在62. 全文搜索与条件查询的通用的多条件查询一节里已经论述过了。那么还有什么必要创建一个本来是为了多次使用的自定义控件呢?因为在某些情况下,多个XPage上展现的视图虽然源于不同的Notes视图,但是外观相同;甚至可以只源于一个Notes视图,籍由视图控件的分类和搜索等过滤属性显示同一Notes视图的不同文档子集,比如本文用到的这个场景:
一个记录员工考勤信息的应用程序,需要实现的功能包括从门禁系统每日导入打卡数据,向用户分别显示打卡记录、考勤(上班下班)记录、异常(迟到早退)记录和补卡记录,普通用户只能看到自己的记录,管理员可以查看所有人的记录并按条件查询。
为了实现这些功能,最简洁的设计只需一个表单,Record;两个Notes视图,Record和Exception。每条Record文档记录员工的一次打卡,包括卡号、员工号、姓名、打卡时间、部门等字段。因为门禁系统提供的数据没有标记哪些是上下班记录,所以须由一个代理选择每人每天的第一次打卡作为上班记录,最后一次打卡作为下班记录,并记录在案文档的Type字段里。补卡记录通过另外一个字段MakeUp标记。展现给用户的四个视图页面,打卡记录、考勤记录、异常记录和补卡记录,第一个有日期、时间、姓名、部门和办公室五列,后面三个增加一列类型(上班或下班),除此之外,视图上的各种用户操作都相同。因此我们只需单独设计打卡记录的页面,对考勤记录、异常记录和补卡记录三个页面可以共用一个自定义控件RecordView。这个自定义控件包含一个视图控件并实现查询、创建、删除等功能。通过自定义参数将不同种类的记录对应的全文搜索的查询条件传递给视图控件。这个初步思路的唯一问题是系统须根据预设的上下班时间判定哪些记录属于迟到早退。这个判断可以在上面提到的标记上下班记录的代理里完成,但这样做如果需要调整上下班时间标准(在考勤系统试运行时期或者公司对迟到早退的规定有弹性调整时都可能发生),就必须重新修改所有的考勤记录。一个明显更灵活也更简单的方法是把这个判断放在显示时完成,也就是在传给考勤记录视图页面的查询条件里加上对打卡时间的限制。因为在我们极简的表单设计里,打卡的日期和时间是保存在同一个AccessTime字段里,要筛选出异常记录,必须获得这个字段的时间部分的值,Lotus Notes全文搜索的语法是没有这样的功能的,所以我们只得为异常记录建一个专门的Notes视图,这也就是下面笔者提到需要Record视图之外的Exception视图的原因。
设计方面的分析结束了,我们来看看最终的结果。
考勤记录(Attendance Records)视图页面
异常记录(Exception Records)视图页面
打卡记录(Access Records)视图页面
补卡记录(Manual Records)视图页面
输入员工姓名查询,有辅助输入(type ahead)功能
输入打卡起始日期查询
查询结果
在下一篇文章里,笔者会详细分析实现这些功能的代码。
分享到:
相关推荐
domino xpages 开发 视图View Start Key
domino xpages 开发 时间控件显示24小时制
domino xpages 开发 权限相关 控件只读
第二课:xpages各类控件的介绍,编辑控件、选择控件、文件处理控件、及开源库里面的常用控件的介绍与使用。
XPages是Notes/Domino中新的Web应用开发框架,本书共分为7个部分来分别阐述如何使用XPages进行Web开发,重点讲述了XPages开发的原则和基础、定制控件、高级脚本、可扩展性、脱机使用、主题定制、国际化、安全性及...
domino xpages 开发 时间给控件取赋值
XPages的灵活视图控件可重用的定制控件和配套库,可以放入任何Domino XPage应用程序中建立在jQuery和DataTables以及REST数据之上极其通用且可配置对XPages中的开箱即用工具感到无聊。 目标: 简化视图创建,避免一遍...
A Compact Resource to XPages Application Development and the XSP Language
XPages开发
以前收藏的一些html, xpages,xpages主题分析引用css和js的区别,今天分享出来,以方便大家更清楚的了解主题的引用js和css
domino xpages 开发 权限相关 权限设置html控件可见
xpages repeat 显示序号,这个是非常实用的功能,这个实现就是这样的
domino xpages 文档开发 页面与定制控件绑定FORM特别说明
ibm domino xpages jdbc范例
经几个网上的伙伴交流,做个免费xpages的培训,当然我们讲的内容可能不能大而全、不能面面俱到,但是就把以前 开发接触的知识点收集、归纳、串联来讲,希望能为想学习xpages的同学做个引入门的作用,更深的知识还是...
精通Xpages书本的配套练习题 其他的无。
XPages访问关系型数据库的方法介绍PPT
xpages repeat在ul中重复li,一看就懂的教程,不懂就复制代码
domino xpages 文档状态改变.
模板资料库文件,本实例系统介绍xpages的功能及用法,具有十分重要的参考价值.