| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 798 人关注过本帖
标题:如何计算一月份每个人的餐补费用
只看楼主 加入收藏
王咸美
Rank: 1
等 级:新手上路
帖 子:666
专家分:3
注 册:2018-1-4
结帖率:97.5%
收藏
已结贴  问题点数:20 回复次数:10 
如何计算一月份每个人的餐补费用
如何计算每个人一月份的餐补费用?早、中班餐补5元,晚班餐补3.5元。数据很多,仅列举部分,供测试用。请高手赐教,万分感谢!【由于电脑不在身边,无法上传具体数据】
图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2023-4-8 19:24编辑过]

搜索更多相关主题的帖子: 数据 上传 月份 计算 测试 
2023-04-08 19:22
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:0 
等你电脑在身边了,上传相关表。

坚守VFP最后的阵地
2023-04-08 19:38
shizi0
Rank: 6Rank: 6
等 级:侠之大者
威 望:4
帖 子:142
专家分:411
注 册:2012-10-2
收藏
得分:3 
cFld='jan_01+jan_02.....'
select 姓名,sum(occurs('早',evalute(cFld))*3.5+occurs('中',evalute(cFld))*5+occurs('晚',evalute(cFld))*5) as 总餐补 from 表 group by 姓名
2023-04-08 20:52
王咸美
Rank: 1
等 级:新手上路
帖 子:666
专家分:3
注 册:2018-1-4
收藏
得分:0 
谢谢!相加的字段有31个之多,对应31天。Jan_01+Jan_02+Jan_03+……+Jan_31这31个字段值相加如何简写?望赐教。谢谢!
2023-04-08 22:26
pvm2000
Rank: 6Rank: 6
等 级:贵宾
威 望:24
帖 子:180
专家分:312
注 册:2022-12-22
收藏
得分:1 
以下是引用王咸美在2023-4-8 22:26:37的发言:

谢谢!相加的字段有31个之多,对应31天。Jan_01+Jan_02+Jan_03+……+Jan_31这31个字段值相加如何简写?望赐教。谢谢!

这个简单,用宏替换
2023-04-09 00:58
王咸美
Rank: 1
等 级:新手上路
帖 子:666
专家分:3
注 册:2018-1-4
收藏
得分:0 
宏替换怎么用,请指点!谢谢!
2023-04-09 06:56
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:8 
理顺一下数据关系,数据结构应该可以优化一下,算法会灵活一些。
图片附件: 游客没有浏览图片的权限,请 登录注册

程序代码:
ALINES(cj,"早,中,晚",",")
ALINES(nj,"5,5,3.5",",")
CREATE CURSOR tt (xm c(10), j1 c(2), j2 c(2), j3 c(2))
INSERT INTO tt VALUES ("姓名1","早","中","晚")
INSERT INTO tt VALUES ("姓名2","中","晚","早")
INSERT INTO tt VALUES ("姓名3","早","晚","早")
INSERT INTO tt VALUES ("姓名4","晚","中","晚")
SELECT *, fun() hj FROM tt

FUNCTION fun()
    LOCAL i,ret
    ret = 0
    FOR i=2 TO FCOUNT()
        ret = ret + VAL(nj[ASCAN(cj,EVALUATE(FIELD(i)))])
    ENDFOR
    RETURN ret
ENDFUNC


2023-04-09 08:03
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:8 
程序代码:
CREATE CURSOR tt (xm c(10), hj n(6,2), a01 c(4), a02 c(4), a03 c(4))
INSERT INTO tt VALUES ("aaa", 0, "中", "早", "晚")
INSERT INTO tt VALUES ("bbb", 0, "晚", "晚", "晚")
INSERT INTO tt VALUES ("ccc", 0, "中", "早", "早")
SCAN
    lnsum = 0 
    FOR ln = 3 TO FCOUNT() 
        lnsum = lnsum + IIF(INLIST(EVALUATE(FIELD(ln)), "中", "早"), 5, 3.5)
    ENDFOR
    REPLACE hj WITH lnsum
ENDSCAN 
BROWSE 

坚守VFP最后的阵地
2023-04-09 08:33
王咸美
Rank: 1
等 级:新手上路
帖 子:666
专家分:3
注 册:2018-1-4
收藏
得分:0 
谢谢各位的热心指点!我想另外生成一张表 Cbb.dbf 字段名为:姓名 C(10),早班(个)N(4),中班 N(4),晚班(个)N(4),餐补 N(5,1) 请各位赐教,谢谢!!!

[此贴子已经被作者于2023-4-9 10:01编辑过]

2023-04-09 09:34
sam_jiang
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:806
专家分:1231
注 册:2021-10-13
收藏
得分:0 
感觉餐补明细账的表格应该设置为姓名,日期,班次,餐补四个字段,31个字段太多了。难道每个月做一个表格?
2023-04-09 10:17
快速回复:如何计算一月份每个人的餐补费用
数据加载中...
 
   



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

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