| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6168 人关注过本帖
标题:求解,行小计?谢谢
只看楼主 加入收藏
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
花名单中WHCD中的技校算什么学历,故有17楼之问

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


坚守VFP最后的阵地
2016-12-19 01:00
tjdeming
Rank: 2
等 级:论坛游民
帖 子:429
专家分:54
注 册:2013-3-4
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

技校是输入错误,应是中专。
2016-12-19 06:21
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:20 
花名单.rar (3.07 KB)


程序代码:
Close Databases all 
Select xm,bm,whcd,dm from 花名单,标准 where 花名单.whcd==标准.文化程度 into cursor hmd 
Select distinct bm from 花名单 into array ajg
* 创建临时表结构及索引
lcstr=""
for lnI=1 to alen(ajg,1)
    lcstr=lcstr+iif(empty(lcstr),"",",")+alltrim(ajg[lnI,1])+" N(3)"
endfor
create cursor tjb (文化程度 c(20),dm c(2),人数 n(4),&lcstr)
Append From 表1 fields 文化程度,dm
index on dm tag xl
* 数据处理
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 tjb
For i=1 to 6
    =tj(i)
endfor
browse
******** 自定义函数 ********
Function tj
Parameters ii
Select tjb
Local asj[6,Fcount()-3]
* 设置统计条件
Do case
    Case ii=1
         ctj='Between(dm,"03","05")'
         n=2
    Case ii=2
         ctj='Between(dm,"08","09")'
         n=8
    Case ii=3
         ctj='Between(dm,"11","12")'
         n=10
    Case ii=4
         ctj='inlist(dm,"07","08","10")'
         n=6
    Case ii=5
         ctj='Between(dm,"14","15")'
         n=13
    Case ii=6
         ctj='inlist(dm,"02","06","13")'
         n=1
EndCase
* 列人数合计
For j=4 to Fcount()
    Sum evaluate(Field(j)) to asj[ii,j-3] for &ctj
    replace (Field(j)) with asj[ii,j-3] for Recno()=n 
EndFor
* 行人数合计
If ii=6
    cstr=""
    For iii=4 to Fcount()
        cstr=cstr+"+"+(Field(iii))
    EndFor
    Replace all 人数 with Evaluate(cstr)
EndIf 

代码有点长,增加了一个辅助用表,具体看上传文件。

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

坚守VFP最后的阵地
2016-12-19 10:53
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
回复 22楼 tjdeming
为什么不用你表1的全部结构,自己可以思考。

坚守VFP最后的阵地
2016-12-19 10:56
tjdeming
Rank: 2
等 级:论坛游民
帖 子:429
专家分:54
注 册:2013-3-4
收藏
得分:0 
回复 25楼 sdta
感谢,感谢,感谢
我先学习一下。
2016-12-19 10:58
schtg
Rank: 12Rank: 12Rank: 12
来 自:Usa
等 级:贵宾
威 望:67
帖 子:1733
专家分:3329
注 册:2012-2-29
收藏
得分:0 
@sdta:高!
2016-12-19 12:39
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
以下是引用tjdeming在2016-12-18 08:52:33的发言:

 解决1:SELE SUM(销售部)AS 销售部,SUM(财务部)AS 财务部,SUM(技术部)AS 技术部,SUM(材料部)AS 材料部,SUM(后勤部)AS 后勤部  FROM 表1;
      WHERE BETWEEN(序,3,5)INTO ARRAY XM
请教下一步如何做?

如果部门有变化,你这个代码就要修改了,所以我自己重建一个临时表,不受你的这些部门的限制,根据实际情况动态变化。不管你有多少部门(前提是不能超过表的字段数目),我上传的代码都可以用。如果汇总表有变化,只需修改辅助用表、表1的内容及统计条件的设置。

坚守VFP最后的阵地
2016-12-19 12:53
tjdeming
Rank: 2
等 级:论坛游民
帖 子:429
专家分:54
注 册:2013-3-4
收藏
得分:0 
我在体验中…
1解决了部门多少,部门顺序能不能掌控?
2在原始表中直接增加设罝文化程度代码,好不好?



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

2016-12-19 14:05
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
回复 29楼 tjdeming
部门表可以事先设置,原始表中可以设置文化程度代码。

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



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

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