立即注册 登录
度量快速开发平台-专业、快速的软件定制快开平台 返回首页

王爱东的个人空间 http://bbs.delit.cn/?3 [收藏] [复制] [RSS]

日志

度量快速开发平台网格部件实现日历显示效果

已有 1201 次阅读2020-6-13 10:45 |个人分类:构建综合|系统分类:构建综合| 开发平台, 日历

1\实现场景:

本效果主要是oracle数据库下使用。

如果有类似排班的功能,给每个人排班后,形成的数据下图:


2、 日程部件实现方式:

现在需要方便的查看,一般情况下我们使用度量快速开发平台中的日程部件来实现,而且也是能很方便实现。实现效果如下图:

 

如果要很方便的导出,以及展示格式更好看。可以采用平台的网格部件来显示实现。

3、网格实现方式:

网格部件中实现类似日历显示的效果,实际上核心思想是在sql语句中来组合形成。Oracle中实现显示一个月的日历效果如下图:

     

[A] 代码示例代码:

select  ceil((to_char(everyday,'dd')+(to_char(to_date('2015-06-01','yyyy-mm-dd'),'d')-2))/7) as ,'日期时间,

to_char(sum( decode(to_char(everyday,'dy'),'星期一',to_char(everyday,'dd')))) as 星期一,

to_char(sum(  decode(to_char(everyday,'dy'),'星期二',to_char(everyday,'dd')))) as 星期二,

to_char(sum(  decode(to_char(everyday,'dy'),'星期三',to_char(everyday,'dd')))) as 星期三,

to_char(sum(  decode(to_char(everyday,'dy'),'星期四',to_char(everyday,'dd')))) as 星期四,

to_char(sum(  decode(to_char(everyday,'dy'),'星期五',to_char(everyday,'dd')))) as 星期五,

to_char(sum(  decode(to_char(everyday,'dy'),'星期六',to_char(everyday,'dd')))) as 星期六,

to_char(sum(  decode(to_char(everyday,'dy'),'星期日',to_char(everyday,'dd')))) as 星期日

from (select to_date('2015-06-01','yyyy-mm-dd') + level - 1 as everyDay

from dual connect by level <= (last_day(to_date('2015-06-01','yyyy-mm-dd')) - to_date('2015-06-01','yyyy-mm-dd') +1)  )

group by ceil((to_char(everyday,'dd')+(to_char(to_date('2015-06-01','yyyy-mm-dd'),'d')-2))/7)

order by ceil((to_char(everyday,'dd')+(to_char(to_date('2015-06-01','yyyy-mm-dd'),'d')-2))/7)

 

实现这种代码后,我们只需要想办法把排班数据想办法另外组合成类似的数据,并通过排序显示到不同周的下面。

再做一个业务数据的查询效果数据,也是类似的做法:

需要注意的是里面的周,我是加了一个值,便于后面组合排序的时候放在相应的行中。

[B]代码示例代码:

select *from (

select  ceil((to_char(everyday,'dd')+(to_char(to_date('2015-06-01','yyyy-mm-dd'),'d')-2))/7)+0.1 as week,b.班次,

replace(Wm_concat(Decode(To_char(everyday,'dy'),'星期一',b.姓名)),',',chr(10))  as 星期一,

replace(Wm_concat(Decode(To_char(everyday,'dy'),'星期二',b.姓名)),',',chr(10))  as 星期二,

replace(Wm_concat(Decode(To_char(everyday,'dy'),'星期三',b.姓名)),',',chr(10))  as 星期三,

replace(Wm_concat(Decode(To_char(everyday,'dy'),'星期四',b.姓名)),',',chr(10))  as 星期四,

replace(Wm_concat(Decode(To_char(everyday,'dy'),'星期五',b.姓名)),',',chr(10))  as 星期五,

replace(Wm_concat(Decode(To_char(everyday,'dy'),'星期六',b.姓名)),',',chr(10))  as 星期六,

replace(Wm_concat(Decode(To_char(everyday,'dy'),'星期日',b.姓名)),',',chr(10))  as 星期日

from (select to_date('2015-06-01','yyyy-mm-dd') + level - 1 as everyDay

     from dual  connect by

 level<= (last_day(to_date('2015-06-01','yyyy-mm-dd')) - to_date('2015-06-01','yyyy-mm-dd') +1)

)  a,

 (

  select 日期,班次,姓名 from xy_排班_排班记录  where 科室ID=2069 and 月度='2015-06'

   ) b where a.everyday=b.日期(+)

group by

ceil((to_char(everyday,'dd')+(to_char(to_date('2015-06-01','yyyy-mm-dd'),'d')-2))/7)+0.1,b.班次

 

最后把[A]代码  [B]代码的脚本联合查询形成[C]代码,按照周的大小 排序即可。

[C]代码示例代码:

SELECT   ,时间,星期一,星期二,星期三,星期四,星期五,星期六,星期日 from (

  [A] 代码 union all  [B]代码  )  order by 

形成效果:

   

[C]代码作为业务表,设置不同的查询条件,并放到网格部件中,就形成很好日历效果图:

   

类实现思路,就是使用Oracle写查询语句。因此希望通过类似的案例,提高大家的业务实现能力。


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2024-3-29 15:09 , Processed in 0.079400 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

返回顶部