Foxtable(狐表)用户栏目专家坐堂 → 请教老师帮助代码修改


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

主题:请教老师帮助代码修改

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


加好友 发短信
等级:小狐 帖子:365 积分:3493 威望:0 精华:0 注册:2016/5/25 21:31:00
请教老师帮助代码修改  发帖心情 Post By:2017/11/28 14:30:00 [只看该作者]

子表与父表

示例四

假定订单和订单明细表都有一个名为“审核”的列,逻辑型。
当某个订单的所有订单明细全部通过审核后,此订单也自动审核通过,当某订单的任何一个订单明细取消审核后,此订单也自动取消审核。
为此可以将订单明细表的DataColChanged事件代码设置为:

If e.DataCol.name = "审核" Then
    Dim pr As DataRow = e.DataRow.GetParentRow("订单")
    If pr IsNot Nothing Then
        Dim crs As List(of DataRow) = pr.GetChildRows("订单明细")
        
Dim cnt As Integer
        For Each cr As DataRow In crs
            
If cr("审核") = True
                cnt = cnt + 1
            End If
        Next
        pr("审核") = (crs.Count = cnt)
    End 
If

End
 If


上面帮助代码是做了子父表关联的,

请教老师如果两个表不做关联,子表和父表分别如何写


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


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

If e.DataCol.name = "审核" Then
    Dim pr As DataRow = DataTables("订单").Find("订单编号 = '" & e.DataRow("订单编号") & "'")
    If pr IsNot Nothing Then
        Dim crs As List(of DataRow) = DataTables("订单明细").Select("订单编号 = '" & e.DataRow("订单编号") & "'")
        Dim cnt As Integer
        For Each cr As DataRow In crs
            If cr("审核") = True
                cnt = cnt + 1
            End If
        Next
        pr("审核") = (crs.Count = cnt)
    End If
End If

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


加好友 发短信
等级:小狐 帖子:365 积分:3493 威望:0 精华:0 注册:2016/5/25 21:31:00
  发帖心情 Post By:2017/11/29 17:20:00 [只看该作者]

再请教老师,实现另个功能,订单表的审核列由逻辑改为字符,
如果订单明细全部为ture,订单表审核列显示为“全部审核”
订单明细部分ture,订单表审核列显示为“部分审核”
订单明细全部为flase,订单表审核列显示为“未审核”
要怎么写

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


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

If e.DataCol.name = "审核" Then
    Dim pr As DataRow = DataTables("订单").Find("订单编号 = '" & e.DataRow("订单编号") & "'")
    If pr IsNot Nothing Then
        Dim crs As List(of DataRow) = DataTables("订单明细").Select("订单编号 = '" & e.DataRow("订单编号") & "'")
        Dim cnt As Integer
        For Each cr As DataRow In crs
            If cr("审核") = True
                cnt = cnt + 1
            End If
        Next
        pr("审核") = iif(crs.Count=cnt, "全部审核", iif(cnt=0, "未审核", "部分审核"))
    End If
End If

 回到顶部