以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]代码求助  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=74837)

--  作者:cqlwsam
--  发布时间:2015/9/20 17:05:00
--  [求助]代码求助

在日历窗口中如果新增“姓名”列,后面单元格中按姓名对应列出,窗口的drawcell代码如何修改?谢谢!

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:1234567.table

 


 


--  作者:大红袍
--  发布时间:2015/9/20 17:09:00
--  
什么意思啊
--  作者:cqlwsam
--  发布时间:2015/9/20 17:12:00
--  
原来的“值班一览表”中的列从周一到周日,现新增“姓名”列作为首列,表的drawcell的代码执行不管首列,只管后面的列,需要修改,不知道怎么修改
[此贴子已经被作者于2015/9/20 17:14:34编辑过]

--  作者:大红袍
--  发布时间:2015/9/20 17:17:00
--  

DrawCell事件

 

If e.Col.name = "姓名" Then Return


--  作者:cqlwsam
--  发布时间:2015/9/20 17:23:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:360反馈意见截图16841005315319.png
图片点击可在新窗口打开查看

运行后提示错误

--  作者:大红袍
--  发布时间:2015/9/20 17:23:00
--  
不可能有问题。
--  作者:cqlwsam
--  发布时间:2015/9/20 17:29:00
--  
可以。但是在另一个东西用就有问题。不知道怎么回事。谢谢!
--  作者:大红袍
--  发布时间:2015/9/20 17:30:00
--  

不明白你什么意思。例子发上来。


--  作者:cqlwsam
--  发布时间:2015/9/20 22:53:00
--  
前面添加姓名列,后面日期全乱套啦。需要修改内部函数“switchMonth”才行。能解释一下代码吗?

Dim NewMonth As String = Args(0)
Dim Tbl As Table = Args(1)
CurrentMonth = NewMonth 

Dim Year,Month As Integer
Year = Convert.ToInt32(NewMonth.SubString(0,4))
Month = Convert.ToInt32(NewMonth.SubString(5,2))

Dim Dt1 As New Date(Year,Month,1)
Dim Wk As Integer = Dt1.DayOfWeek
If Wk = 0 Then Wk = 7
Wk - = 2
Dim i As Integer
Dim c_index As Integer 
For c_index = Wk To 0 Step -1
    i + = 1
    Tbl.Rows(0)(c_index) = Format(Dt1.AddDays(-i),"yyyy-MM-dd")
Next
Dim r_index As Integer = 1
c_index = Wk 
For i = 0 To Date.DaysInMonth(Year ,Month ) - 1
    c_index + = 1
    If c_index = 7 Then 
        r_index + = 1
        c_index = 0
    End If
    Tbl.Rows(r_index)(c_index) = Format(Dt1.AddDays(i),"yyyy-MM-dd")
Next
Do Until r_index = 5 AndAlso c_index = 6
    c_index + = 1
    If c_index = 7 Then 
        r_index + = 1
        c_index = 0
    End If
    Tbl.Rows(r_index)(c_index) = Format(Dt1.AddDays(i),"yyyy-MM-dd")
    i + = 1
Loop
[此贴子已经被作者于2015/9/20 22:57:11编辑过]

--  作者:大红袍
--  发布时间:2015/9/20 23:12:00
--  

Dim NewMonth As String = Args(0)
Dim Tbl As Table = Args(1)
CurrentMonth = NewMonth

Dim Year,Month As Integer
Year = Convert.ToInt32(NewMonth.SubString(0,4))
Month = Convert.ToInt32(NewMonth.SubString(5,2))

Dim Dt1 As New Date(Year,Month,1)
Dim Wk As Integer = Dt1.DayOfWeek
If Wk = 0 Then Wk = 7
Wk - = 1
Dim i As Integer
Dim c_index As Integer
For c_index = Wk To 1 Step -1
    i + = 1
    Tbl.Rows(0)(c_index) = Format(Dt1.AddDays(-i),"yyyy-MM-dd")
Next
Dim r_index As Integer = 0
c_index = Wk

For i = 0 To Date.DaysInMonth(Year ,Month ) - 1
    c_index + = 1
    If c_index = 8 Then
        r_index + = 1
        c_index = 1
    End If
    Tbl.Rows(r_index)(c_index) = Format(Dt1.AddDays(i),"yyyy-MM-dd")
Next
Do Until r_index = 5 AndAlso c_index = 6
    c_index + = 1
    If c_index = 8 Then
        r_index + = 1
        c_index = 1
    End If
    Tbl.Rows(r_index)(c_index) = Format(Dt1.AddDays(i),"yyyy-MM-dd")
    i + = 1
Loop