Foxtable(狐表)用户栏目专家坐堂 → [求助]子表计算


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

主题:[求助]子表计算

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


加好友 发短信
等级:小狐 帖子:350 积分:2927 威望:0 精华:0 注册:2015/4/23 19:53:00
[求助]子表计算  发帖心情 Post By:2017/2/22 22:19:00 [只看该作者]

老师 您好

 

   我想达到以下效果,请问要怎样弄,是在表事件还是在窗口保存时写代码。

 

  当子表的“日期”列有值时,判断所有的子表行“日期”列是否都有值,如果有找出最晚的日期,把此日期赋值给父表当前行的“日期”列。

 

子表的日期是代码生成的,并非手工输入。

 

谢谢了

[此贴子已经被作者于2017/2/23 0:06:36编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/23 1:55: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
        Dim maxDate As Date
        For Each cr As DataRow In crs
            If cr.IsNull("日期") Then
                Exit For
            End If
            If maxDate < cr("日期") Then maxDate = cr("日期")
            cnt = cnt + 1
           
        Next
        If crs.Count = cnt Then
            pr("日期") = maxDate
        Else
            pr("日期") = Nothing
        End If
    End If
End If


 回到顶部