以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [讨论]关于DRAWCELL 关联表判断的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=170847)

--  作者:atropos57
--  发布时间:2021/8/9 14:27:00
--  [讨论]关于DRAWCELL 关联表判断的问题
 设表A 为数据记录表   表B 为数据正常判断的标准,两个表通过地区关联。

表A:

地区     CODjin      CODchu
成都       100             20
资阳        30            10

表B(标准)
地区             CODjin     CODchu
成都               30             10
资阳               200           50

在表A上进行DrawCell 绘制判断:
如果表A 成都地区 codjin>   表B 的 成都地区 codjin,则判断为【异常】
如果表A 成都地区 codchu>   表B 的 成都地区 codchu,则判断为【异常】

如果表A 资阳地区 codjin>   表B 的 资阳地区 codjin,则判断为【异常】

代码如下:

If e.Col.IsNumeric AndAlso e.Col.Name = "CODchu"   Then
    If e.Row.IsNull(e.Col.Name) = False \'且该列已经输入内容
     
If e.Row(e.Col.Name) > e.DataTables("表B").Row("CODchu")  Then    \'如果该列的值大于表B的CODchu,

                e.Style = "异常"   \'那么用"异常"样式绘制单元格
                
            End If
        End If



============以上代码提示出错,请问应该怎么修改呢======
[此贴子已经被作者于2021/8/9 16:33:37编辑过]

--  作者:有点蓝
--  发布时间:2021/8/9 14:53:00
--  
If e.Col.Name = "CODchu" OrElse e.Col.Name = "codjin"   Then
    Dim dr As DataRow = DataTables("表B").Find("地区=\'" & e.Row("地区") & "\'")
    If dr IsNot Nothing AndAlso dr.IsNull(e.Col.Name) = False
        If e.Row(e.Col.Name) > dr(e.Col.Name)  Then    \'如果该列的值大于表B的CODchu,
            
            e.Style = "异常"   \'那么用"异常"样式绘制单元格
            
        End If
    End If
End If

--  作者:atropos57
--  发布时间:2021/8/9 16:33:00
--  
 多谢~