以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  直播:对查询表增加一个列用于计算累加金额值  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=94691)

--  作者:wfkbabro
--  发布时间:2016/12/29 16:14:00
--  直播:对查询表增加一个列用于计算累加金额值
 
 多个记账流水,字段名是一样的,用 select union all语句组合到一个 查询表里了。
 目前只有每笔流水的金额字段

 流水里有不同账户的,用筛选可以达到只看某账户的流水
 每个账户流水开始都为0,之后收入是正,支出或转出是负。
 
 目前要算出每笔流水后的账户余额。
 尝试在查询表添加表达式列sum([金额]]),得到的是全部流水的一个固定合计值
 尝试用表格控件,绑定查询表,用代码增加控件的列,出错。
 尝试用表格控件,用SQLTABLE 去读查询表,出错。
 尝试用表格控件,生成临时表,并多一个 [累加金额] 字段, 装入查询表数据,哦这种方法还没试,马上试试,是不是要用临时表之类的,如果有试过没成功的朋友给我说一下哦免得浪费时间。


谢谢色大!原来只有表达式列是只读的,我借用了一个列用来显示余额,完成了。结题,没用临时表了。
[此贴子已经被作者于2016/12/29 16:44:46编辑过]

--  作者:有点色
--  发布时间:2016/12/29 16:21:00
--  

 生成查询表后,循环每一行,把余额赋值上去不就行了?

 

Dim dt As DataTable = DataTables("表A")
For Each yh As String In dt.GetValues("用户")
    Dim ye As Double = 0
    For Each dr As DataRow In dt.Select("用户 = \'" & yh & "\'", "日期")
        dr("余额") = ye + dr("流水")
        ye = dr("余额")
    Next
Next


--  作者:wfkbabro
--  发布时间:2016/12/29 16:42:00
--  
提示 查询表是只读的,
--  作者:wfkbabro
--  发布时间:2016/12/29 16:44:00
--  


以下是引用有点色在2016/12/29 16:21:00的发言:

 生成查询表后,循环每一行,把余额赋值上去不就行了?

 

Dim dt As DataTable = DataTables("表A")
For Each yh As String In dt.GetValues("用户")
    Dim ye As Double = 0
    For Each dr As DataRow In dt.Select("用户 = \'" & yh & "\'", "日期")
        dr("余额") = ye + dr("流水")
        ye = dr("余额")
    Next
Next

谢谢色大!原来只有表达式列是只读的,我借用了一个列用来显示余额,完成了。