Foxtable(狐表)用户栏目专家坐堂 → [求助]这段代码如何写?


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

主题:[求助]这段代码如何写?

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


加好友 发短信
等级:婴狐 帖子:39 积分:302 威望:0 精华:0 注册:2011/1/9 17:22:00
  发帖心情 Post By:2015/8/16 21:52:00 [只看该作者]

czy版主11楼的代码就能解决你的问题,且与重名没有关系,回复时没注意,帮你整理下czy版主的代码,你试一下

For Each r As DataRow In DataTables("储蓄积分").DataRows
    If r("身份证号码").Length = 18
        Dim dr As DataRow = DataTables("储蓄积分").Find("身份证号码 = '" & r("身份证号码").SubString(0,15) & "'")
        If dr IsNot Nothing Then '如果找到的话
            dr("身份证号码") = r("身份证号码")
        End If
    End If
Next


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


加好友 发短信
等级:小狐 帖子:314 积分:2412 威望:0 精华:0 注册:2013/9/29 20:41:00
  发帖心情 Post By:2015/8/16 22:49:00 [只看该作者]

 单独把数据导出来,用11楼的代码做没有问题。但是放在”储蓄积分“数据表的"datacolchanged”事件中运行程序就退出,没有得到我要的结果。

 

代码如下:

'完善身份证号码
If e.DataCol.Name = "身份证号码" Then
    For Each r As DataRow In DataTables("储蓄积分").DataRows
        If r("身份证号码").Length = 18
            Dim dr As DataRow = DataTables("储蓄积分").Find("客户名称 = '" & r("客户名称") & "' and 身份证号码 = '" & r("身份证号码").SubString(0,15) & "'")
            If dr IsNot Nothing Then '如果找到的话
                dr("身份证号码") = r("身份证号码")
            End If
        End If
    Next
End If

'计算储蓄积分
If e.DataCol.Name = "日均余额" Then
    If e.DataRow.IsNull(e.DataCol) = False Then
        Select Case e.DataRow(e.DataCol)
            Case 0.00 To 50000.00
                e.DataRow("储蓄积分") = 50
            Case 50000.000001 To 100000.00
                e.DataRow("储蓄积分") = 100
            Case 100000.000001 To 200000.00
                e.DataRow("储蓄积分") = 150
            Case 200000.000001 To 300000.00
                e.DataRow("储蓄积分") = 180
            Case 300000.000001 To 400000.00
                e.DataRow("储蓄积分") = 220
            Case 400000.000001 To 500000.00
                e.DataRow("储蓄积分") = 280
            Case 500000.000001 To 800000.00
                e.DataRow("储蓄积分") = 300
            Case 800000.000001 To 1000000.00
                e.DataRow("储蓄积分") = 350
            Case 1000000.00 To 2000000.00
                e.DataRow("储蓄积分") = 400
            Case 2000000.00 To 5000000.00
                e.DataRow("储蓄积分") = 500
            Case 5000000.00 To 50000000.00
                e.DataRow("储蓄积分") = 600
        End Select
    Else
        e.DataRow("储蓄积分") = Nothing
    End If
Else
    If e.DataCol.Name = "储蓄积分" Then
        DataTables("客户资料").DataCols("客户名称").RaiseDataColChanged(" 客户名称 = '" & e.DataRow("客户名称") & "' and  身份证号码 = '" & e.DataRow("身份证号码") & "'  ")
    End If
End If

 

''在客户资料中加入没有的客户
Select Case e.DataCol.name
    Case  "身份证号码","客户名称"
        If e.DataRow.Isnull("身份证号码")=False Then
            Dim dr As DataRow = DataTables("客户资料").Find(" 客户名称 ='" & e.DataRow("客户名称") & "'  and   身份证号码 ='" & e.DataRow("身份证号码") & "'")
            If dr Is Nothing Then
                dr = DataTables("客户资料").addnew
                dr("客户名称")=e.DataRow("客户名称")
                dr("身份证号码")=e.DataRow("身份证号码")
               
            End If
        End If
End  Select

 

 

 


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


加好友 发短信
等级:超级版主 帖子:106957 积分:544004 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2015/8/16 23:01:00 [只看该作者]

改成这样试一下
For Each r As DataRow In DataTables("储蓄积分").DataRows
    If r("身份证号码").Length = 18
        Dim dr As DataRow = DataTables("储蓄积分").Find("身份证号码  ='"  & r("身份证号码").SubString(0,16)  & “'" )
        If dr IsNot Nothing Then '如果找到的话
            dr("身份证号码") = r("身份证号码")
        End If
    End If
Next

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/17 9:25:00 [只看该作者]

这段代码单独做一个按钮运行,不要写到datacolchanged事件啊

 

 For Each r As DataRow In DataTables("储蓄积分").DataRows
        If r("身份证号码").Length = 18
            Dim dr As DataRow = DataTables("储蓄积分").Find("客户名称 = '" & r("客户名称") & "' and 身份证号码 = '" & r("身份证号码").SubString(0,15) & "'")
            If dr IsNot Nothing Then '如果找到的话
                dr("身份证号码") = r("身份证号码")
            End If
        End If
    Next


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/17 9:27:00 [只看该作者]

如果写到DataColChanged就这样写

 

If e.DataCol.Name = "身份证号码" Then
    Dim r As DataRow = e.DataRow
    If r("身份证号码").Length = 18
        Dim dr As DataRow = DataTables("储蓄积分").Find("客户名称 = '" & r("客户名称") & "' and 身份证号码 = '" & r("身份证号码").SubString(0,15) & "'")
        If dr IsNot Nothing Then '如果找到的话
            systemready = False
            dr("身份证号码") = r("身份证号码")
            systemready = True
        End If
    End If
Next


 回到顶部
总数 25 上一页 1 2 3