我在 业务发生表主表中记录每次出入库的日期、单据号、采购员、收发标志、库房等公共信息
在业务发生表子表中记录货品编号、数量、金额等信息, 这俩个表通过一个子段连接
主表 .id =子表.id
然后我又作了2个查询:入库子表、出库子表,包含 库房 货品编号 数量 金额
在生成余额时 我 先生成2个记录集 一个出库 一个入库 (都已经用分组 ,合计 统计出了各个仓库,货品编号 的数量 金额)后又通过2个for next 循环 从入库记录集中 减去 出库记录集中的每一项这样 入库记录集 1000项 出库记录集 2000项 最多可能会循环 1000 *2000 次
我觉得会时间太长,在低配置的机子上还可能会死机
如果 2000个货品 每月 入库2000笔次 出库3000笔次 那。。这还是移动平均法 For i = 1 To mrc.RecordCount For z = 1 To rst.RecordCount
If rst.Fields("货品编号") = mrc.Fields("货品编号") And rst.Fields("仓库") = mrc.Fields("仓库") Then
mrc.Fields("数量总计") = mrc.Fields("数量总计") - rst.Fields("数量总计")
Exit For
End If
rst.MoveNext
Next rst.MoveFirst
mrc.MoveNext
Next 作分页 又不知道如何作1个月的还好 ,要是12个月的那数据量就太大,查询起来费时
不知道用友的方案是怎么样的请教教我
如果用sql2000数据库 能由服务器动态生成这个表吗 就是所有查询都在服务器端完成
客户端能直接得到结果集吗我的源代码 在附件这中,
我这个问题的代码在《 库存查询》窗口 中 关键代码 与其他的代码关系 不多
主要是调用了 一个查询函数 usercx 在模块1中
记录集是从mdb查询 :出库子表、入库子表中查的我的博客上有这个代码
http://hlm.xishui.net/blog/blogview.asp?logID=3
在业务发生表子表中记录货品编号、数量、金额等信息, 这俩个表通过一个子段连接
主表 .id =子表.id
然后我又作了2个查询:入库子表、出库子表,包含 库房 货品编号 数量 金额
在生成余额时 我 先生成2个记录集 一个出库 一个入库 (都已经用分组 ,合计 统计出了各个仓库,货品编号 的数量 金额)后又通过2个for next 循环 从入库记录集中 减去 出库记录集中的每一项这样 入库记录集 1000项 出库记录集 2000项 最多可能会循环 1000 *2000 次
我觉得会时间太长,在低配置的机子上还可能会死机
如果 2000个货品 每月 入库2000笔次 出库3000笔次 那。。这还是移动平均法 For i = 1 To mrc.RecordCount For z = 1 To rst.RecordCount
If rst.Fields("货品编号") = mrc.Fields("货品编号") And rst.Fields("仓库") = mrc.Fields("仓库") Then
mrc.Fields("数量总计") = mrc.Fields("数量总计") - rst.Fields("数量总计")
Exit For
End If
rst.MoveNext
Next rst.MoveFirst
mrc.MoveNext
Next 作分页 又不知道如何作1个月的还好 ,要是12个月的那数据量就太大,查询起来费时
不知道用友的方案是怎么样的请教教我
如果用sql2000数据库 能由服务器动态生成这个表吗 就是所有查询都在服务器端完成
客户端能直接得到结果集吗我的源代码 在附件这中,
我这个问题的代码在《 库存查询》窗口 中 关键代码 与其他的代码关系 不多
主要是调用了 一个查询函数 usercx 在模块1中
记录集是从mdb查询 :出库子表、入库子表中查的我的博客上有这个代码
http://hlm.xishui.net/blog/blogview.asp?logID=3
然后用for循环来从入库的记录集中减出出库的的数量如:入库记录集mrc
编号 数量 仓库
001 120 03
001 15 02
005 150 01
005 97 02
004 18 04
出库记录集rst
编号 数量 仓库
001 35 03
001 8 02
005 90 01
004 18 04我用for循环 For i = 1 To mrc.RecordCount For z = 1 To rst.RecordCount
If rst.Fields("编号") = mrc.Fields("编号") And rst.Fields("仓库") = mrc.Fields("仓库") Then
mrc.Fields("数量") = mrc.Fields("数量") - rst.Fields("数量")
Exit For
End If
rst.MoveNext
Next rst.MoveFirst
mrc.MoveNext
Next得到需要的余额结果集mrc
编号 数量 仓库
001 85 03
001 7 02
005 60 01
005 97 02如果 入库的记录集 2000条记录
出库的记录集3000条记录
那最多可能循环2000 *3000 次
才能得到这个余额表
查询时间太长
而且这还是一个月的数据量
如果是12个月的那不查死机了不知道用友等软件是如何实现的
用友用了分页分页肯定是要用的
但不知道 两个记录集相减得到的需要的记录集如何分页还有能不能通过每月月结的时候生成一个静态的余额表来减少计算量
在服务器端生成这个结果集
把查询过程 转到sql服务器来作原来 我作为vb中查询出入库数据集的源表是mdb数据库中建立的一个查询查询 我把我的数据库改为 sql服务器后 我也在sql中建立相同的视图
但是在运行
mrc.Fields("数量") = mrc.Fields("数量") - rst.Fields("数量")这个代码时 说 “视图不能。。”唉 真是 难呀