Foxtable(狐表)用户栏目专家坐堂 → 条件取值


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

主题:条件取值

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


加好友 发短信
等级:三尾狐 帖子:668 积分:7918 威望:0 精华:0 注册:2015/8/24 9:02:00
条件取值  发帖心情 Post By:2017/10/8 17:14:00 [只看该作者]

根据收入支出、交易详细 给 对方账号 列附值 
以收入支出为取值条件,取交易详细中指定的两个账号其中一串数字附值给对方账号列
注:收入时   账号为第一串数字     支出时:账号为第二串数字

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:附值.foxdb



Dim Tel As String =  e.DataRow("交易详细信息")
Dim Parts() As String = Tel.Split("账号 ")
If e.DataRow("收入支出") = "收入" Then
    e.DataRow("对方账号") = Parts(0)
ElseIf e.DataRow("收入支出") = "支出" Then
    e.DataRow("对方账号") = Parts(1)
End If


.NET Framework 版本:2.0.50727.8689
Foxtable 版本:2017.8.19.1
错误所在事件:表,cw_lsbzzs, DataColChanged
详细错误信息:
调用的目标发生了异常。
索引超出了数组界限。
[此贴子已经被作者于2017/10/8 17:22:47编辑过]

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


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

datacolchanged事件

 

Select Case e.DataCol.name
    Case "收入支出", "交易详细"
        Dim str As String = e.DataRow("交易详细")
        e.DataRow("对方账号") = Nothing
        If str > "" Then
            Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "[0-9]{10,}")
            If mc.count >= 2 Then
                If e.DataRow("收入支出") = "收入" Then
                    e.DataRow("对方账号") = mc(0).value
                ElseIf e.DataRow("收入支出") = "支出" Then
                    e.DataRow("对方账号") = mc(1).value
                End If
            End If
        End If
End Select


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


加好友 发短信
等级:三尾狐 帖子:668 积分:7918 威望:0 精华:0 注册:2015/8/24 9:02:00
  发帖心情 Post By:2017/10/8 17:26:00 [只看该作者]

代码有效   谢谢有点甜老师     
我的代码   错在哪里了

Dim Tel As String =  e.DataRow("交易详细信息")
Dim Parts() As String = Tel.Split("账号 ")
If e.DataRow("收入支出") = "收入" Then
    e.DataRow("对方账号") = Parts(0)
ElseIf e.DataRow("收入支出") = "支出" Then
    e.DataRow("对方账号") = Parts(1)
End If

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


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

Split 函数,只能根据单个字符分割。

 

你可以试试

 

Dim Parts() As String = Tel.Replace("账号 ", "@").split("@")

 


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


加好友 发短信
等级:三尾狐 帖子:668 积分:7918 威望:0 精华:0 注册:2015/8/24 9:02:00
  发帖心情 Post By:2017/10/20 13:52:00 [只看该作者]

Dim Tel As String = e.DataRow("详细信息")
Dim Parts() As String = Tel.Split(" ")
If e.DataRow("用途") = Nothing Then
e.DataRow("用途") = parts(parts.Length-1)
End If
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:核销测试.foxdb


上面代码是可用,但是不完美
要求:有用途两个字时再取值填入,没有用途时则为空
[此贴子已经被作者于2017/10/20 13:54:57编辑过]

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


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

Dim Tel As String = e.DataRow("详细信息")
Dim Parts() As String = Tel.Split(" ")
If tel.Contains("用途") Then
    e.DataRow("用途") = parts(parts.Length-1)
End If

 回到顶部