以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  窗口显示临时表  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=115053)

--  作者:实话实说
--  发布时间:2018/2/28 13:25:00
--  窗口显示临时表
我想生成的临时表在窗口显示,下面代码提示Tables("欠货统计_欠货统计表")不存在

\'欠货统计
\'生成统计表
Dim dtb As New DataTableBuilder("欠货统计")
dtb.AddDef("客户", Gettype(String), 32)
dtb.AddDef("产品", Gettype(String), 32)
dtb.AddDef("颜色", Gettype(String), 32)
dtb.AddDef("订单数量", Gettype(Integer))
dtb.AddDef("发货数量", Gettype(Integer))
dtb.AddDef("欠货数量", Gettype(Integer))
dtb.Build()
\'填充数据
Dim f As New Filler
f.SourceTable = DataTables("销售订单明细")
f.SourceCols = "客户,产品,颜色" 
f.DataTable = DataTables("欠货统计")
f.DataCols = "客户,产品,颜色"
f.Fill()
\'统计
For Each dr As DataRow In DataTables("欠货统计").DataRows
    dr("订单数量") = DataTables("销售订单明细").Compute("Sum(订单数量)","[客户] = \'" & dr("客户") & "\' and [产品] = \'" & dr("产品") & "\' and [颜色] = \'" & dr("颜色") & "\'")
    dr("发货数量") = DataTables("产品明细").Compute("Sum(出仓数量)","[客户] = \'" & dr("客户") & "\' and [产品] = \'" & dr("产品") & "\' and [颜色] = \'" & dr("颜色") & "\'")
    dr("欠货数量") = dr("订单数量") -  dr("发货数量")
Next
\'MainTable= Tables("统计")

Tables("欠货统计_欠货统计表").DataSource = DataTables("欠货统计")
\'设置月份的列宽
\'For Each c As Col In Tables("欠货统计_欠货统计表").Cols 
     \'If c.DataCol.IsNumeric Then
        \'c.Width = 50
     \'End If
\'Next
Tables("欠货统计_欠货统计表").AutoSizeCols() \'设置自动列宽
\'删除数值为空的记录
\'DataTables("欠货统计").DeleteFor("[合计] = 0" )
forms("欠货统计").open()
[此贴子已经被作者于2018/2/28 13:26:09编辑过]

--  作者:有点甜
--  发布时间:2018/2/28 14:47:00
--  

Tables("欠货统计_欠货统计表").DataSource = DataTables("欠货统计")

 

改成

 

Forms("窗口1").Controls("Table1").Table.DataSource = DataTables("欠货统计")


--  作者:实话实说
--  发布时间:2018/2/28 15:00:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:snap1.jpg
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2018/2/28 15:31:00
--  

你窗口1必须打开之后,才能执行

 

Forms("窗口1").Controls("Table1").Table.DataSource = DataTables("欠货统计")

 

 


--  作者:实话实说
--  发布时间:2018/2/28 15:39:00
--  
代码在窗口的AfterLoad事件中为什不行呢
--  作者:有点甜
--  发布时间:2018/2/28 15:45:00
--  
以下是引用实话实说在2018/2/28 15:39:00的发言:
代码在窗口的AfterLoad事件中为什不行呢

 

那你改成下面这样,报什么错?是否确定这句代码报错的?

 

e.form.Controls("Table1").Table.DataSource = DataTables("欠货统计")


--  作者:实话实说
--  发布时间:2018/2/28 15:46:00
--  
没事了,谢谢
--  作者:实话实说
--  发布时间:2018/3/1 11:18:00
--  
临时统计表中如何删除欠货数量为0的记录和设置表空白区域颜色?以下代码都不行

Tables("欠货统计_产品欠货表").DeleteFor("[欠货数量] = 0" )
Forms("欠货统计").Controls("产品欠货表").DeleteFor("[欠货数量] = 0" )
Tables("欠货统计_产品欠货表").SysStyles("EmptyArea").BackColor = Color.WhiteSmoke \'表空白区的背景设置为灰色
Forms("欠货统计").Controls("产品欠货表").Table.SysStyles("EmptyArea").BackColor = Color.WhiteSmoke \'表空白区的背景设置为灰色

--  作者:有点甜
--  发布时间:2018/3/1 11:37:00
--  

Tables("欠货统计_产品欠货表").DataTable.DeleteFor("[欠货数量] = 0" )

 

或者

 

Forms("欠货统计").Controls("产品欠货表").Table.DataTable.DeleteFor("[欠货数量] = 0" )


--  作者:实话实说
--  发布时间:2018/3/1 14:14:00
--  
8楼的问题解决了.还有,
在1楼的代码中, dr("欠货数量") = dr("订单数量") -  dr("发货数量")
当订单数量或发货数量有空值时如何进行计算?