以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  日期列输入简化-已解決  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=33150)

--  作者:realredred
--  发布时间:2013/5/14 20:38:00
--  日期列输入简化-已解決

由于工作表需要频烦的输入日期

之前是用excel做的,输入日期只需要输入月和日,如: 5/14

就能达成  13-05-14  这种格式的日期

 

而狐表日期列,是要完整的输入 20130514才行

这样,令到我部门的美女们感到极大烦厌,而且经常入錯,如输入:130514,由于输入不完整,就会卡在那单元格  按取消才行

每天都喚著很麻烦

有沒有方法,只用输入月和日

就能帶出  年月日 " yy-mm-dd

急求!

[此贴子已经被作者于2013-5-18 11:24:53编辑过]

--  作者:狐狸爸爸
--  发布时间:2013/5/14 21:12:00
--  

不可以的。

 


--  作者:gryy
--  发布时间:2013/5/14 21:17:00
--  
增加辅助输入列,用于输入,日期列接受
Dim dr As DataRow = e.DataRow
Dim d As String = Date.today.year
Dim s As String= d & dr("辅助输入")
s= Mid(s,1,4) & "-" & Mid(s,5,2) & "-" & Mid(s,7,2)
dr("日期") = Cdate(s)


--  作者:yinyb36
--  发布时间:2013/5/14 21:33:00
--  
ValidateEdit 事件:
If e.Col.Name = "日期" Then
    Dim txt As String = e.Text
    If txt.Length = 4 Then
        e.Text = Date.Today.Year & txt
    ElseIf txt.Length = 6 Then
        e.Text = "20" & txt
    End If
End If
[此贴子已经被作者于2013-5-14 21:35:56编辑过]

--  作者:realredred
--  发布时间:2013/5/14 21:58:00
--  
以下是引用gryy在2013-5-14 21:17:00的发言:
增加辅助输入列,用于输入,日期列接受
Dim dr As DataRow = e.DataRow
Dim d As String = Date.today.year
Dim s As String= d & dr("辅助输入")
s= Mid(s,1,4) & "-" & Mid(s,5,2) & "-" & Mid(s,7,2)
dr("日期") = Cdate(s)

某程度上真的能简化了

这个思路很好,现在再加多几个条件,相信能完美简化,

上述的方法,是只要在"辅助输入"列上,输入4位数字(年和月) 如: 0514

那麼"日期"列,就能帶出 "2013-05-14"

勁!

但如果想设成输入帶有符号的,如: 05-14

把s变量 = 改一下,如 : s= Mid(s,1,4) & "-" & Mid(s,5,5)

也能做到了,

那麼,如何检测"辅助输入"列单元格是否帶有符号呢?

而当"辅助输入"列清空,能同步令"日期"列都一起清空?

 

 

 


--  作者:gryy
--  发布时间:2013/5/14 23:03:00
--  
Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name 
Case "辅助输入"
  If dr.IsNull(" 辅助输入") Then \'如果列为空
       dr("日期") = Nothing
  end if

dim f as string = dr("辅助输入")
  if f.len = 4

Dim d As String = Date.today.year
Dim s As String= d & dr("辅助输入")
s= Mid(s,1,4) & "-" & Mid(s,5,2) & "-" & Mid(s,7,2)
dr("日期") = Cdate(s)
  
  esle
     if  f.len = 5  then
     Dim d As String = Date.today.year
Dim s As String= d & dr("辅助输入")
s= Mid(s,1,4) & "-" & Mid(s,5,2) & "-" & Mid(s,8,2)
dr("日期") = Cdate(s)
   else
        message.show("输入错误!")
end if 
end if
  End Select

--  作者:dycjj
--  发布时间:2013/5/14 23:22:00
--  
你们部门的美女真是懒到家了,呵呵图片点击可在新窗口打开查看
--  作者:realredred
--  发布时间:2013/5/14 23:57:00
--  
沒办法,因为之前EXCEL的确输入日子比较方便,现在真的较烦锁
而且查找方式也不及EXCEL方便,能全表搜寻

--  作者:realredred
--  发布时间:2013/5/15 2:15:00
--  
if f.len = 4  出錯,
是不是要定义 f.len 

--  作者:realredred
--  发布时间:2013/5/15 2:21:00
--  
折騰出來了
应是这样

Dim message
Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "辅助输入"
        If dr.IsNull("辅助输入") Then \'如果列为空
            dr("日期") = Nothing
        End If
        
        Dim f As String = dr("辅助输入")
        If len(f) = 4
            
            Dim d As String = Date.today.year
            Dim s As String= d & dr("辅助输入")
            s= Mid(s,1,4) & "-" & Mid(s,5,2) & "-" & Mid(s,7,2)
            dr("日期") = Cdate(s)
            
        Else
            If  len(f) = 5  Then
                Dim d As String = Date.today.year
                Dim s As String= d & dr("辅助输入")
                s= Mid(s,1,4) & "-" & Mid(s,5,2) & "-" & Mid(s,8,2)
                dr("日期") = Cdate(s)
            Else
                message.show("输入错误!")
            End If
        End If
End Select