Foxtable(狐表)用户栏目专家坐堂 → 执行以上操作正常,但执行以下简化代码出错,是Bug还是那里问题??


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

主题:执行以上操作正常,但执行以下简化代码出错,是Bug还是那里问题??

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


加好友 发短信
等级:童狐 帖子:243 积分:1819 威望:0 精华:0 注册:2016/1/21 12:44:00
执行以上操作正常,但执行以下简化代码出错,是Bug还是那里问题??  发帖心情 Post By:2022/3/17 10:30:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:图片2.png
图片点击可在新窗口打开查看
'//设置String
Select Case e.DataCol.Name
    Case "item_name","item_subname"
        If e.DataRow.IsNull("item_name") = False Then
            Dim Str As String = e.DataRow("item_name")
            Str = IIf(RegEx.IsMatch(Str,"\[.*\]"),RegEx.Replace(Str,"\[.*\]",""),Str)
            If Str.Length > 14 Then
                Str = Str.Remove(14)
            End If
            e.DataRow("item_subname") = Str
        End If
End Select
执行以上操作正常,但执行以下简化代码出错,是Bug还是那里问题???
'//设置String
Select Case e.DataCol.Name
    Case "item_name","item_subname"
        If e.DataRow.IsNull("item_name") = False Then
            Dim Str As String = e.DataRow("item_name")
            Str = IIf(RegEx.IsMatch(Str,"\[.*\]"),RegEx.Replace(Str,"\[.*\]",""),Str)
            Str = IIf(Str.Length > 14,Str.Remove(14),Str)
            e.DataRow("item_subname") = Str
        End If
End Select



.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.1.10.2
错误所在事件:表,t_bd_item_info,DataColChanged
详细错误信息:
调用的目标发生了异常。
startIndex 必须小于字符串长度。
参数名: startIndex


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


命令窗口执行
Dim Str As String = "[百货.特价]10元文体玩具制品"
Str = IIf(RegEx.IsMatch(Str,"\[.*\]"),RegEx.Replace(Str,"\[.*\]",""),Str)
Str = IIf(Str.Length > 14,Str.Remove(9),Str)
MsgBox(Str)

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


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


[此贴子已经被作者于2022/3/17 10:40:40编辑过]

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


加好友 发短信
等级:童狐 帖子:243 积分:1819 威望:0 精华:0 注册:2016/1/21 12:44:00
  发帖心情 Post By:2022/3/17 10:45:00 [显示全部帖子]

谢谢大神,看来这是VB系统的一个Bug图片点击可在新窗口打开查看,还是自已有时间重写一个IIf函数算了。

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


加好友 发短信
等级:童狐 帖子:243 积分:1819 威望:0 精华:0 注册:2016/1/21 12:44:00
SQL数据库目标是20字节,FoxTable默认是20字符  发帖心情 Post By:2022/3/17 10:59:00 [显示全部帖子]

SQL数据库目标是20字节,FoxTable默认是20字符,1字符=2字节
10个汉字=20个字节,如何通过什么函数来判断混合的字符不超过20个字节呢?
谢谢指教!
图片点击可在新窗口打开查看

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


加好友 发短信
等级:童狐 帖子:243 积分:1819 威望:0 精华:0 注册:2016/1/21 12:44:00
  发帖心情 Post By:2022/3/17 12:03:00 [显示全部帖子]

msgbox(UKey.LenStrA("A中B文C中D文E中F文G中H文G"))
''' 结果是 25字节
保留20字节以内
下一步问题
如何删除多余的混合字节呢?
传统是字符删除?
传统方法没法有效地计算并去除字符

 回到顶部