注册 登录
编程论坛 VFP论坛

VFP制作排班系统问题求助!

刘牛牛 发布于 2021-06-28 22:52, 2560 次点击
请问一下各位大神,想用VFP9 制作一个排班系统,界面能有一个类似于日历一样的表格展示,类似这样:
只有本站会员才能查看附件,请 登录
怎么才能解决日历表头的问题呢。。还有就是GRID的列数是有限的,如果想要处理一年的排班数据,该怎么办呢?有没有其他变通的方法处理不用GRID控件
13 回复
#2
schtg2021-06-29 05:39
一般思路:日历表头分成两行,即两条记录;一年的排班数,可以以一个月为一个界面,也可以一周为一个界面,甚至10天为一个界面(而不是一个界面一下就显示一年365天的排班数),这样的话,设置选择按钮即可前后翻看全年的排班数情况。仅供参考哈。
#3
sdta2021-06-29 07:05
可以用标签控件实现
#4
gs25367856782021-06-29 09:03
最好以月为单位,用一个多页框控件PAGEFRAM,每个页框即为一个月
#5
刘牛牛2021-06-29 09:04
回复 3楼 sdta
请问具体怎么实现呢,能提供个思路吗,谢谢。
#6
刘牛牛2021-06-29 09:09
回复 2楼 schtg
谢谢解答,怎么根据录入的排班情况,比如某人某月某日休假,修改展现的界面上的输出结果呢
#7
刘牛牛2021-06-29 09:10
回复 4楼 gs2536785678
谢谢解答,假设只有一个月每页,怎么去维护对应日期的排班结果呢
#8
吹水佬2021-06-29 10:36
这样可否:分两个表,日历表和排班表,每个月一条记录,排班表增加一个月份字段。
#9
wengjl2021-06-29 12:54
持续关注中...
#10
刘牛牛2021-06-30 10:43
请问各位大神提供思路
#11
刘牛牛2021-06-30 10:44
主要是横排的日期格式不太好解决
#12
吹水佬2021-06-30 10:53
以下是引用刘牛牛在2021-6-30 10:44:38的发言:

主要是横排的日期格式不太好解决

自定义一个容器类,放入几个控件显示日期相关信息,作为表格单元控件。
#13
xuminxz2021-06-30 11:31
这个与精准排课类似。设计似乎可以从3个方向考虑。
1、数据结构
可以用下几个表
人员信息表——人员基本信息,必须字段,代码(工号)、姓名。其它字段,如出生日期、性别、单位……。初期设计可以用不上,系统完善时,可能有用。例如,女性不排晚班,年龄大的不连排……
值班表——如果每天值班只是一个人,或固定的几个人,可以每月或每周用一条记录。这样初期代码可能好写点,但适用性可能不太广。建议每条每人、每天值班信息一条记录。由以下字段:自动生成的关键字字段、工号、值班日期、班次。这个表的字段一定不要多,否则不易维护。另外,休息不用出现在记录中。
特殊日期表——日期、说明。说明字段用于指定日期类型(一般工作日可不注明,双休日、节日)。该表中可以只加入特殊日期;也可以加入所有日期,以便于简化后期代码。可以年、月、日用不同字段
最后,数据不建议用DBF表,不安全自动编号功能与比较弱,还不太方便数据交流。建议用ACCESS,SQL server ……,然后用远程视图调用。
2、结果呈现
1)呈现
表头可以用标签,也可以用表格。按月呈现,如需要也可以按4-5周呈现。
值班数据用表格。
2)查询
可以在旁边用表格、列表框、标签……选定月份。
用组合框加列表框进行人员查询
3、数据维护
1)数据录入
2)数据导入、导出
3)复制
4)自动生成
5)统计
#14
xuminxz2021-06-30 11:41
回复 11楼 刘牛牛
sj表,字段 rq,ri,yue,niang
_yue=2   &&实际可由控件指定的月份。
select * from sj into cursor sjtmp where yue=_yue order by yue,ri  &&指定的月份,也可用between()指定时间范围。
for i=1 to 31  &&也可以多几个标签
    ci='lrq'+allt(str(i))
    thisform.&ci..caption=''
endfor
select sjtmp
for i=1 to recc()
    go i
    ci='lrq'+allt(str(i))
    thisform.&ci..caption=allt(ri)
endfor


[此贴子已经被作者于2021-6-30 11:42编辑过]

1