以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]默认值设置  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=100485)

--  作者:积水成渊
--  发布时间:2017/5/12 10:25:00
--  [求助]默认值设置
表中有一字段问标准天数,我现在需要奖标准天数这一字段设置成默认值,计算当月有多少天,该如何设置,求大神
Dim Days As Integer
Dim d1 As Date = Date.Today
Dim year As Integer = d1.Year
Dim month As Integer = d1.Month
Days = Date.DaysInMonth(year,d1.Month)
Output.Show(Days)
这种方法不行!

--  作者:有点色
--  发布时间:2017/5/12 10:27:00
--  

DataRowadded事件写代码

 

Dim Days As Integer
Dim d1 As Date = Date.Today
Dim year As Integer = d1.Year
Dim month As Integer = d1.Month
Days = Date.DaysInMonth(year,d1.Month)
e.datarow("标准天数") = Days

--  作者:积水成渊
--  发布时间:2017/5/12 11:13:00
--  
这种方法被否决了,现在的要求是这样的,有两个字段:核审月份与标准天数,审核月份的格式是201703,现在需要根据201703来计算2017年3月分有多少天
--  作者:有点色
--  发布时间:2017/5/12 11:25:00
--  

DataColChanged事件

 

If e.DataCol.name = "审核月份" Then
    If e.NewValue = Nothing OrElse e.newvalue.length <> 6 Then
        e.DataRow("标准天数") = Nothing
    Else       
        Dim year As Integer = e.newvalue.Substring(0,4)
        Dim month As Integer = e.newvalue.Substring(4,2)
        Dim Days = Date.DaysInMonth(year,Month)
        e.DataRow("标准天数") = Days
    End If
End If

[此贴子已经被作者于2017/5/12 11:53:19编辑过]

--  作者:积水成渊
--  发布时间:2017/5/12 11:39:00
--  
感谢老师,这是我想的方法
Dim s As String = "201703"
Dim Days As Integer
Dim year As Integer = s.SubString(0,4) \'获得左边4个字符:2017
Dim month As Integer = s.SubString(s.Length - 2) \'获得右边2个字符:03
Dim day As Integer = s.SubString(2,4) \'获得从第3个字符开始的4个字符
Days = Date.DaysInMonth(year,month)
output.show(Days)

--  作者:积水成渊
--  发布时间:2017/5/12 11:41:00
--  
老师的逻辑性更强
--  作者:积水成渊
--  发布时间:2017/5/12 11:50:00
--  
老师忘记定义days了
If e.DataCol.name = "核算月份" Then
    If e.NewValue = Nothing OrElse e.newvalue.length <> 6 Then
        e.DataRow("标准天数") = Nothing
    Else 
        Dim Days As Integer       
        Dim year As Integer = e.newvalue.Substring(0,4)
        Dim month As Integer = e.newvalue.Substring(4,2)
        Days = Date.DaysInMonth(year,Month)
        e.DataRow("标准天数") = Days
    End If
End If

--  作者:有点色
--  发布时间:2017/5/12 11:53:00
--  

 

If e.DataCol.name = "审核月份" Then
    If e.NewValue = Nothing OrElse e.newvalue.length <> 6 Then
        e.DataRow("标准天数") = Nothing
    Else       
        Dim year As Integer = e.newvalue.Substring(0,4)
        Dim month As Integer = e.newvalue.Substring(4,2)
        Dim Days = Date.DaysInMonth(year,Month)
        e.DataRow("标准天数") = Days
    End If
End If