以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  统计表增加行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=188212)

--  作者:dengk03
--  发布时间:2023/9/7 17:34:00
--  统计表增加行
很久之前写的程序,窗口中生成统计表,然后Tables("库存管理_table1").addnew给统计表新增行,以前运行都没问题,突然发现无法添加行了。是什么原因?

Dim b As New SQLGroupTableBuilder("成品库存","出入库")

b.filter = "货物类型 = \'成品\' AND 库名 like \'" & str & "\'"
b.Groups.AddDef("货物编号") \'添加客户列用于分组
b.Groups.AddDef("货物名称") \'添加产品列用于分组
b.Groups.AddDef("配方编号") \'添加产品列用于分组
b.Groups.AddDef("规格") \'添加产品列用于分组
b.Totals.AddDef("数量") \'添加数量列用于统计
b.Groups.AddDef("单位") \'添加产品列用于分组
\'b.Build \'生成统计表
Tables("库存管理_table1").datasource = b.Builddatasource 
Tables("库存管理_table1").SetColVisibleWidth("货物编号|40|货物名称|110|配方编号|45|规格|110|单位|30|数量|40")
\'Tables("库存管理_table1").DataTable.GlobalHandler.DrawCell = True
Tables("库存管理_table1").DataTable.AddUserStyle("缺货", Color.coral, Color.black)
Tables("库存管理_table1").filter = "数量 <> 0"
Tables("库存管理_table1").Cols("数量").GrandTotal = True \'指定要合计的列
Tables("库存管理_table1").GrandTotal = True \'显示合计模式

--  作者:有点蓝
--  发布时间:2023/9/7 17:41:00
--  
开启编辑状态试试

Tables("库存管理_table1").datasource = b.Builddatasource 
Tables("库存管理_table1").AllowEdit=True

--  作者:dengk03
--  发布时间:2023/9/7 17:57:00
--  
Tables("库存管理_table1").filter = "数量 <> 0"

问题出在这一句,这句注释掉后就可以增加行了。怎么改呢

--  作者:有点蓝
--  发布时间:2023/9/7 20:14:00
--  
添加筛选后?不能添加,而是不符合条件,不显示而已。

新增后给数量列赋值不等于0的值就可以了,比如

dim r as row = Tables("库存管理_table1").addnew
r("数量") = -1