Foxtable(狐表)用户栏目专家坐堂 → 字符可以转成时间吗?


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

主题:字符可以转成时间吗?

帅哥,在线噢!
cyrollin
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:822 积分:5776 威望:0 精华:0 注册:2015/2/3 22:19:00
字符可以转成时间吗?  发帖心情 Post By:2015/2/8 20:53:00 [显示全部帖子]

我的这个列是字符类型 设定了几个常用的时间,使用下拉列表选择出来,比如:
上午 09:00
上午 09:30
上午 10:00
下午 01:00
下午 01:30

请问可以把这种字符类型的转换成时间类型的吗,以方便我以后按时间先后排序.


 回到顶部
帅哥,在线噢!
cyrollin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:822 积分:5776 威望:0 精华:0 注册:2015/2/3 22:19:00
  发帖心情 Post By:2015/2/8 21:06:00 [显示全部帖子]

我增加了一个表达示列,输入了您的代码,但显示这样:


图片点击可在新窗口打开查看此主题相关图片如下:123456.png
图片点击可在新窗口打开查看


 回到顶部
帅哥,在线噢!
cyrollin
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:822 积分:5776 威望:0 精华:0 注册:2015/2/3 22:19:00
  发帖心情 Post By:2015/2/8 21:25:00 [显示全部帖子]

哦,我把新增加的这一列,修改成了字符型,
现在我在前面一列选择出时间后,就会把数据自动填入新增的这一列,

If e.DataCol.Name = "时间" Then
    If e.NewValue = Nothing Then
        e.DataRow("排序时间") = Nothing
    Else
        e.DataRow("排序时间") = Substring(e.DataRow("时间"),3,len(e.DataRow("时间")))

    End If
End If

显示 substring 未定义

 回到顶部
帅哥,在线噢!
cyrollin
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:822 积分:5776 威望:0 精华:0 注册:2015/2/3 22:19:00
  发帖心情 Post By:2015/2/8 21:31:00 [显示全部帖子]

works!

 回到顶部
帅哥,在线噢!
cyrollin
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:822 积分:5776 威望:0 精华:0 注册:2015/2/3 22:19:00
  发帖心情 Post By:2015/2/8 21:35:00 [显示全部帖子]

but i can't understand why the above "substring"  should be located at the back of e.datarow ? :(

 回到顶部
帅哥,在线噢!
cyrollin
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:822 积分:5776 威望:0 精华:0 注册:2015/2/3 22:19:00
  发帖心情 Post By:2015/2/8 21:57:00 [显示全部帖子]

之前好好的,不知道怎么现在出现这个提示了:

错误所在事件:表,派工表,DataColChanged
详细错误信息:
System.Reflection.TargetInvocationException: 调用的目标发生了异常。 ---> System.Data.ReadOnlyException: 列“排序时间”为只读。
   在 System.Data.DataRow.set_Item(DataColumn column, Object value)
   在 System.Data.DataRow.set_Item(String columnName, Object value)
   在 Foxtable.DataRow.set_Item(String string_0, Object value)
   在 UserCode.DataColChanged(DataColEventArgs e)
   --- 内部异常堆栈跟踪的结尾 ---
   在 System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
   在 System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
   在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
   在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   在 Foxtable.DataTable.dataTable_0_ColumnChanged(Object sender, DataColumnChangeEventArgs e)

 回到顶部
帅哥,在线噢!
cyrollin
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:822 积分:5776 威望:0 精华:0 注册:2015/2/3 22:19:00
  发帖心情 Post By:2015/2/8 22:01:00 [显示全部帖子]

Datacolchanged 事件所有代码是这样的:

If e.DataCol.Name = "日期" Then
    If e.NewValue = Nothing Then
        e.DataRow("星期") = Nothing
    Else
        e.DataRow("星期") = Format(e.DataRow("日期"), "dddd")
        e.DataTable.AddNew
    End If
End If

If e.DataCol.Name = "时间" Then
    If e.NewValue = Nothing Then
        e.DataRow("排序时间") = Nothing
    Else
        e.DataRow("排序时间") = e.DataRow("时间").Substring(3)
    End If
End If



If e.DataCol.Name = "日期" Then
    If e.NewValue = Nothing Then
        e.DataRow("星期") = Nothing
    Else
        e.DataRow("星期") = Format(e.DataRow("日期"), "dddd")
    End If
Else If (e.DataCol.Name = "星期" OrElse e.DataCol.Name = "新老客户") AndAlso e.DataRow("新老客户")="老客户" Then
    Dim i As Integer = 0
    Dim dr As DataRow
    SystemReady = False
    For Each fdr As DataRow In DataTables("客户数据").Select("固定时间 = '" & e.DataRow("星期") & "'")
        If i = 0 Then
            dr = e.DataRow
        Else
            dr = e.DataTable.AddNew
        End If
        dr("日期") = e.DataRow("日期")
        dr("星期") = e.DataRow("星期")
        dr("新老客户") = e.DataRow("新老客户")
        dr("客户信息") = fdr("综合信息")
        dr("客户要求") = fdr("客户要求")
        dr("时间") = fdr("时间")
        i += 1
    Next
    e.DataTable.DeleteFor("日期 is Null")
    e.DataTable.AddNew
    SystemReady = True
End If

 回到顶部
帅哥,在线噢!
cyrollin
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:822 积分:5776 威望:0 精华:0 注册:2015/2/3 22:19:00
  发帖心情 Post By:2015/2/8 22:01:00 [显示全部帖子]

列“排序时间”为只读。 要改成读写权限吗? 怎么修改呢?

 回到顶部
帅哥,在线噢!
cyrollin
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:822 积分:5776 威望:0 精华:0 注册:2015/2/3 22:19:00
  发帖心情 Post By:2015/2/8 22:02:00 [显示全部帖子]

这列的属性  允许编辑=true

 回到顶部
帅哥,在线噢!
cyrollin
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:822 积分:5776 威望:0 精华:0 注册:2015/2/3 22:19:00
  发帖心情 Post By:2015/2/8 22:16:00 [显示全部帖子]

哦,原来如此,挺讲究的。。。。谢谢

 回到顶部
总数 18 1 2 下一页