以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]字符串截取后填充 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=145182) |
-- 作者:lgj716330 -- 发布时间:2020/1/10 22:07:00 -- [求助]字符串截取后填充 表A的“摘要”列是以下格式 aaaaa(bb) 想把“(”前面部分,即这里的aaaaa字符截取出来,然后筛选出不重复的内容填充到表B的"摘要"列 用Split分离出来后如何填充
|
-- 作者:有点蓝 -- 发布时间:2020/1/10 22:22:00 -- 添加一个临时的辅助列,datacolchanged事件用Split分离出来的aaaaa录入辅助列,根据辅助列取不重复的内容填充即可 |
-- 作者:lgj716330 -- 发布时间:2020/1/10 22:37:00 -- 想过用这种方法,表A用的是数据库中的视图,只是不想加载进来,想直接用窗口按钮实现 [此贴子已经被作者于2020/1/10 22:37:40编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/1/10 23:04:00 -- 肯定要加载数据,没有办法使用SQL直接处理,就算可以效率也比加载数据处理要低。如果数据量大,经常要这样用,建议还是添加辅助列把aaaaa这种数据 永久保存下来 |
-- 作者:lgj716330 -- 发布时间: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编辑过]
|
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2020/1/12 8:53:00 -- 没有表达式列 |
-- 作者:有点蓝 -- 发布时间: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 |