以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 第一天值班人员,自动显示为上个月的最后一天值班人员的后一天值班人员,这个代码应该如何写? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=148101) |
||||
-- 作者:fengwenliuyan -- 发布时间:2020/3/31 10:50:00 -- 第一天值班人员,自动显示为上个月的最后一天值班人员的后一天值班人员,这个代码应该如何写? DataTables("经理值班表").DataRows.Clear() Dim y As Integer = e.Form.Controls("ComboBox1").value Dim m As Integer = e.Form.Controls("ComboBox2").value Dim k As String = e.Form.Controls("ComboBox3").value Dim days As Integer = Date.DaysInMonth(y,m) Dim nms() As String = {"张三","李四","王五","陈六","赵七","刘八"} Dim idx As Integer = Array.IndexOf(nms,k) Dim jh As New List(of String) If idx =-1 Then jh.AddRange(nms) Else For i As Integer = idx To nms.Length - 1 jh.Add(nms(i)) Next For i As Integer = 0 To idx-1 jh.Add(nms(i)) Next End If Tables("经理值班表窗口_经理值班表").AddNew() For d As Integer = 1 To days Dim v As Date = new Date(y,m,d) Dim w As Integer = v.DayOfWeek Tables("经理值班表窗口_经理值班表").Current(w) = Format(d,"00") & " " & jh(((d - 1) Mod 6)) If w = 6 Then Tables("经理值班表窗口_经理值班表").AddNew() End If Next 以上是用按钮生成的值班表代码; “经理值班表窗口”打开后, 1、自动显示“当前月份的日历布局”; 2、且第一天值班人员,自动显示为上个月的最后一天值班人员的后一天值班人员,这个代码应该如何写?
|
||||
-- 作者:有点蓝 -- 发布时间:2020/3/31 15:04:00 -- DataTables("经理值班表").DataRows.Clear() Dim y As Integer = e.Form.Controls("ComboBox1").value Dim m As Integer = e.Form.Controls("ComboBox2").value Dim k As String = e.Form.Controls("ComboBox3").value \'Dim days As Integer = Date.DaysInMonth(y,m) Dim nms() As String = {"张三","李四","王五","陈六","赵七","刘八"} Dim idx As Integer = Array.IndexOf(nms,k) Dim jh As New List(of String) If idx =-1 Then jh.AddRange(nms) Else For i As Integer = idx To nms.Length - 1 jh.Add(nms(i)) Next For i As Integer = 0 To idx-1 jh.Add(nms(i)) Next End If Dim t As Table = Tables("经理值班表窗口_经理值班表") Dim d As Date = new Date(y,m,1) Dim d2 As Date = d.AddMonths(1) Dim r As Row If d.DayOfWeek <> 0 r = t.AddNew() End If Do While d < d2 Dim w As Integer = d.DayOfWeek If w = 0 Then r = t.AddNew() r(w) = Format(d.Day,"00") & jh((d.day - 1) Mod 6) d=d.AddDays(1) Loop
|
||||
-- 作者:fengwenliuyan -- 发布时间:2020/3/31 15:54:00 -- 回复:(有点蓝)DataTables("经理值班表").DataRows.... 1、点击绿色按钮后,弹出错误窗口,是“用DrawCell方法的红色,标记出当天所在的单元格,”? 2、您上面提供的代码,我带入到窗口的AfterLoad事件后,但是进入下个月后,第一个值班名字还是没有变成“上个月的最后一人的下一个”? 具体测试步骤是: 先确认本月最后一人名字, 再将电脑的日期修改为下月第一天。
|
||||
-- 作者:有点蓝 -- 发布时间:2020/3/31 16:37:00 -- 1、 r(w) = Format(d.Day,"00") & jh((d.day - 1) Mod 6) 改为 r(w) = Format(d.Day,"00") & " " & jh((d.day - 1) Mod 6) 2、在清空旧数据之前,先获取值班表最后一行最后一个有值的单元格的数据,提取里面的人名作为“上个月的最后一人
|
||||
-- 作者:fengwenliuyan -- 发布时间:2020/3/31 16:45:00 -- 回复:(有点蓝)1、r(w) = Format(d.Day,"00") &... 2/如何提取? 能直接在上传的项目中修改吗? |
||||
-- 作者:有点蓝 -- 发布时间:2020/3/31 16:54:00 -- 最后一行数据会取吗? 从这一行第一列开始判断每个单元格有没有值会吗?
|
||||
-- 作者:fengwenliuyan -- 发布时间:2020/3/31 17:22:00 -- 回复:(有点蓝)最后一行数据会取吗?从这一行第一列... 话说,真心不会呢! |
||||
-- 作者:有点蓝 -- 发布时间:2020/3/31 17:31:00 -- 最后一行 dim r as row = tables("表A").rows(tables("表A").rows.count - 1) 取最后一个人 Dim k As String For i As Integer = 0 To Tables("表A").cols.count - 1 If r.isnull(i) = False Then k = r(i) Else Exit For End If Next msgbox(k) |
||||
-- 作者:fengwenliuyan -- 发布时间:2020/4/1 16:45:00 -- 回复:(有点蓝)最后一行dim r as row = tables("表A... 1、标记单元格颜色是没问题了,但是,每次打开值班表窗口后,都会出现一个蓝色背景的单元格,这个颜色怎么去掉?或者,直接定位到当前日期的单元格中? 2、提取上个月最末一人的信息,代码写入后,本月初第一人的信息居然和上个月同名? 求指正? 最好是直接在项目中修改上传?
|
||||
-- 作者:有点蓝 -- 发布时间:2020/4/2 9:01:00 --
|