Foxtable(狐表)用户栏目专家坐堂 → [求助]RaiseDataColChanged刷新时报错


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

主题:[求助]RaiseDataColChanged刷新时报错

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


加好友 发短信
等级:小狐 帖子:373 积分:2732 威望:0 精华:0 注册:2012/2/17 20:05:00
[求助]RaiseDataColChanged刷新时报错  发帖心情 Post By:2017/7/20 8:40:00 [只看该作者]

我在客户管理表中的DataColChanged事件中写了一些代码,
Select Case e.DataCol.Name
    Case "进店视力左眼","进店视力右眼","进店视力双眼","最近测视右眼","最近测视左眼","最近测视双眼","最近测视时间"
    If e.DataCol.Name = "客户编号" AndAlso e.DataRow.IsNull("客户编号")=False Then
    Dim dr21 As DataRow
    Dim dr22 As DataRow
    Dim dr23 As DataRow
    Dim dr24 As DataRow
    Dim dr25 As DataRow
    Dim dr26 As DataRow
  
    dr21 = DataTables("理疗管理").Find("[客户编号] = '" & e.DataRow("客户编号") & "' and [左裸眼视力] Is not Null","_Identify") ' 找出该客户编号左眼第一次视力值
    dr22 = DataTables("理疗管理").Find("[客户编号] = '" & e.DataRow("客户编号") & "' and [右裸眼视力] Is not Null","_Identify")  ' 找出该客户编号右眼第一次视力值
    dr23 = DataTables("理疗管理").Find("[客户编号] = '" & e.DataRow("客户编号") & "' and [双裸眼视力] Is not Null","_Identify") ' 找出该客户编号双眼第一次视力值
    dr24 = DataTables("理疗管理").Find("[客户编号] = '" & e.DataRow("客户编号") & "' and [左裸眼视力] Is not Null","_Identify Desc") ' 找出该客户编号右眼最后一次视力值
    dr25 = DataTables("理疗管理").Find("[客户编号] = '" & e.DataRow("客户编号") & "' and [右裸眼视力] Is not Null","_Identify Desc") ' 找出该客户编号左眼最后一次视力值
    dr26 = DataTables("理疗管理").Find("[客户编号] = '" & e.DataRow("客户编号") & "' and [双裸眼视力] Is not Null","_Identify Desc") ' 找出该客户编号双眼最后一次视力值
    If dr21 IsNot Nothing  Then 
        e.DataRow("进店视力左眼") = dr21("左裸眼视力")
    End If
     If dr22 IsNot Nothing  Then      
        e.DataRow("进店视力右眼")=dr22("右裸眼视力")
     End If
     If dr23 IsNot Nothing  Then      
        e.DataRow("进店视力双眼")=dr23("双裸眼视力")
     End If 
     If dr24 IsNot Nothing  Then      
        e.DataRow("最近测视左眼")=dr24("左裸眼视力")
     End If
      If dr25 IsNot Nothing  Then      
        e.DataRow("最近测视右眼")=dr25("右裸眼视力")
     End If
      If dr26 IsNot Nothing  Then      
        e.DataRow("最近测视双眼")=dr26("双裸眼视力")
        e.DataRow("最近测视时间")=dr26("理疗时间")
     End If
 End If
End Select
又在收费管理表中DataColChanged事件中写了以下代码
Select Case e.DataCol.Name
    Case "应收金额","实收金额","优惠金额","总次数","剩余次数","消费名称"
        Dim pr As DataRow
        pr = DataTables("客户管理").Find("客户编号 = '" & e.DataRow("客户编号") & "'")
        If pr IsNot Nothing Then
             DataTables("客户管理").DataCols("客户编号").RaiseDataColChanged(pr)
            End If
End Select
当收费管理表中的 消费名称列变化是,老是报错,请大师们帮忙。

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


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

1、你这个代码 DataTables("客户管理").DataCols("客户编号").RaiseDataColChanged(pr) 触发的是客户编号的重置列,并不会执行你贴出来的1楼的代码。

 

2、你1楼的代码编写没有问题。

 

3、报什么错?具体图片贴出来。


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


加好友 发短信
等级:小狐 帖子:373 积分:2732 威望:0 精华:0 注册:2012/2/17 20:05:00
  发帖心情 Post By:2017/7/20 9:12:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:报错.jpg
图片点击可在新窗口打开查看

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


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

你datacolchanged肯定有其他代码

 

http://www.foxtable.com/webhelp/scr/1485.htm

 


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


加好友 发短信
等级:小狐 帖子:373 积分:2732 威望:0 精华:0 注册:2012/2/17 20:05:00
  发帖心情 Post By:2017/7/20 9:19:00 [只看该作者]

有其他代码,我逐一注销掉所有代码 ,就是有这行代码是报错,我再按您说的方法检查一下


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


加好友 发短信
等级:小狐 帖子:373 积分:2732 威望:0 精华:0 注册:2012/2/17 20:05:00
  发帖心情 Post By:2017/7/20 15:30:00 [只看该作者]

甜老师,找出来报错的代码了,你帮忙看看,当进店视力左眼,右眼等单元格为空时才报错。
Dim dr28 As DataRow = e.DataRow
If dr28.IsNull("进店视力左眼") = False  OrElse Dr28.IsNull("最近测视左眼") = False Then
    Dim jdzy() As String = e.DataRow("进店视力左眼").Split(" ")
    Dim zjzy() As String = e.DataRow("最近测视左眼").Split(" ")
    Dim dr11 As DataRow = DataTables("新旧视力对照表").Find("小数记录法 = '" & jdzy(1) & "'") ' 进店左眼Dr11
    Dim dr14 As DataRow = DataTables("新旧视力对照表").Find("小数记录法 = '" & zjzy(1) & "'") ' 最近左眼dr14
     If dr14 IsNot Nothing  AndAlso dr11 IsNot Nothing  Then
    dr28("左眼提升幅度") = (Val(dr14("五分记录法")) - Val(dr11("五分记录法")))/Val(dr11("五分记录法"))
End If 
End If 
If dr28.IsNull("进店视力右眼") = False OrElse Dr28.IsNull("最近测视右眼") = False Then
     Dim jdyy() As String = e.DataRow("进店视力右眼").Split(" ")
    Dim zjyy() As String = e.DataRow("最近测视右眼").Split(" ")
    Dim dr12 As DataRow = DataTables("新旧视力对照表").Find("小数记录法 = '" & jdyy(1) & "'") ' 进店右眼Dr12
    Dim dr15 As DataRow = DataTables("新旧视力对照表").Find("小数记录法 = '" & zjyy(1) & "'") ' 最近右眼dr15
     If dr15 IsNot Nothing  AndAlso dr12 IsNot Nothing  Then
    dr28("右眼提升幅度") =  (Val(dr15("五分记录法")) - Val(dr12("五分记录法")))/Val(dr12("五分记录法"))
   End If 
End If 
If dr28.IsNull("进店视力左眼") = False OrElse Dr28.IsNull("最近测视左眼") = False Then
       Dim jdsy() As String = e.DataRow("进店视力双眼").Split(" ")
    Dim zjsy() As String = e.DataRow("最近测视双眼").Split(" ")
    Dim dr13 As DataRow = DataTables("新旧视力对照表").Find("小数记录法 = '" & jdsy(1) & "'") ' 进店双眼dr13
    Dim dr16 As DataRow = DataTables("新旧视力对照表").Find("小数记录法 = '" & zjsy(1) & "'") ' 最近双眼dr16
     If dr16 IsNot Nothing  AndAlso dr13 IsNot Nothing  Then
    dr("双眼提升幅度") =  (Val(dr16("五分记录法")) - Val(dr13("五分记录法")))/Val(dr13("五分记录法"))
    End If 
 End If 

[此贴子已经被作者于2017/7/20 15:31:45编辑过]

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


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

看红色代码

 

If dr28.IsNull("进店视力左眼") = False  OrElse Dr28.IsNull("最近测视左眼") = False Then
    Dim jdzy() As String = e.DataRow("进店视力左眼").Split(" ")
    Dim zjzy() As String = e.DataRow("最近测视左眼").Split(" ")
    If jdzy.length >= 2 AndAlso zjzy.length >= 2 Then
        Dim dr11 As DataRow = DataTables("新旧视力对照表").Find("小数记录法 = '" & jdzy(1) & "'") ' 进店左眼Dr11
        Dim dr14 As DataRow = DataTables("新旧视力对照表").Find("小数记录法 = '" & zjzy(1) & "'") ' 最近左眼dr14
        If dr14 IsNot Nothing  AndAlso dr11 IsNot Nothing  Then
            dr28("左眼提升幅度") = (Val(dr14("五分记录法")) - Val(dr11("五分记录法")))/Val(dr11("五分记录法"))
        End If
    End If
End If


 回到顶部