| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6020 人关注过本帖
标题:求解,行小计?谢谢
只看楼主 加入收藏
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9803
专家分:26906
注 册:2012-2-5
收藏
得分:0 
还可以将统计条件保存在表中

坚守VFP最后的阵地
2016-12-21 18:19
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9803
专家分:26906
注 册:2012-2-5
收藏
得分:0 
按照前面的设想,将代码做了如下调整
程序代码:
clear
close databases all
select bm from bmb into cursor tbmb && BM表只有一个字段
* 创建临时表结构及索引
lcstr=""
scan
    lcstr=lcstr+alltrim(bm)+" N(3),"
endscan
lcstr=left(lcstr,len(lcstr)-1)
create cursor tjb (序 n(2),文化程度 c(20),dm c(2),人数 n(4),&lcstr)
append from 表1 fields 序,文化程度,dm
index on dm tag dmxl

* 数据处理
use gxb in 0 && 保存统计条件的表(字段:TJ,WZ)
use hmd in 0 && 花名册
select hmd
set relation to dm into tjb
Scan
    bm1=Alltrim(bm)
    Replace (bm1) with Evaluate(bm1)+1 in tjb
EndScan
set relation to
Select gxb
scan
    * 列人数合计
    select tjb
    Local asj[reccount("gxb"),Fcount()-4]
    For i=5 to Fcount()
        Sum evaluate(Field(i)) to asj[recno("gxb"),i-4] for evaluate(gxb.tj)
        replace (Field(i)) with asj[recno("gxb"),i-4] for Recno()=gxb.wz
    EndFor
endscan
select tjb
* 行人数合计
cstr=""
For i=5 to Fcount()
    cstr=cstr+"+"+(Field(i))
EndFor
Replace all 人数 with Evaluate(cstr)
browse


[此贴子已经被作者于2016-12-22 01:10编辑过]


坚守VFP最后的阵地
2016-12-22 00:53
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9803
专家分:26906
注 册:2012-2-5
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

坚守VFP最后的阵地
2016-12-22 01:12
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9803
专家分:26906
注 册:2012-2-5
收藏
得分:0 
程序代码:
clear
close databases all
select * from bmb into cursor tbmb
* 创建临时表结构及索引
lcstr=""
scan
    lcstr=lcstr+alltrim(bm)+" N(3),"
endscan
lcstr=left(lcstr,len(lcstr)-1)
create cursor tjb (序 n(2),文化程度 c(20),dm c(2),人数 n(4),&lcstr)
append from 表1 fields 序,文化程度,dm
index on dm tag dmxl

* 数据处理
use gxb in 0 
use hmd in 0
select hmd
set relation to dm into tjb
Scan
    bm1=Alltrim(bm)
    Replace (bm1) with Evaluate(bm1)+1 in tjb
EndScan
set relation to
n=4 && 前四个字段不参与统计
Select gxb
scan
    * 列人数合计
    select tjb
    Local asj[reccount("gxb"),Fcount()-n]
    For i=n+1 to Fcount()
        Sum evaluate(Field(i)) to asj[recno("gxb"),i-n] for evaluate(gxb.tj)
        replace (Field(i)) with asj[recno("gxb"),i-n] for Recno()=gxb.wz
    EndFor
endscan
select tjb
* 行人数合计
cstr=""
For i=n+1 to Fcount()
    cstr=cstr+"+"+(Field(i))
EndFor
Replace all 人数 with Evaluate(cstr)
browse

坚守VFP最后的阵地
2016-12-22 09:35
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9803
专家分:26906
注 册:2012-2-5
收藏
得分:0 
以下是引用静夜思在2016-12-18 22:15:03的发言:

如果楼主说了各行之间的关系,还会提出什么样的要求?

莫辜负他人的诚意

毛主席教导我们说:没有调查研究,就没有发言权。望静老大认真学习。

坚守VFP最后的阵地
2016-12-22 11:01
tjdeming
Rank: 2
等 级:论坛游民
帖 子:429
专家分:54
注 册:2013-3-4
收藏
得分:0 
回复 34楼 sdta
没有看懂,可不可以请教一下2、3行其含义:
1Scan
2     bm1=Alltrim(bm)
3     Replace (bm1) with Evaluate(bm1)+1 in tjb
4 EndScan
2016-12-23 00:40
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9803
专家分:26906
注 册:2012-2-5
收藏
得分:0 
回复 36楼 tjdeming
根据hmd(就是你的花名单)与TJB之间建立的索引关系,进行数据统计。
如果找到销售部中的高中文化程度的人,就在销售部中的高中文化程度中加一个人,如果找到财务部中的本科生,就在账务部中的本科文化程度中加一个人。
此处的BM1=ALLTRIM(BM) 部门是动态的,根据花名单中的部门及文化程度动态增加相应部门的人数。

[此贴子已经被作者于2016-12-23 01:09编辑过]


坚守VFP最后的阵地
2016-12-23 01:02
tjdeming
Rank: 2
等 级:论坛游民
帖 子:429
专家分:54
注 册:2013-3-4
收藏
得分:0 
回复 37楼 sdta
非常感谢。我在原人数统计表是一个月做一次基础上还要做一张奖金统计表,我模仿了你的程序但没有成功,请教一下。
说明:1、每个月的奖名不确定,或多或少 会同上次同名的,也会新增的(不多);
      2、每人的NUM唯一的,有的人会出现一个奖名有二个金额的情况;
      3、JJD的记录是一个金额一条记录:NUM、XM、奖名、金额
要求:变成一个人一条含有多个奖名的记录,类似工资单一样。
能实现吗?
2.rar (5.26 KB)
2016-12-24 22:48
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9803
专家分:26906
注 册:2012-2-5
收藏
得分:0 
最后要达到什么结果,最好有截图。

坚守VFP最后的阵地
2016-12-24 23:27
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9803
专家分:26906
注 册:2012-2-5
收藏
得分:0 
是不是由JJD表生成JMTJB表。

坚守VFP最后的阵地
2016-12-24 23:30
快速回复:求解,行小计?谢谢
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.066140 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved