Foxtable(狐表)用户栏目专家坐堂 → 下面的代码,怎么改 能够识别文本编号?


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

主题:下面的代码,怎么改 能够识别文本编号?

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


加好友 发短信
等级:五尾狐 帖子:1062 积分:9781 威望:0 精华:0 注册:2012/3/13 5:23:00
下面的代码,怎么改 能够识别文本编号?  发帖心情 Post By:2015/11/20 1:50:00 [只看该作者]


If Tables("发货单号.发货公斤").Count = 0 Then
    Return  '那么返回
Else If Tables("发货单号.发货公斤").Count > 0 Then
e.DataRow("bill") = Tables("发货单号.发货公斤").Compute("Max(bill)") + 1
End If

 

代码如上

 

如果输入数字,正常运行,没有问题

例如 我输入    1234

 

 

如果在bill里输入文本加数子就报错

例如我 输入 a111

 

错误所在事件:表,发货公斤,DataRowAdding
详细错误信息:
System.Reflection.TargetInvocationException: 调用的目标发生了异常。 ---> System.InvalidCastException: 从字符串“a1”到类型“Double”的转换无效。 ---> System.FormatException: 输入字符串的格式不正确。

 

 

请问这种情况应该怎么改? 非常感谢!!!

 

bill本身为文本 不是数字 字段

 

[此贴子已经被作者于2015/11/20 1:50:58编辑过]

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


加好友 发短信
等级:狐神 帖子:4760 积分:34608 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2015/11/20 6:34:00 [只看该作者]

改为字符型

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2015/11/20 8:45:00 [只看该作者]

文本编号不能进行简单的+1取值,必须有一定的规律,便于编程处理

 

参考http://www.foxtable.com/help/topics/3008.htm

 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/20 9:17:00 [只看该作者]

参考代码

 

Dim str As String = "abcef0180"
Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "[^1-9]+|[0-9]+")
If mc.count = 2 Then
    str = mc(0).value & mc(1).value + 1
    msgbox(str)
End If


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


加好友 发短信
等级:五尾狐 帖子:1062 积分:9781 威望:0 精华:0 注册:2012/3/13 5:23:00
  发帖心情 Post By:2015/11/20 15:46:00 [只看该作者]

研究了两天,还是不明白,有没有相关的例子啊?除了openqq什么那个就没有别的办法了么?

[此贴子已经被作者于2015/11/20 15:47:22编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/20 16:02:00 [只看该作者]

汗,看4楼啊。

 

 

Dim str As String = Tables("发货单号.发货公斤").Compute("Max(bill)")

Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "[^1-9]+|[0-9]+")
If mc.count = 2 Then
    str = mc(0).value & mc(1).value + 1
    msgbox(str)

    e.DataRow("bill") = sttr
End If


 回到顶部