Foxtable(狐表)用户栏目专家坐堂 → 如何从字符型列数据中自动读出其它列数据?


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

主题:如何从字符型列数据中自动读出其它列数据?

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


加好友 发短信
等级:小狐 帖子:339 积分:3364 威望:0 精华:0 注册:2011/3/22 22:52:00
如何从字符型列数据中自动读出其它列数据?  发帖心情 Post By:2017/8/9 7:10:00 [只看该作者]

从类似案号“(2016)苏1311民初字第002号”,根据“2016”自动读出“年度”数据,根据“民初”自动填写类别代码,自动填写流水号。
1、年度从案号中读出
2、民监类别代码为AMJ,民申代码为AMS,民初类别代码为AMC
3、流水号为“年份后两位+当天月份
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test.table

+当天日期+4位顺序号”,如1708080001。
[此贴子已经被作者于2017/8/9 7:23:11编辑过]

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


加好友 发短信
等级:小狐 帖子:339 积分:3364 威望:0 精华:0 注册:2011/3/22 22:52:00
  发帖心情 Post By:2017/8/9 7:12:00 [只看该作者]

附件没上传上去?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/9 9:16:00 [只看该作者]

DataColChanged

 

Select Case e.DataCol.name
    Case "案号"
        Dim str As String = e.DataRow("案号")
        Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "(?<=\()[0-9]+?(?=\))")
        If mc.count>0 Then
            e.DataRow("年度列") = mc(0).value
        Else
            e.DataRow("年度列") = Nothing
        End If
        If str.Contains("民初") Then
            e.DataRow("类别") = "AMC"
        ElseIf str.Contains("民监")Then
            e.DataRow("类别") = "AMJ"
        ElseIf str.Contains("民申") Then
            e.DataRow("类别") = "AMS"
        Else
            e.DataRow("类别") = Nothing
        End If
    Case "年度列"
        If e.DataRow("年度列") > "" AndAlso e.DataRow("年度列").length >= 4 Then
            Dim bh As String = e.DataRow("年度列").Substring(2) & Format(Date.Today, "MMdd")
            If e.DataRow("流水号").contains(bh) = False Then
                Dim max As String = e.DataTable.Compute("max(流水号)", "流水号 like '" & bh & "%'")
                Dim i As Integer = 1
                If max > "" Then
                    i = max.SubString(bh.Length)+11
                End If
                e.DataRow("流水号") = bh & format(i, "0000")
            End If
        End If
End Select


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


加好友 发短信
等级:小狐 帖子:339 积分:3364 威望:0 精华:0 注册:2011/3/22 22:52:00
  发帖心情 Post By:2017/8/9 14:39:00 [只看该作者]

非常感谢版主!回答好快,深受启发。但还存在几个小问题:
1、应该还有一栏,“编号”。没有自动读出和填写,见附件表test.table.
2、“流水号”不能重复,当天流程号应自然排序。
3、其它语句都能读懂,这句读不懂,也没找到相关资料:
 Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "(?<=\()[0-9]+?(?=\))")

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/9 16:11:00 [只看该作者]

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test (1).table

http://www.runoob.com/regexp/regexp-syntax.html

 


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


加好友 发短信
等级:小狐 帖子:339 积分:3364 威望:0 精华:0 注册:2011/3/22 22:52:00
  发帖心情 Post By:2017/8/9 17:37:00 [只看该作者]

真是高手!你们的服务速度和服务质量真是令人赞叹。非常感谢!
以前购买过易表,再学习一下FoxTable,准备购买一份。

 回到顶部