| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦   
共有 517 人关注过本帖
标题:统计不了第二个人的数据?
收藏  订阅  推荐  打印
heychen
Rank: 2
等级:注册会员
帖子:74
积分:1016
注册:2008-5-28
统计不了第二个人的数据?

SELECT linshi
GO BOTTOM
renshu = RECN()                    &&获得记录总数
GO TOP                             &&返回最顶开始
DIMENSION marray(renshu)           &&根据记录总数定义一个数组存放姓名
FOR i=1 TO renshu
   STORE 姓名 TO marray(i)
   SKIP
ENDFOR
SELECT huojianjilu
FOR j=1 TO renshu
   SUM  huojianjilu.保管金额  TO grje FOR ALLTRIM(huojianjilu.收款人员) = marray(j)
   SUM  huojianjilu.货件数量  TO grch FOR ALLTRIM(huojianjilu.存仓人员) = marray(j)
   SUM  huojianjilu.货件数量  TO grth FOR ALLTRIM(huojianjilu.提货人员) = marray(j)
   SELECT linshi
   GO j
   REPLACE 存放金额 WITH grje
   REPLACE 存放数量 WITH grch
   REPLACE 提货数量 WITH grth
ENDFOR

我的实验环境是
设计两个账号,都有一定的记录
计算结果确实第一个有记录
第二个结果都是0
这是为什么???
2008-10-5 15:42
qjbzjp
Rank: 12Rank: 12Rank: 12
等级:版主
帖子:271
积分:3699
威望:6
来自: 山西
注册:2007-3-14

试试:
SELECT linshi
*GO BOTTOM
renshu = RECC()                    &&获得记录总数
GO TOP                             &&返回最顶开始
DIMENSION marray(renshu)           &&根据记录总数定义一个数组存放姓名
FOR i=1 TO renshu
   STORE 姓名 TO marray(i)
   SKIP
ENDFOR
SELECT huojianjilu
FOR j=1 TO renshu
   SUM  huojianjilu.保管金额  TO grje FOR ALLTRIM(huojianjilu.收款人员) = ALLTRIM(marray(j))
   SUM  huojianjilu.货件数量  TO grch FOR ALLTRIM(huojianjilu.存仓人员) = ALLTRIM(marray(j))
   SUM  huojianjilu.货件数量  TO grth FOR ALLTRIM(huojianjilu.提货人员) = ALLTRIM(marray(j))
   SELECT linshi
   GO j
   REPLACE 存放金额 WITH grje
   REPLACE 存放数量 WITH grch
   REPLACE 提货数量 WITH grth
ENDFOR
2008-10-5 16:30
ibmlang_002
Rank: 12Rank: 12Rank: 12
等级:版主
帖子:298
积分:3661
威望:6
来自:浙江-嘉兴
注册:2008-8-30

这个程序有问题。楼主好像要统计收款人员、存仓人员、提货人员的相关数据?

谁说VFP没用
2008-10-5 18:08
qjbzjp
Rank: 12Rank: 12Rank: 12
等级:版主
帖子:271
积分:3699
威望:6
来自: 山西
注册:2007-3-14

是存在不少问题,别的不说,好像一个循环就够了……
2008-10-5 18:17
ibmlang_002
Rank: 12Rank: 12Rank: 12
等级:版主
帖子:298
积分:3661
威望:6
来自:浙江-嘉兴
注册:2008-8-30

哪里呀!他的huojianjilu表里每个人肯定有1条以上的记录。其实用select解决。

谁说VFP没用
2008-10-5 18:18
heychen
Rank: 2
等级:注册会员
帖子:74
积分:1016
注册:2008-5-28

这个是一个统计表。。
统计huojianjilu表里,整个月下来每个员工货件的录入情况
主要是每人的存货数、提货数和收款额

另外
2楼的似乎也不行、、、

[ 本帖最后由 heychen 于 2008-10-5 18:39 编辑 ]
2008-10-5 18:33
ibmlang_002
Rank: 12Rank: 12Rank: 12
等级:版主
帖子:298
积分:3661
威望:6
来自:浙江-嘉兴
注册:2008-8-30

sele 收款人员,sum(*) from huojianjilu group by 收款人员 into curs temp1
sele 存仓人员,sum(*) from huojianjilu group by 存仓人员 into curs temp2
sele 提货人员,sum(*) from huojianjilu group by 提货人员 into curs temp3
然后,按需要组织记录

谁说VFP没用
2008-10-5 18:38
ibmlang_002
Rank: 12Rank: 12Rank: 12
等级:版主
帖子:298
积分:3661
威望:6
来自:浙江-嘉兴
注册:2008-8-30

或者,用scan 临时表,将huojianjilu表中每人工作量相加后,放到另外一个表

谁说VFP没用
2008-10-5 18:41
heychen
Rank: 2
等级:注册会员
帖子:74
积分:1016
注册:2008-5-28

???为什么上面的语句放进去会有下划线。。哪里出问题了?
2008-10-5 18:42
heychen
Rank: 2
等级:注册会员
帖子:74
积分:1016
注册:2008-5-28

额~~~~~- -
其实
这个已经是在临时表里的了,统计完成后打印出来。。
整个代码

IF LSB = .T.
   select 姓名 from yonghu into CURSOR linshi ReadWrite
   alter table linshi add 存放数量 n(4)
   alter table linshi add 提货数量 n(4)
   alter table linshi add 存放金额 n(4,2)
   LSB=.F.
ENDIF
SELECT linshi
GO BOTTOM
renshu = RECN()                    &&获得记录总数
GO TOP                             &&返回最顶开始
DIMENSION marray(renshu)           &&根据记录总数定义一个数组存放姓名
FOR i=1 TO renshu
   STORE 姓名 TO marray(i)
   SKIP
ENDFOR
SELECT huojianjilu
FOR j=1 TO renshu
   SUM  huojianjilu.保管金额  TO grje FOR ALLTRIM(huojianjilu.收款人员) = marray(j)
   SUM  huojianjilu.货件数量  TO grch FOR ALLTRIM(huojianjilu.存仓人员) = marray(j)
   SUM  huojianjilu.货件数量  TO grth FOR ALLTRIM(huojianjilu.提货人员) = marray(j)
   SELECT linshi
   GO j
   REPLACE 存放金额 WITH grje
   REPLACE 存放数量 WITH grch
   REPLACE 提货数量 WITH grth
ENDFOR
SELECT linshi
REPORT FORM tongji.frx NOCONSOLE PREVIEW NODIALOG TO PRINTER PROMPT
2008-10-5 18:45
共有 516 人关注过本帖
发新话题
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.054827 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved