Foxtable(狐表)用户栏目专家坐堂 → 跨表统计


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

主题:跨表统计

美女呀,离线,留言给我吧!
13775189031
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:870 积分:6018 威望:0 精华:0 注册:2017/12/19 14:46:00
跨表统计  发帖心情 Post By:2024/11/25 16:04:00 [显示全部帖子]

请教老师:“原材料采购明细表”中“到齐”列全部勾选,则“预算清单”中的“当前进展_完成"自动打钩,只要“原材料采购明细表”“到齐”列有任何一行未打钩,则“预算清单”中的“当前进展_完成"都不打钩
下面的代码有什么问题?“预算清单”没有自动勾选
Select Case e.DataCol.name
    Case "预算编号"
        If e.DataRow.IsNull("预算编号") Then
            DataTables("原材料采购明细表").DeleteFor("预算编号='" & e.DataRow("预算编号") & "'")
            e.DataRow("当前进展_完成") = False
        Else
            If e.DataRow.GetChildRows("原材料采购明细表").Count > 0
                Dim cnt As Integer = DataTables("原材料采购明细表").Compute("count(预算编号)","预算编号='" & e.NewValue  & "' and (到齐 = False )")
                e.DataRow("当前进展_完成") = (cnt=0)
            End If
        End If
End Select

 回到顶部
美女呀,离线,留言给我吧!
13775189031
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:870 积分:6018 威望:0 精华:0 注册:2017/12/19 14:46:00
  发帖心情 Post By:2024/11/25 16:49:00 [显示全部帖子]

很奇怪,点击“到齐”会自动增加一行

Dim dr2 As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "到货_数量"
        If dr2.IsNull("到货_数量") = False Then '如果数量或单价为空
            dr2("收货人") = User.name
        Else
            dr2("收货人") = Nothing
        End If
    Case "到齐"
        Dim dr As DataRow = DataTables("预算清单").Find("[预算编号] = '" & e.DataRow("预算编号") & "'")
        If dr IsNot Nothing Then
            DataTables("预算清单").DataCols("预算编号").RaiseDataColChanged(dr)
        End If
End Select

 回到顶部
美女呀,离线,留言给我吧!
13775189031
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:870 积分:6018 威望:0 精华:0 注册:2017/12/19 14:46:00
  发帖心情 Post By:2024/11/26 10:56:00 [显示全部帖子]

请老师帮忙看下,哪里的问题,在"原材料采购明细表"中点击“到全”就会增加行,而且“预算清单”中也无法显示“到全”(“到全”的列名就是“当前进展_完成”)
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:模块事业部采购管理台账.foxdb


 回到顶部
美女呀,离线,留言给我吧!
13775189031
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:870 积分:6018 威望:0 精华:0 注册:2017/12/19 14:46:00
  发帖心情 Post By:2024/11/26 10:57:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:采购管理台账数据库.rar


 回到顶部
美女呀,离线,留言给我吧!
13775189031
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:870 积分:6018 威望:0 精华:0 注册:2017/12/19 14:46:00
  发帖心情 Post By:2024/11/26 11:23:00 [显示全部帖子]

147258

 回到顶部
美女呀,离线,留言给我吧!
13775189031
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:870 积分:6018 威望:0 精华:0 注册:2017/12/19 14:46:00
  发帖心情 Post By:2024/11/26 12:54:00 [显示全部帖子]

那要怎么修改能够同时满足?我把后面两段代码删掉以后,“原材料采购明细表”点击“到全”,还是会生成行

[此贴子已经被作者于2024/11/26 13:12:56编辑过]

 回到顶部
美女呀,离线,留言给我吧!
13775189031
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:870 积分:6018 威望:0 精华:0 注册:2017/12/19 14:46:00
  发帖心情 Post By:2024/11/26 13:54:00 [显示全部帖子]

这样么?麻烦老师帮忙修改
Dim dr2 As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "预算编号"
        If dr2.IsNull("预算编号") Then
            DataTables("原材料采购明细表").DeleteFor("预算编号='" & e.DataRow("预算编号") & "'")
            DataTables("机械外购件采购明细表").DeleteFor("预算编号='" & e.DataRow("预算编号") & "'")
            DataTables("电气外购件采购明细表").DeleteFor("预算编号='" & e.DataRow("预算编号") & "'")
            dr2("当前进展_完成") = False
        Else
            If dr2.GetChildRows("原材料采购明细表").Count > 0
                Dim cnt As Integer = DataTables("原材料采购明细表").Compute("count(预算编号)", "预算编号='" & e.NewValue & "' and (到全 = False )")
                If dr2.GetChildRows("机械外购件采购明细表").Count > 0
                    Dim cnt1 As Integer = DataTables("机械外购件采购明细表").Compute("count(预算编号)", "预算编号='" & e.NewValue & "' and (到全 = False )")
                    If dr2.GetChildRows("电气外购件采购明细表").Count > 0
                        Dim cnt2 As Integer = DataTables("电气外购件采购明细表").Compute("count(预算编号)", "预算编号='" & e.NewValue & "' and (到全 = False )")
                        dr2("当前进展_完成") = (cnt + cnt1 + cnt2 = 0)
                    End If
                End If
            End If
        End If
End Select

 回到顶部
美女呀,离线,留言给我吧!
13775189031
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:870 积分:6018 威望:0 精华:0 注册:2017/12/19 14:46:00
  发帖心情 Post By:2024/11/26 14:11:00 [显示全部帖子]

明细表中增加这段代码,点击“到全”就会自动增加行是什么原因,而且在表“预算清单”中,也没有自动勾选“到全”。这段删掉点击“到全”就没有增加行,会是跟哪里的代码冲突呢?


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
[此贴子已经被作者于2024/11/26 14:12:36编辑过]

 回到顶部
美女呀,离线,留言给我吧!
13775189031
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:870 积分:6018 威望:0 精华:0 注册:2017/12/19 14:46:00
  发帖心情 Post By:2024/11/26 15:59:00 [显示全部帖子]

那要怎么修改?


 回到顶部
美女呀,离线,留言给我吧!
13775189031
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:870 积分:6018 威望:0 精华:0 注册:2017/12/19 14:46:00
  发帖心情 Post By:2024/11/26 16:16:00 [显示全部帖子]

“预算清单”为父表,“原材料采购明细表”、“机械外购件采购明细表”、“电气外购件采购明细表”为子表,在“预算清单”中登记预算信息,然后对采购物资分类,也就是在“物资说明”选填“原材料”、“机械外购件”、“电气外购件”,根据这个分类到各个子表中生成行

如果“预算清单”中删除此行,那对应子表中的所有行都自动删除
[此贴子已经被作者于2024/11/26 16:20:24编辑过]

 回到顶部
总数 13 1 2 下一页