Foxtable(狐表)用户栏目专家坐堂 → [求助] 跨表引用


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

主题:[求助] 跨表引用

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


加好友 发短信
等级:幼狐 帖子:60 积分:525 威望:0 精华:0 注册:2018/11/1 21:27:00
[求助] 跨表引用  发帖心情 Post By:2018/12/5 20:44:00 [显示全部帖子]

老师,附件订单表有一个总金额,是需要统计订单明细中同一订单编号下的金额,统计后回写入订单表中。

订单表总金额是数据列,订单明细的金额列是表达式列,金额=数量*单价,如何设计?请赐教,万分感谢!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.table


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


加好友 发短信
等级:幼狐 帖子:60 积分:525 威望:0 精华:0 注册:2018/11/1 21:27:00
  发帖心情 Post By:2018/12/5 21:38:00 [显示全部帖子]

图片点击可在新窗口打开查看
老师,下载打开显示文件版本过高,无法正常打开,请升级您的FOXTABLE!,什么原因?谢谢!
[此贴子已经被作者于2018/12/5 22:01:53编辑过]

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


加好友 发短信
等级:幼狐 帖子:60 积分:525 威望:0 精华:0 注册:2018/11/1 21:27:00
  发帖心情 Post By:2018/12/5 21:58:00 [显示全部帖子]

老师,下载打开显示文件版本过高,无法正常打开,请升级您的FOXTABLE!,什么原因?谢谢!

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


加好友 发短信
等级:幼狐 帖子:60 积分:525 威望:0 精华:0 注册:2018/11/1 21:27:00
  发帖心情 Post By:2018/12/5 22:53:00 [显示全部帖子]

老师,可以了,您是否在订单表的DataColChanged表事件中加了代码:

If e.DataCol.Name = "订单编号" Then '发生变化的是产品列.
    '则累计订单表中同名产品总的销售量,然后赋值给变动行的数量列
    e.DataRow("总金额") = DataTables("订单明细").Compute("Sum(金额)", "订单编号 = '" & e.NewValue & "'")
End If

附件中但是我把他加上,还是出不来!请看看原因,谢谢!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.table


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


加好友 发短信
等级:幼狐 帖子:60 积分:525 威望:0 精华:0 注册:2018/11/1 21:27:00
  发帖心情 Post By:2018/12/5 23:17:00 [显示全部帖子]

喔,您在明细表中加了:Select e.DataCol.Name
    Case "订单编号"
        If e.DataRow.IsNull("订单编号") Then
            e.DataRow("序号1") = Nothing
        Else
            Dim lb As String = e.DataRow("订单编号")
            If e.DataRow("序号1").StartsWith(lb) = False '如果单据编号前缀不符
                Dim max As String
                Dim idx As Integer
                max = e.DataTable.Compute("Max(序号1)","订单编号 = '" & lb & "' And [_Identify] <> " & e.DataRow("_Identify")) '取得该类别的最大编号
                If max > "" Then '如果存在最大编号
                    idx = CInt(max.Substring(13,2)) + 1 '获得最大编号的后三位顺序号1,并加1
                Else
                    idx = 1 '否则顺序号1等于1
                End If
                e.DataRow("序号1") = lb & Format(idx,"00")
            End If
        End If
    Case "数量","单价"
        DataTables("订单").DataCols("订单编号").RaiseDataColChanged("订单编号='" & e.DataRow("订单编号") & "'")
End Select

 回到顶部