Foxtable(狐表)用户栏目专家坐堂 → [求助]三个表之间的计算


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

主题:[求助]三个表之间的计算

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/7/22 14:19:00 [显示全部帖子]

扣款表中

If e.DataCol.Name="扣款金额" Then
    dim dr as datarow = datatables("档案表").Find("卡号='" & e.datarow("卡号") & "'")
    dim dr2 as datarow = datatables("收款表").Find("卡号='" & e.datarow("卡号") & "'")
    if dr isnot nothing then
            dr("当前余额")=dr("建档余额 ")+dr2("收款金额")-e.datarow("扣款金额")
    end if
end if

收款表

If e.DataCol.Name="收款金额" Then
    dim dr as datarow = datatables("档案表").Find("卡号='" & e.datarow("卡号") & "'")
    dim dr2 as datarow = datatables("扣款表").Find("卡号='" & e.datarow("卡号") & "'")
    if dr isnot nothing then
            dr("当前余额")=dr("建档余额 ")+e.datarow("收款金额")-dr2("扣款金额")
    end if
end if

档案表中

If e.DataCol.Name="建档余额And e.datarow("状态")="正常" Then
    dim dr as datarow = datatables("收款表").Find("卡号='" & e.datarow("卡号") & "'")
    dim dr2 as datarow = datatables("扣款表").Find("卡号='" & e.datarow("卡号") & "'")
    if dr isnot nothing then
            e.datarow("当前余额")=e.datarow("建档余额 ")+dr("收款金额")-dr2("扣款金额")
    end if
end if

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/7/22 14:50:00 [显示全部帖子]

多条件记录的话就使用 DataTables("表A").Compute 来统计


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/7/22 14:57:00 [显示全部帖子]

可以的呀.现在就是让你这么做呀.不过Compute 不是这么用的 你的代码错了.请认真参考帮助

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/7/22 15:04:00 [显示全部帖子]

Dim Total As Long
Total = 
DataTables("订单").Compute("Sum(数量)""产品 = 'PD01'"
)
Output.Show(Total)  帮助里面不是有例子说明 应该用数值类型变量来储存吗? 你用datarow是无法正常运作的.

而且下面的也应该直接用变量参加运算

If e.DataCol.Name="建档余额" And e.DataRow("状态")="正常" Then
    Dim dr As Integer = DataTables("收款表").Compute("Sum(充值金额)","卡号='" & e.DataRow("卡号") & "'")
    Dim dr2 As Integer = DataTables("规费记录").Compute("Sum(扣款金额)","卡号='" & e.DataRow("卡号") & "'")
    If dr IsNot Nothing Then
            e.DataRow("当前余额")=e.DataRow("建档余额")+dr-dr2
    End If
End If

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/7/22 15:07:00 [显示全部帖子]

你终于领悟了图片点击可在新窗口打开查看

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/7/22 15:38:00 [显示全部帖子]

你这叫什么填充啊?这不是来来去去都在为同一行赋值吗?

For Each r As DataRow In DataTables("Car").DataRows
    dim dr as datarow = DataTables("表A").addnew
    dr("卡号")=r("卡号")
    dr("车牌号")=r("车牌号")
    dr("车主")=r("车主")
   dr("扣款日期")=Date.Today
    dr("扣款金额")=je.Text
    dr("状态")="月扣"
Next

 回到顶部