以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  临时表如何计算余额流水帐  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=122504)

--  作者:nbsugu_z
--  发布时间:2018/7/26 21:51:00
--  临时表如何计算余额流水帐
临时表如何计算余额,没有表事件啊
--  作者:有点甜
--  发布时间:2018/7/26 22:22:00
--  

生成临时表后,全局表事件,然后写代码

 

http://www.foxtable.com/webhelp/scr/0671.htm

 


--  作者:nbsugu_z
--  发布时间:2018/7/27 10:42:00
--  

在哪个事件写代码合适呢


--  作者:有点甜
--  发布时间:2018/7/27 10:43:00
--  
以下是引用nbsugu_z在2018/7/27 10:42:00的发言:

在哪个事件写代码合适呢

 

参考流水账设计

 

http://www.foxtable.com/webhelp/scr/1572.htm

 

如果是问在什么地方开启全局表事件,在你生成临时表之后的代码加上开启代码。


--  作者:nbsugu_z
--  发布时间:2018/7/27 11:08:00
--  

好的,试试下,还有问题,就是这个临时表要增加一下“余额”列,代码是何写?

 


--  作者:有点甜
--  发布时间:2018/7/27 11:20:00
--  
以下是引用nbsugu_z在2018/7/27 11:08:00的发言:

好的,试试下,还有问题,就是这个临时表要增加一下“余额”列,代码是何写?

 

 

http://www.foxtable.com/webhelp/scr/1428.htm

 


--  作者:nbsugu_z
--  发布时间:2018/7/27 14:06:00
--  在分组汇统计生成的临时表中余额还是没法计算

在分组汇统计生成的临时表中余额还是没法计算  ,要增加一列余额列计算余额,还是实现不了,有没有代码?

 

我试了几次都不成功,不是无法计算就是无法显示出来、或者是datacol不属....之类事件。

 

在临时表中要指定A列和B列相减生成一个余额列,不是横向表达式相减。

[此贴子已经被作者于2018/7/27 14:08:45编辑过]

--  作者:有点甜
--  发布时间:2018/7/27 14:41:00
--  

既然是统计表,那就在生成之后,添加一列,然后循环表格每一行,计算余额值。

 

不会做上传具体实例说明。


--  作者:客人
--  发布时间:2018/7/27 15:37:00
--  

click代码如下


 


Dim bd1 As New GroupTableBuilder("统计表D1",DataTables("pzk"))
Dim dt1 As fxDataSource \'工程发票
bd1.Groups.AddDef("发票1_所属项目","项目分类")
bd1.Groups.AddDef("发票1_收票方","摘要")
\'bd1.Groups.AddDef("发票1_内容","内容")
bd1.Groups.AddDef("年月")
bd1.Groups.AddDef("发票1_记帐日期", DateGroupEnum.None, "记帐日期")


bd1.Totals.AddDef("发票1_金额","工程发票_金额")
bd1.Totals.AddDef("发票1_税额","工程发票_税额")
bd1.Totals.AddDef("发票1_价税合计","工程发票_价税合计")
bd1.Filter = "发票1_所属项目 is not null"
dt1 = bd1.BuildDataSource()


 


 


Dim bd2 As New GroupTableBuilder("统计表D2",DataTables("pzk"))
Dim dt2  As fxDataSource
bd2.Groups.AddDef("收款_所属项目","项目分类")
bd2.Groups.AddDef("收款_付款方","摘要")
bd2.Groups.AddDef("年月")
bd2.Groups.AddDef("收款_记帐日期", DateGroupEnum.None, "记帐日期")
bd2.Totals.AddDef("收款_金额","工程发票_收到工程款")
bd2.Filter = "收款_所属项目 is not null"
dt2 = bd2.BuildDataSource()


 


 


Dim arr() As String = {"项目分类","记帐日期","摘要","年月"}


dt1.Combine(arr,dt2,arr)


dt1.show("统计表D") \'将统计结果绑定到Table"统计表D"


DataTables("统计表D").DataCols.Add("按发票未收工程款", Gettype(Double))  \'增加一列
DataTables("统计表D").GlobalHandler.DataColChanged = True  \'开户全局表事件


 


 


以下全局表事件:


Select Case e.DataCol.Name
    Case "工程发票_价税合计","工程发票_收到工程款"
        For Each dr As DataRow In e.DataTable.Select("[记帐日期] >= " & e.DataRow("记帐日期"))
            Dim Val1 As Double = e.DataTable.Compute("Sum(工程发票_价税合计)","[记帐日期] <= " & dr("记帐日期"))
            Dim Val2 As Double = e.DataTable.Compute("Sum(工程发票_收到工程款)","[记帐日期] <= " & dr("记帐日期"))
            dr("按发票未收工程款") = Val1 - Val2
        Next
End Select


 


结果是:余额不会出现


--  作者:有点甜
--  发布时间:2018/7/27 15:40:00
--  

生成后循环每一行赋值

 

Dim dt As DataTable = DataTables("统计表D")
For Each dr As DataRow In dt.Select("")
    Dim Val1 As Double = dt.Compute("Sum(工程发票_价税合计)","[记帐日期] <= " & dr("记帐日期"))
    Dim Val2 As Double = dt.Compute("Sum(工程发票_收到工程款)","[记帐日期] <= " & dr("记帐日期"))
    dr("按发票未收工程款") = Val1 - Val2
Next