APEX开发实践(一):通过日历组件实现休假安排

功能背景描述:团队需要一个休假安排表,以确定具体日期中哪位团队成员休假,休假期间他/她的替班成员是谁。能够在一个当前月份的日历表视图中体现。

图片

APX提供了功能强大的日历组件,能够轻松实现与日历相关的0代码开发(当然,基本的SQL知识还是要懂一些的)。另外,APEX还提供了功能丰富的日历开发模版。这对于日历应用的开发由非常好的指导意义。

一,休假数据表的创建。

日历应用是基于数据库开发的。所以首先要先创建一张数据表。至少要包括休假人,休假开始时间,休假结束时间。这里要主要的是APEX中对表中记录的修改(update)和删除(delete)的操作是需要基于主键(primary key)完成的。所以创建的表必须要包含主键(primary key)。下面是我在这个例子中创建的数据表。其中NAME和START_DATE是联合主键。

Column  NameData  TypeNullablePKComment
NAMEVARCHAR2(50)No1休假人姓名
START_DATEDATENo2开始日期
LEAVE_TYPEVARCHAR2(50)Yes-休假类型
END_DATEDATEYes-结束日期
FULL_DAYVARCHAR2(10)Yes-是否全天
BACKUPVARCHAR2(50)Yes-替班人姓名

二,创建日历页面

可以直接创建一个空白页面,然后在“页设计器”界面中,

在开发页面的中部靠下方,把“区域”中的“日历”组件拖拉至“布局”里。

图片

在开发页面右部的区域定义中,输入休假表查询的SQL语句。这里不对具体的SQL语句进行讲解。请查阅Oracle数据库相关手册。

图片

点接开发页面左部的“呈现”,选中刚才创建的日历组件下面的“属性”。

图片

然后回到开发页面右部的属性定义中设置“显示列”(参考上面的SQL语句,这里是多个字段的合并输出,“开始日期列”,“结束日期列”。

图片

界面的显示效果如下图

图片

好了,日历的页面设计暂告一段落。下面开始要做数据增(Insert)、删(Delete)、改(Update)的设置。

三,创建一个增删改的弹出式对话框

新建一个空白的页面。注意在创建的时候要选择“模式对话框”(具体的区别请点击右侧的小问号了解)。

图片

在新建的页面里创建4个选择列表项,2个日期项,3个按钮(分别对应增、删、改)和1个处理(process)。

图片

在开发页面右部的属性定义里,可以设置选项列表的可选值。可选值可以是预设的静态值。如休假类型:

图片

也可以是存放在数据表里的记录。如人员姓名:

图片

请注意:通过SQL获取数据表里的记录,SQL的写法必须如上图表达式。

对于日期项,需要与数据源的对应字段做匹配设置。

图片

增、删、改的按钮设置。数据库操作分别选择“SQL INSERT”,“SQL DELETE”,“SQL UPDATE”。

另外要注意⚠️,增加记录和修改记录(删、改)虽然调用的是同一个页面,但是进入方式不一样,所以要设置在不同的进入方式的时候,出现的按钮不一样。“增加”按钮的“服务器端条件”中,设置类型,P29_START_DATE(休假开始时间)项为空值的时候,意味着是增加记录,所以只显示“增加”按钮。“删除”和“修改”的“服务器端条件”中,设置类型,P29_START_DATE(休假开始时间)项不为空值的时候,意味着是对一条已有的记录做修改或删除的操作,所以只显示“删除”和“修改”按钮。

最后说一下处理(process)的设置。处理(process)是真正地对数据库进行操作。在开发页面中部,“组件视图”-》“页处理”创建一个“处理”。然后在开发页面的右部设置“处理”的属性。类型选择“自动行处理(DML)”。选择要处理的表明。接下来关键的是要选择主键列/项和次级键列/项。由于休假表的主键是人员姓名和休假开始时间的复合主键,所以这里要设置两个主键(次级键)项/列。

图片

另外,可以设置一下记录提交成功或失败返回的消息框。

图片

到此,弹出式对话框的创建完成。

四, 通过点击按钮弹出对话框

首先我们要先添加一个按钮。在开发页面的“区域”的靠下方,点击“按钮”,选择适用的按钮(这里选择Text[热门])拖拉到刚才创建的日历下方。按钮的行为设置操作为“重定向到指定的页面”并把目标设置为在步骤三中创建好的弹出对话框(页号)。

图片

接下来我们要再做一个设置,当点击已有的日历记录的时候,能够调用弹出对话框对记录进行修改或删除的操作。在开发页面的左部,选中刚才创建的日历组件的“属性”,然后在开发页面的右部做如下设置。在“查看/编辑链接”中把目标设置为在步骤三中创建好的弹出对话框(页号)。

图片

所以,点击不同的进入方式,弹出的对话框是稍微有区别的。请对比下面两个弹出对话框,它们调用同一个页面,但由于经由不同的点击调用,稍微有点不一样。

增加记录的对话框

图片

修改或删除记录的对话框

图片

好了,到这里,这个日历休假安排的小应用可以上线使用了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值