以文本方式查看主题

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

--  作者:18107532666
--  发布时间:2022/11/15 17:39:00
--  [求助]还原单位
  把10m3 或100m3还原成m3 用下列代码可以用,如果要是个或吨或公里等 用下列代码提示从字符串“”到类型“Double”的转换无效。求教各位老师如果修改下列代码。

\'还原单位
        If e.DataCol.Name = "单位" Then\'如果变动列为成本名称
            Dim dl As DataRow = e.DataRow\'定义ds为行
            If e.DataRow("单位") <> Nothing Then
                Dim s As String = e.DataRow("单位")
                Dim p As String = "[a-zA-Z]+"
                Dim r As New System.Text.RegularExpressions.Regex(p)
                Dim str = r.Split(s)
                Dim k As String = s.Substring(str(0).Length)
                dl("单位复原") = k
            End If
        End If

--  作者:有点蓝
--  发布时间:2022/11/15 20:03:00
--  
请举例一个具体的值说明问题。"单位复原"需要得到什么结果?
--  作者:18107532666
--  发布时间:2022/11/16 0:20:00
--  
比如说100m3 用上述代码可以复原成m3      如果是100吨   就不能复原成吨 或者是100立方米  也不能复原成立方米
[此贴子已经被作者于2022/11/16 0:20:41编辑过]

--  作者:有点蓝
--  发布时间:2022/11/16 8:24:00
--  
Dim s As String = "100立方米"
s = s.Replace(val(s), "")
MsgBox(s)

--  作者:18107532666
--  发布时间:2022/11/17 4:00:00
--  
如果加到我的代码中  要怎么加?
--  作者:有点蓝
--  发布时间:2022/11/17 9:10:00
--  
        If e.DataCol.Name = "单位" Then\'如果变动列为成本名称
            Dim dl As DataRow = e.DataRow\'定义ds为行
            If e.DataRow("单位") <> Nothing Then
                Dim s As String = e.DataRow("单位")
                dl("单位复原") = s.Replace(val(s), "")
            End If
        End If