| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 831 人关注过本帖
标题:请教,如何编程(VFP)分析奖励预算?
只看楼主 加入收藏
thomasou
Rank: 1
等 级:新手上路
帖 子:67
专家分:3
注 册:2010-8-15
结帖率:30%
收藏
已结贴  问题点数:20 回复次数:9 
请教,如何编程(VFP)分析奖励预算?
某公司决定对在职职工和退休职工合共1265人,在公司成立纪念日颁发特别奖金,现在需要按年度分析计算奖金预算,初步方案如下:在职员工从入职日期到2010年6月,退休职工从入职日期到退休日期,按年度进行计算特别奖金并累计,年度奖金如下:
91.7-92.6-600
92.7-93.6-570
93.7-94.6-550
94.7-95.6-540
95.7-96.6-520
96.7-97.6-500
97.7-98.6-470
98.7-99.6-450
99.7-00.6-440
00.7-01.6-410
01.7-02.6-400
02.7-03.6-370
03.7-04.6-350
04.7-05.6-300
05.7-06.6-270
06.7-07.6-250
07.7-08.6-210
08.7-09.6-180
09.7-10.6-150
表1
姓名  入职日期    计算日期
张三   1991-6-21   2010-6-30
李四   1995-9-5    2005-7-20
通过编程按年度(如,表9107_9206、表9207_9306,类推)把相关名单列入,计算每年度奖金预算耗用情况,再行分析及调整。再作决策。请高手指点,谢谢。
分立表:
表9107_9206
姓名  奖金
张三  600
。。。

表9507_9606
姓名  奖金
张三  520
李四  520
。。。。。
搜索更多相关主题的帖子: VFP 预算 奖励 
2010-09-17 22:26
啸凡
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:1356
专家分:885
注 册:2006-2-22
收藏
得分:20 
您的所谓年度不是日历年度,而刚好是社保年度,这比日历年度稍稍会复杂一点.
还有一个计算条件您没说:半年或不足半年的,超过半年又不足一年的怎么处理?这是不得不考虑的问题.否则你的程序出来之后,领导提出这个问题,您就得重来了!

两人行已有我师……
2010-09-17 22:40
啸凡
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:1356
专家分:885
注 册:2006-2-22
收藏
得分:0 
大概应该这样
9107_9206可以这么做。
SELECT 姓名 FROM 职员表 WHERE 入职日期<1991.07.01 AND 计算日期>1992.06.30 INTO CURSOUR TEMP1
SELECT distinct 姓名 AS 姓名,600 AS 奖金 FROM TEMP1 INTO FILE 9107_9206.DBF

9207_9306这么做
SELECT 姓名 FROM 职员表 WHERE 入职日期<1992.07.01 AND 计算日期>1993.06.30 INTO CURSOUR TEMP1
SELECT distinct 姓名 AS 姓名,570 AS 奖金 FROM TEMP1 INTO FILE 9207_9306.DBF
余此类推……
相信高手还有更好的方法,

[ 本帖最后由 啸凡 于 2010-9-17 23:12 编辑 ]

两人行已有我师……
2010-09-17 22:59
thomasou
Rank: 1
等 级:新手上路
帖 子:67
专家分:3
注 册:2010-8-15
收藏
得分:0 
谢谢2楼高手提点。
对于不足一个年度的,以年度应有的奖金除以12个月,按实际月份计算;
对于不足一个月的以下月1日起算,如某人入职日期96-12-3,则以97-1-1起算;
对于退休职工如果计算日期是99-11-6, 则以99-11-30结算。
谢谢。
2010-09-17 23:10
thomasou
Rank: 1
等 级:新手上路
帖 子:67
专家分:3
注 册:2010-8-15
收藏
得分:0 
谢谢3楼高手。
按计算总共有19个年度,能否设计程序时,能否用宏替换技术,动态中生成表格及表名,如,表9107_9206、表9207_9306,类推,按实际需要,方便调整奖金数字,而不用每一次调整奖金时均需要调整每一句程序,为方便领导使用。谢谢。
2010-09-17 23:20
啸凡
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:1356
专家分:885
注 册:2006-2-22
收藏
得分:0 
呵呵,三楼是典型的资本家代言人,太会剥削了:只有工作满满一年的才有奖金。
当然,可以原谅的是:当时搂猪并没给出不足一年的解决方式。
SELECT 姓名 FROM 职员表 WHERE (入职日期<1993.06.30 OR 计算日期>1992.07.1 INTO CURSOUR TEMP1
SELECT distinct 姓名 AS 姓名,570 AS 奖金 FROM TEMP1 INTO FILE 9207_9306.DBF
UPDATE 9207_9306.DBF SET 奖金=(IFF(GOMONTH(1992.07.1,12)>1993.06.30,(570/12*INT((计算日期-1992.07.1)/30)),570) &&不足一年的处理
大概就是这样。如果你想方便领导,可以做一个表单,年限、奖金标准用文本框以交互方式输入后在命令中引用就可以了。

两人行已有我师……
2010-09-18 07:51
thomasou
Rank: 1
等 级:新手上路
帖 子:67
专家分:3
注 册:2010-8-15
收藏
得分:0 
谢谢6楼高手指点。
这个问题,变动的可能只是奖金的数值,假定一个是奖金表,一个时职员表,如果在编写程序时,可否形成联动的关系,自动判断,并形成新表(如,9207_9306.DBF ),不搞表单了,要调整奖金只要在奖金表重新输入数字就行了。请再指教,谢谢。
2010-09-18 09:06
啸凡
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:1356
专家分:885
注 册:2006-2-22
收藏
得分:0 
要在表之间建立关系,请参考SET RELATION 命令。这么说吧,职员表相当于父表,17个奖金表相当于子表,建立一对多关系后,您的操作就比较方便了。
如果能实现不搞表单就能对数据库表进行数据的交互操作,那您应该是高手了。

两人行已有我师……
2010-09-18 21:53
thomasou
Rank: 1
等 级:新手上路
帖 子:67
专家分:3
注 册:2010-8-15
收藏
得分:0 
谢谢8楼高手指点。
2010-09-18 22:13
thomasou
Rank: 1
等 级:新手上路
帖 子:67
专家分:3
注 册:2010-8-15
收藏
得分:0 
能通过程序设计对职工表的扫描,得出十九个分立表吗?请指导,谢谢。
2010-09-20 21:54
快速回复:请教,如何编程(VFP)分析奖励预算?
数据加载中...
 
   



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

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