Foxtable(狐表)用户栏目专家坐堂 → [求助]梯坎式提成比例的计算(已解决)


  共有4602人关注过本帖树形打印复制链接

主题:[求助]梯坎式提成比例的计算(已解决)

帅哥哟,离线,有人找我吗?
有点甜
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/8 19:08:00 [显示全部帖子]

你对应该一下即可,留意红色地方,以此类推。

 

Select Case e.DataCol.name
    Case "业绩金额"
        Dim tc As Double
        Dim yj As Double = e.DataRow("业绩金额")
        If yj <10000 Then
            tc = yj * 0.1
        ElseIf yj <=20000 Then
            tc =  10000*0.1 + (yj - 10000) * 0.15
        ElseIf yj <=30000 Then
            tc = 10000*0.1 + 10000*0.15 + (yj-20000) * 0.2
        ElseIf yj <=40000 Then
            tc = yj * 0.3
        ElseIf yj <=50000 Then
            tc = yj * 0.35
        ElseIf yj <=60000 Then
            tc = yj * 0.4
        ElseIf yj <=70000 Then
            tc = yj * 0.45
        ElseIf yj <= 99999999 Then
            tc = yj * 0.15
        End If
        e.DataRow("提成") = tc
End Select

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/8 19:28:00 [显示全部帖子]

 代码这样写,比较繁琐

 

Select Case e.DataCol.name
    Case "业绩金额"      
        Dim tc As Double
        Dim yj As Double = e.DataRow("业绩金额")
        Select Case e.DataRow("职称")
            Case "职称1"
                If yj <10000 Then
                    tc = yj * 0.1
                ElseIf yj <=20000 Then
                    tc =  10000*0.1 + (yj - 10000) * 0.15
                ElseIf yj <=30000 Then
                    tc = 10000*0.1 + 10000*0.15 + (yj-20000) * 0.2
                ElseIf yj <=40000 Then
                    tc = yj * 0.3
                ElseIf yj <=50000 Then
                    tc = yj * 0.35
                ElseIf yj <=60000 Then
                    tc = yj * 0.4
                ElseIf yj <=70000 Then
                    tc = yj * 0.45
                ElseIf yj <= 99999999 Then
                    tc = yj * 0.15
                End If
            Case "职称2"
               
        End Select
        e.DataRow("提成") = tc
End Select


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/8 19:52:00 [显示全部帖子]

以下是引用188802386在2014-7-8 19:49:00的发言:
如果能根据提成表来套数据就好了,这样就能随时更改提成比例了,这种需求量是非常大了,居然官方没有此类的例子

 

你这个,是知识点的综合运用,可以利用find等跨表去引用对应数据。

 

http://www.foxtable.com/help/topics/1451.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/9 11:35:00 [显示全部帖子]

  取决于你的店业绩是怎么来的。如果要出来,可以用代码把它们清空

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/9 11:37:00 [显示全部帖子]

For Each dr As DataRow In DataTables("表A").DataRows
    If dr("职务") <> "经理" AndAlso dr("职务") <> "部门经理" Then
        dr("店业绩") = Nothing
    End If
Next

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/9 11:46:00 [显示全部帖子]

看16楼,清空一下

 

If Functions.Execute("ShouQuan","佣金业绩表","生成工资表") Then
    Dim dt As DataTable = DataTables("工资")
    dt.DataRows.Clear
    Dim d1 As Date = Forms("佣金一览表").Controls("StartDate").Value
    Dim d2 As Date = Forms("佣金一览表").Controls("EndDate").Value
    Dim filter2 As String = "上岗日期 <= #" & d2 & "# and (离职日期 >= #" & d1 & "# or 离职日期 is null)"
    For Each dr As DataRow In DataTables("员工管理").Select(filter2)
        Dim ndr As DataRow = dt.AddNew
        ndr("日期") = Forms("佣金一览表").Controls("EndDate").Value
        ndr("姓名") = dr("姓名")
        ndr("部门") = dr("门店")
        ndr("职务") = dr("职务")
        ndr("个人业绩") = DataTables("佣金业绩表").Compute("sum(合计_佣金)","[置业顾问] = '" & dr("姓名") & "'")
        If dr("职务") <> "经理" AndAlso dr("职务") <> "部门经理" Then
            dr("店业绩") = Nothing
        Else
            ndr("店业绩") = DataTables("佣金业绩表").Compute("sum(合计_佣金)","[门店] = '" & dr("门店") & "'")
        End If

    Next
    Forms("工资").Show()
Else
    MessageBox.show("你无生成工资权限!")
End If


 回到顶部