以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  什么原因呢  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=121951)

--  作者:nbsugu_z
--  发布时间:2018/7/16 14:00:00
--  什么原因呢

Dim bd1 As New sqlGroupTableBuilder("统计表1","pzk")
bd1.C
Dim dt1 As fxDataSource
bd1.Groups.AddDef("成本_所属项目","项目分类")
bd1.Groups.AddDef("成本_提供方","材料供应商")
bd1.Totals.AddDef("成本_金额","主材料结算_金额")
bd1.Totals.AddDef("成本_数量","主材料结算_数量")
bd1.Totals.AddExp("成本_摘要", "成本_摘要", AggregateEnum.max)
dt1 = bd1.BuildDataSource()

Dim bd2 As New sqlGroupTableBuilder("统计表2","pzk")
bd2.C
Dim dt2  As fxDataSource
bd2.Groups.AddDef("付款_所属项目","项目分类")
bd2.Groups.AddDef("付款_收款方","材料供应商")
bd2.Totals.AddDef("付款_金额","已付金额")
bd2.Filter  = "付款_类别 = \'主材料\'"
dt2 = bd2.BuildDataSource()

Dim arr() As String = {"项目分类","材料供应商"}
dt1.Combine(arr,dt2,arr)

dt1.show("统计表") \'将统计结果绑定到Table  暂时不直接显示


Dim t As Table = Tables("统计表")
With t.DataTable.DataCols  \'用表达式列计算库存数据
    .Add("未付款金额",Gettype(Double), "IsNull([主材料结算_金额],0) - ISNULL([已付金额],0)")
End With

With Tables("统计表")
    .MergeMode = MergeModeEnum.Standard
    .MergeCols.Clear()
    .MergeCols.Add("项目分类")
    .MergeCols.Add("材料供应商")
    .MergeSort = "项目分类,材料供应商"
    .AllowMerge = True
End With

Dim g As Subtotalgroup
t.SubtotalGroups.Clear()
t.GroupAboveData = False
t.TreeVisible = False
t.SpillNode = True

g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "*"
g.TotalOn = "主材料结算_金额,主材料结算_数量,已付金额,未付款金额"
g.Caption = "总计"
t.SubtotalGroups.Add(g)

t.Subtotal()
 MainTable = t

\'以下显示格式
Tables("统计表").cols("已付金额").DataCol.setFormat("#,###.00")
Tables("统计表").cols("主材料结算_金额").DataCol.setFormat("#,###.00")
Tables("统计表").cols("未付款金额").DataCol.setFormat("#,###.00")
Tables("统计表").cols("主材料结算_数量").DataCol.setFormat("#,###.000")

Tables("统计表").SetColVisibleWidth("项目分类|60|材料供应商|500|主材料结算_金额|120|主材料结算_数量|120|已付金额|120|未付款金额|120|成本_摘要|120")
Dim frm As WinForm.Form
frm = Forms("窗口1")
frm.Open()
MainTable = Tables("统计表")

\'结束

 

运行代码后“材料供应商”显示都为空白了,其它没问题,是什么问题呢


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

分别生成表格,是否正常?

 

Dim bd1 As New sqlGroupTableBuilder("统计表1","pzk")
bd1.Groups.AddDef("成本_所属项目","项目分类")
bd1.Groups.AddDef("成本_提供方","材料供应商")
bd1.Totals.AddDef("成本_金额","主材料结算_金额")
bd1.Totals.AddDef("成本_数量","主材料结算_数量")
bd1.Totals.AddExp("成本_摘要", "成本_摘要", AggregateEnum.max)
bd1.Build
Dim bd2 As New sqlGroupTableBuilder("统计表2","pzk")
bd2.Groups.AddDef("付款_所属项目","项目分类")
bd2.Groups.AddDef("付款_收款方","材料供应商")
bd2.Totals.AddDef("付款_金额","已付金额")
bd2.Filter  = "付款_类别 = \'主材料\'"
bd2.Build


 


--  作者:nbsugu_z
--  发布时间:2018/7/16 14:36:00
--  

Dim frm As WinForm.Form
frm = Forms("窗口1")
frm.Open()
MainTable = Tables("统计表")

 

把这个删掉是正常的


--  作者:nbsugu_z
--  发布时间:2018/7/16 15:37:00
--  

经过多次调试,在窗口中用Table1列表控件后在窗口显示统计表。如果要修改网络线颜色时,一修改颜色就会出现列空白,老师可以 自己可以做个测试,我测试N次了。用默认的表格网线没问题。这可以大问题啊


--  作者:有点蓝
--  发布时间:2018/7/16 15:44:00
--  
写了什么修改网络线颜色的代码?
--  作者:nbsugu_z
--  发布时间:2018/7/16 15:49:00
--  

确实是这个问题

[此贴子已经被作者于2018/7/16 15:50:21编辑过]

--  作者:nbsugu_z
--  发布时间:2018/7/16 15:57:00
--  

我同时修改了网络线颜色和宽度,现在发现新问题,修改颜色没问题,就是宽度不能是\'2",修改“2”就会出现不正常显示。其它数字都可以,以上问题全部作废。现在发现的就是这个问题。


--  作者:有点甜
--  发布时间:2018/7/16 17:30:00
--  

我这样测试没问题,请做个例子发上来测试

 

Tables("表A").grid.styles.Normal.Border.Color = Color.Red
Tables("表A").grid.styles.Normal.Border.Style = 1
Tables("表A").grid.styles.Normal.Border.width = 2
Tables("表A").grid.styles.Normal.Border.Direction = 0 \'0-2


--  作者:nbsugu_z
--  发布时间:2018/7/16 21:21:00
--  

对了,我是在属性中设置的

 


--  作者:有点蓝
--  发布时间:2018/7/16 21:26:00
--  
应该这样绑定统计表

Tables("窗口1_Table1").DataSource = dt1 \'将统计结果绑定到Table

绑定后使用类似8楼的代码重新设置