Foxtable(狐表)用户栏目专家坐堂 → [求助]字符串截取后填充


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

主题:[求助]字符串截取后填充

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


加好友 发短信
等级:六尾狐 帖子:1390 积分:10708 威望:0 精华:0 注册:2013/11/8 15:27:00
[求助]字符串截取后填充  发帖心情 Post By:2020/1/10 22:07:00 [只看该作者]

表A的“摘要”列是以下格式
aaaaa(bb)
想把“(”前面部分,即这里的aaaaa字符截取出来,然后筛选出不重复的内容填充到表B的"摘要"列
用Split分离出来后如何填充

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


加好友 发短信
等级:超级版主 帖子:110590 积分:562846 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/1/10 22:22:00 [只看该作者]

添加一个临时的辅助列,datacolchanged事件用Split分离出来的aaaaa录入辅助列,根据辅助列取不重复的内容填充即可

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


加好友 发短信
等级:六尾狐 帖子:1390 积分:10708 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2020/1/10 22:37:00 [只看该作者]

想过用这种方法,表A用的是数据库中的视图,只是不想加载进来,想直接用窗口按钮实现

[此贴子已经被作者于2020/1/10 22:37:40编辑过]

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


加好友 发短信
等级:超级版主 帖子:110590 积分:562846 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/1/10 23:04:00 [只看该作者]

肯定要加载数据,没有办法使用SQL直接处理,就算可以效率也比加载数据处理要低。如果数据量大,经常要这样用,建议还是添加辅助列把aaaaa这种数据  永久保存下来

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


加好友 发短信
等级:六尾狐 帖子:1390 积分:10708 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2020/1/11 12:09:00 [只看该作者]

If e.DataCol.Name = "摘要" Then 
Dim zy As String = e.DataRow("摘要") 
Dim zys() As String = zy.Split("(")
    If e.DataRow.IsNull("摘要") Then 
        e.DataRow("摘要类别") = Nothing 
    Else
        e.DataRow("摘要类别") =zys(0) 
End If
End If

Split("(")没分离

If e.DataCol.Name = "摘要"
    If e.NewValue = Nothing Then
        e.DataRow("摘要类别") = Nothing
    Else
        Dim ary() As String = e.NewValue.split("(")
        e.DataRow("摘要类别") = ary(0)
    End If
End If

以上也不行,没起作用
[此贴子已经被作者于2020/1/11 12:37:50编辑过]

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


加好友 发短信
等级:超级版主 帖子:110590 积分:562846 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/1/11 13:46:00 [只看该作者]

摘要是表达式列?

If e.DataCol.Name = "摘要"
    If e.DataRow.isnull("摘要") Then
        e.DataRow("摘要类别") = Nothing
    Else
        Dim ary() As String = e.NewValue.split("(")
        e.DataRow("摘要类别") = ary(0)
    End If
End If

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


加好友 发短信
等级:六尾狐 帖子:1390 积分:10708 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2020/1/12 8:53:00 [只看该作者]

没有表达式列
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目9.foxdb



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


加好友 发短信
等级:超级版主 帖子:110590 积分:562846 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/1/12 20:34:00 [只看该作者]

单元格录入的是全角的括号


'''
If e.DataCol.Name = "第一列" ‘注意上面3个单引号:http://www.foxtable.com/webhelp/topics/1273.htm
    If e.DataRow.isnull("第一列") Then
        e.DataRow("第二列") = Nothing
    Else
        Dim ary() As String = e.NewValue.replace("(","(").split("(")
        e.DataRow("第二列") = ary(0)
    End If
End If

 回到顶部