以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  开始日期,结束日期,生产周期三列数值只要填入两列,剩余一列系统自动填入  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=26482)

--  作者:ppxxww
--  发布时间:2012/12/5 20:27:00
--  开始日期,结束日期,生产周期三列数值只要填入两列,剩余一列系统自动填入

 

你好!请帮忙解决以下问题

 

开始日期,结束日期,生产周期三列数值只要填入两列,剩余一列系统自动填入, 如

 

1.  手工在“生产周期“输入30,在”结束日期“2012-12-30            “ 开始日期”电脑生成2012-12-1

 

 

2.  手工在“开始日期“输入2012-12-1,在”生产周期“ 30             “结束日期 ”电脑生成2012-12-30

 

3.  手工在“开始日期“输入2012-12-1,在”结束日期“2012-12-30    “ 生产周期”电脑生成30

 

4.  当在输入“开始日期“和”结束日期“时,不小心造成”结束日期“早于“开始日期“时,电脑能智能纠正

 

手工先“开始日期“输入2012-12-1,在”结束日期“2012-11-30 电脑能智能纠正”结束日期“跟“开始日期“一样为2012-12-1

 

手工先结束日期“2012-11-30,在”开始日期“输入2012-12-1“电脑能智能纠正”开始日期“跟“结束日期“一样为2012-11-30  不想弹出提示对话框(”结束日期“不能早于“开始日期),鼠标不能移开

[此贴子已经被作者于2012-12-5 20:47:14编辑过]

--  作者:有点甜
--  发布时间:2012/12/5 20:50:00
--  

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

 

Select Case e.DataCol.Name
    Case "开始日期","结束日期"
        Dim dr As DataRow = e.DataRow
        If dr.IsNull("开始日期") = False AndAlso dr.IsNull("结束日期") = False  Then
            Dim tp As TimeSpan = dr("结束日期") - dr("开始日期")
            dr("生产周期") = tp.TotalDays
        End If
End Select
Select Case e.DataCol.name
    Case "开始日期","生产周期"
        Dim dr As DataRow = e.DataRow
        If dr.IsNull("开始日期") = False AndAlso dr.IsNull("生产周期") = False  Then
            dr("结束日期") = dr("开始日期").AddDays(dr("生产周期"))
        End If
End Select
Select Case e.DataCol.name
    Case "结束日期","生产周期"
        Dim dr As DataRow = e.DataRow
        If dr.IsNull("结束日期") = False AndAlso dr.IsNull("生产周期") = False  Then
            dr("开始日期") = dr("结束日期").AddDays(-dr("生产周期"))
        End If
End Select


--  作者:ppxxww
--  发布时间:2012/12/5 20:54:00
--  

谢谢你

 


--  作者:ppxxww
--  发布时间:2012/12/5 20:59:00
--  

1. 不过不能纠错

 

当在输入“开始日期“和”结束日期“时,不小心造成”结束日期“早于“开始日期“时,电脑能智能纠正

 

手工先“开始日期“输入2012-12-1,在”结束日期“2012-11-30 电脑能智能纠正”结束日期“跟“开始日期“一样为2012-12-1

 

手工先结束日期“2012-11-30,在”开始日期“输入2012-12-1“电脑能智能纠正”开始日期“跟“结束日期“一样为2012-11-30  不想弹出提示对话框(”结束日期“不能早于“开始日期),鼠标不能移开

2.   你的生产周期要比实际生产周期少一天
[此贴子已经被作者于2012-12-5 21:07:15编辑过]

--  作者:有点甜
--  发布时间:2012/12/5 21:18:00
--  

1、少一天的问题你可以自己解决的,在代码中加1就行:

 

Select Case e.col.Name
    Case "开始日期","结束日期"
        Dim dr As Row = e.Row
        If dr.IsNull("开始日期") = False AndAlso dr.IsNull("结束日期") = False  Then
            Dim tp As TimeSpan = dr("结束日期") - dr("开始日期")
            dr("生产周期") = tp.TotalDays + 1
        End If
End Select
Select Case e.col.name
    Case "开始日期","生产周期"
        Dim dr As Row = e.Row
        If dr.IsNull("开始日期") = False AndAlso dr.IsNull("生产周期") = False  Then
            dr("结束日期") = dr("开始日期").AddDays(dr("生产周期") - 1)
        End If
End Select
Select Case e.col.name
    Case "结束日期","生产周期"
        Dim dr As Row = e.Row
        If dr.IsNull("结束日期") = False AndAlso dr.IsNull("生产周期") = False  Then
            dr("开始日期") = dr("结束日期").AddDays(-dr("生产周期") + 1)
        End If
End Select

 

 

2、其他问题,我觉得你想得太多,设计程序考虑周全是应该的,但像你这样考虑,就没有啥意义的了,人有思维的,偶尔输错,发现生产周期等于负数,就会发现并纠正的;没有必要为了几乎不会发生且容易识别的错误,而多写很多代码。

 

 


--  作者:ppxxww
--  发布时间:2012/12/5 21:54:00
--  
谢谢你!
--  作者:zerov
--  发布时间:2012/12/5 22:00:00
--  
高手呀,我刚才接触VB语言,现在稍稍能理解点命令,什么类,例、循环之类的,挺有兴趣的。