以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  表达式循环引用  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=135301)

--  作者:lfz123
--  发布时间:2019/5/23 9:33:00
--  表达式循环引用
在设计入库单列表的加载树的时候错误提示:

图片点击可在新窗口打开查看此主题相关图片如下:错误提示.png
图片点击可在新窗口打开查看

窗口的afterload代码如下:
Dim dt As DataTable
Dim b As New SQLGroupTableBuilder("统计表1","入库单列表")
b.C
b.Groups.AddDef("供应商简称")
b.Groups.AddDef("入库日期",DateGroupEnum.Year,"年")
b.Groups.AddDef("入库日期",DateGroupEnum.Month,"月")
b.Totals.AddDef("含税金额",AggregateEnum.Sum,"含税金额") 
b.Decimals = 2
dt = b.Build(True) \'参数设置为True,生成一个临时表,不在主界面显示
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree(dt,"供应商简称|年|月")
trv.StopRedraw
For Each nd As WinForm.TreeNode In trv.AllNodes
    Dim nm As String = nd.DataRow("供应商简称")
    Dim Year As Integer = nd.DataRow("年")
    Dim Month As Integer = nd.DataRow("月")    
    Select Case nd.Level
        Case 0
            nd.Text = nd.text & "(¥:" & dt.Compute("Sum(含税金额)","供应商简称 = \'"& nm & "\'") & "元)"
        Case 1
            nd.Text = nd.text & "年(¥:" & dt.Compute("Sum(含税金额)","供应商简称 = \'" & nm & "\' And 年 = " & year) & "元)"
        Case 2
            nd.Text = nd.text & "月(¥:" & dt.Compute("Sum(含税金额)","供应商简称 = \'" & nm & "\' And 年 = " & year & " And 月 = " & month) & "元)"
    End Select
Next
trv.Nodes.Insert("加载所有行","加载所有行(¥:" & dt.Compute("Sum(含税金额)") & "元)",0)
trv.ResumeRedraw

入库单列表的含税金额设置的表达式如下:

图片点击可在新窗口打开查看此主题相关图片如下:入库单列表结构.png
图片点击可在新窗口打开查看


--  作者:有点蓝
--  发布时间:2019/5/23 11:18:00
--  
不支持直接使用表达列的,试试

Dim b As New SQLGroupTableBuilder("统计表1","入库单列表")
b.ConnectionName = 
b.AddTable("入库单列表","入库单号","入库单","入库单号")
b.Groups.AddDef("供应商简称")
b.Groups.AddDef("{入库单列表}.入库日期",DateGroupEnum.Year,"年")
b.Groups.AddDef("{入库单列表}.入库日期",DateGroupEnum.Month,"月")
b.Totals.AddExp("含税金额",AggregateEnum.Sum,"{入库单}.含税金额")
b.Decimals = 2
dt = b.Build(True)