Foxtable(狐表)用户栏目专家坐堂 → 开始日期,结束日期,生产周期三列数值只要填入两列,剩余一列系统自动填入


  共有9286人关注过本帖树形打印复制链接

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

帅哥哟,离线,有人找我吗?
ppxxww
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:308 积分:3035 威望:0 精华:0 注册:2011/12/26 11:58:00
开始日期,结束日期,生产周期三列数值只要填入两列,剩余一列系统自动填入  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:308 积分:3035 威望:0 精华:0 注册:2011/12/26 11:58:00
  发帖心情 Post By:2012/12/5 20:54:00 [只看该作者]

谢谢你

 


 回到顶部
帅哥哟,离线,有人找我吗?
ppxxww
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:308 积分:3035 威望:0 精华:0 注册:2011/12/26 11:58:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:308 积分:3035 威望:0 精华:0 注册:2011/12/26 11:58:00
  发帖心情 Post By:2012/12/5 21:54:00 [只看该作者]

谢谢你!

 回到顶部
帅哥哟,离线,有人找我吗?
zerov
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:867 积分:6210 威望:0 精华:0 注册:2012/11/24 20:44:00
  发帖心情 Post By:2012/12/5 22:00:00 [只看该作者]

高手呀,我刚才接触VB语言,现在稍稍能理解点命令,什么类,例、循环之类的,挺有兴趣的。

 回到顶部