以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 关于这个统计的问题,还麻烦版主帮看下 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=125128) |
||||
-- 作者:初心不改再说未来 -- 发布时间:2018/9/20 13:03:00 -- 关于这个统计的问题,还麻烦版主帮看下 如图所示,现在要统计所有老师的代课情况,特殊原因是有些老师可能全部都带,但是有些老师只带一门或者两门。学生总学费固定。 现在某学生一共交了2000元,课时报价如下: 语文课每次机构给老师提成总学费20% 数学课每次机构给老师提成总学费23% 英语课每次机构给老师提成总学费18% 体育课每次机构给老师提成总学费6% 然后, A老师带了语文2次 B老师带了语文1次+数学1次 C老师带了数学2次 D老师带了英语1次+语文1次 E老师带了体育4次+语文2次 现在要计算,这几位老师,本月累积根据代课实际情况,计算提成总计应发放金额 这个统计代码怎么写啊?谢谢版主~ 例子我发上来 [此贴子已经被作者于2018/9/20 16:28:26编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2018/9/20 14:24:00 -- 你给的数据怎么计算,计算每一个老师分别带了语文、数学、英语、体育多少次?每出现一次名字算一次? |
||||
-- 作者:初心不改再说未来 -- 发布时间:2018/9/20 14:59:00 -- 是的,按照登记的名字出现次数计算,列中少了一项“结业” 就是一个学生,交完学费后,课全部上完了,结业列的状态为“结业”,然后计算整个学时里 4门课都是哪几位老师带的,按照语文提成学费20%,数学提成%多少之类的计算每位老师不同的总计提成金额。 举例 若某学生的全部课程中,有某位老师未参与,则这位老师不参与提成计算; 若某学生的课程中,有位老师全程参与,则所有提成都归这位老师; 若某学生的课程中,有3位老师参与,则按照比例,计算这3位老师分别的提成; 最后,按照结业的日期计算每位老师每月提成总额。 谢谢版主!
|
||||
-- 作者:有点甜 -- 发布时间:2018/9/20 15:06:00 -- 你给的例子没有对应数据,无法计算。
请就你给的例子,说明某一个学生的数据如何计算,最后得到什么,显示到哪里。 |
||||
-- 作者:don -- 发布时间:2018/9/20 15:40:00 -- Dim dr2 As DataRow Dim Lms As String() ={"语文","数学","英语","体育"} Dim bd1 As New GroupTableBuilder("统计",DataTables("表A")) Dim dt1 As fxDataSource bd1.Groups.AddDef("语文老师", "姓名") bd1.Totals.AddDef("语文老师", AggregateEnum.Count, "语文") dt1 = bd1.BuildDataSource() bd1 = New GroupTableBuilder("统计",DataTables("表A")) Dim dt2 As fxDataSource bd1.Groups.AddDef("数学老师", "姓名") bd1.Totals.AddDef("数学老师", AggregateEnum.Count, "数学") dt2 = bd1.BuildDataSource() bd1 = New GroupTableBuilder("统计",DataTables("表A")) Dim dt3 As fxDataSource bd1.Groups.AddDef("英语老师", "姓名") bd1.Totals.AddDef("英语老师", AggregateEnum.Count, "英语") dt3 = bd1.BuildDataSource() bd1 = New GroupTableBuilder("统计",DataTables("表A")) Dim dt4 As fxDataSource bd1.Groups.AddDef("体育老师", "姓名") bd1.Totals.AddDef("体育老师", AggregateEnum.Count, "体育") dt4 = bd1.BuildDataSource() dt1.Combine("姓名",dt2,"姓名") dt1.Combine("姓名",dt3,"姓名") dt1.Combine("姓名",dt4,"姓名") Dim t3 As Table = Tables("窗口1_Table1") t3.DataSource = dt1 \'将统计结果绑定到Table t3.StopRedraw With t3.DataTable.DataCols \' .Add("提成总计金额",Gettype(Double)) End With Dim v1 As Double For Each r3 As Row In t3.Rows v1=0 For Each c1 As String In Lms dr2 = DataTables("设置").Find("课程 =\'" & c1 & "\'") If dr2 IsNot Nothing Then v1+ = dr2("报价") * dr2("提成")*r3(c1) End If Next c1 r3("提成总计金额")=v1 Next r3 t3.ResumeRedraw
|
||||
-- 作者:初心不改再说未来 -- 发布时间:2018/9/20 15:50:00 -- 先说固定提成比例: 语文课机构给老师提成20% 数学课机构给老师提成23% 英语课机构给老师提成18% 体育课机构给老师提成6% 比如第一个学生小李,总学费5700,语文老师是湘怡,且4门课只带了1门,所以小李结业以后,湘怡老师可以拿到的提成是5700*20%=1140元 小李数学老师是雨蓉,结业后,雨蓉老师可以拿到5700*23%=1311元 小李英语老师是善玲,结业后,善玲老师可以拿到5700*18%=1026元 小李体育老师是娟娟,结业后,娟娟老师可以拿到5700*6%=342元 假如这个学期学校只有1名学生小李,那么老师们本月提成即为: 湘怡 1140元 雨蓉1311元 善玲1026元 娟娟342元。 这时候又来一个学生小王,学费为8900元,以此类推 语文这次是善玲老师,按最上方固定提成,语文老师提成为:8900*20%=1780元 数学这次是湘怡老师,按最上方固定提成,数学老师提成为:8900*23%=2047元 英语这次还是善玲老师,按最上方固定提成,英语老师提成为:8900*18%=1602元 体育这次还是娟娟老师,按最上方固定提成,体育老师提成为:8900*6%=534元 好,现在小王结业以后,老师们可以拿到的提成是: 湘怡 2047元 雨蓉0元(因为没有教小王) 善玲1780+1602元(因为带了2门) 娟娟534元。 好,那么,截止到目前位置,2位学生均在本月结业,老师们的本月累计收入为: 湘怡 1140元+2047 雨蓉1311元+0 (因为没有教小王) 善玲1026元 +1780+1602元(因为带了小王2门) 娟娟342+534元。 不管有多少位学生,均按照这种方法以此类推 最后,得到:状态列中状态为“结业”的行中,老师们本月累计提成金额总数是多少。 显示在临时表中,窗口中,查询表中都行,能计算出来就行。 按照语文数学英语体育,所有老师出现一次名字算一次提成,因为有些老师只会1门有些老师会的多可以教4门。 [此贴子已经被作者于2018/9/20 15:52:08编辑过]
|
||||
-- 作者:don -- 发布时间:2018/9/20 15:50:00 --
|
||||
-- 作者:初心不改再说未来 -- 发布时间:2018/9/20 16:06:00 -- don 非常感谢您 这边是修改成为根据总学费来计算了,不是根据每门课的单价计算了 |
||||
-- 作者:初心不改再说未来 -- 发布时间:2018/9/20 16:49:00 -- For Each r3 As Row In t3.Rows v1=0 For Each c1 As String In Lms dr2 = DataTables("设置").Find("课程 =\'" & c1 & "\'") If dr2 IsNot Nothing Then v1+ = dr2("总学费") * dr2("提成")*r3(c1) End If Next c1 r3("提成总计金额")=v1 Next r3 貌似不对···············
[此贴子已经被作者于2018/9/20 16:50:39编辑过]
|
||||
-- 作者:don -- 发布时间:2018/9/20 17:08:00 -- 这样? |