以文本方式查看主题

-  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=64251)

--  作者:cyrollin
--  发布时间:2015/2/8 20:53:00
--  字符可以转成时间吗?
我的这个列是字符类型 设定了几个常用的时间,使用下拉列表选择出来,比如:
上午 09:00
上午 09:30
上午 10:00
下午 01:00
下午 01:30

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


--  作者:有点甜
--  发布时间:2015/2/8 20:58:00
--  
 加一个表达式列,设置表达式 substring(第四列,3,len(第四列))
--  作者:cyrollin
--  发布时间:2015/2/8 21:06:00
--  
我增加了一个表达示列,输入了您的代码,但显示这样:


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


--  作者:有点甜
--  发布时间:2015/2/8 21:07:00
--  
 时间列,必须是字符列。字符列不会有你这问题。
[此贴子已经被作者于2015/2/8 21:07:27编辑过]

--  作者:cyrollin
--  发布时间: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 未定义

--  作者:有点甜
--  发布时间:2015/2/8 21:29:00
--  
e.DataRow("排序时间") = e.DataRow("时间").Substring(2)

 


--  作者:cyrollin
--  发布时间:2015/2/8 21:31:00
--  
works!
--  作者:cyrollin
--  发布时间:2015/2/8 21:35:00
--  
but i can\'t understand why the above "substring"  should be located at the back of e.datarow ? :(
--  作者:有点甜
--  发布时间:2015/2/8 21:38:00
--  

http://www.foxtable.com/help/topics/0240.htm

 


--  作者:cyrollin
--  发布时间: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)