Dim wb As New WeUI
Select Case e.Path
Case "filter.htm"
wb.AddForm("","form1","list.htm")
With wb.AddInputGroup("form1","ipg1","现金银行余额")
.AddInput("startdate","开始日期","date")
.AddInput("enddate","结束时间","date")
End With
'
With wb.AddButtonGroup("form1","btg1",True)
.Add("btn1", "确定", "submit")
End With
Case "list.htm"
Dim sql As String = "Select * FROM {日记账} "
Dim b As New SQLGroupTableBuilder("统计表1",sql, "Data1")
Dim ft1 As fxDataSource
Dim Filter As String
b.Filter = "日期 < '"& e.PostValues("startdate") & "'"
b.Groups.AddDef("账户")
b.Groups.AddDef("账户科目代码")
b.Totals.AddDef("借方金额","借方金额1")
b.Totals.AddDef("贷方金额","贷方金额1")
ft1 = b.BuildDataSource()
Dim sql2 As String = "Select * FROM {日记账} "
Dim b1 As New SQLGroupTableBuilder("统计表2",sql2, "Data1")
Dim ft2 As fxDataSource
If e.PostValues.ContainsKey ("startdate")
Filter = "日期 >= '" & e.PostValues("startdate") & "'"
End If
If filter > "" Then filter = filter & " and "
If e.PostValues.ContainsKey ("enddate")
Filter = Filter & "日期 <= '" & e.PostValues("enddate") & "'"
End If
b1.Filter = Filter
b1.Groups.AddDef("账户")
b1.Groups.AddDef("账户科目代码")
b1.Totals.AddDef("借方金额" ,"本期借方金额")
b1.Totals.AddDef("贷方金额","本期贷方金额")
ft2 = b1.BuildDataSource()
Dim nms As String() = {"账户"} '指定连接列
ft1.Combine(nms,ft2,nms) '将销售统计数据组合到进货统计数据
ft1.show("统计表1")
With DataTables("("统计表1")") .DataCols '用表达式列计算库存数据
.Add("期初余额",Gettype(Double), "IsNull([借方金额1],0) - ISNULL([贷方金额1],0)")
.Add("期末余额",Gettype(Double), "IsNull([借方金额1],0) + ISNULL([本期借方金额],0) - ISNULL([贷方金额1],0) - ISNULL([本期贷方金额],0)")
End With'
Tables("统计表1").SetColVisibleWidth("账户|130|期初余额|90|本期借方金额|90|本期贷方金额|90|期末余额|90|")
With wb.AddTable("","Table1")
'.CreateFromTable(Tables("统计表1"),True)
.CreateFromDataTable(Tables("统计表1"),True,"账户","期初余额","本期借方金额","本期贷方金额","期末余额")
End With
End Select
e.WriteString(wb.Build)
虽然勉强可以这样用,但是不建议在服务端使用fxDataSource,因为并发会有问题。建议使用sql处理