以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教狐狸爸爸一个问题,如这个问题解决了就正式购买一套软件。--已购买一套商业版!  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=24984)

--  作者:ch_biao
--  发布时间:2012/10/28 20:51:00
--  请教狐狸爸爸一个问题,如这个问题解决了就正式购买一套软件。--已购买一套商业版!

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20121028202802.png
图片点击可在新窗口打开查看
 

    [方式收费]这一列根据[收费方式]列内容变化而执行不同的计算方法,显示出数值。

    当[收费方式]列选择“按核减额”,则[方式收费]列=核减额*核减额的比率;

    当[收费方式]列选择“按总造价”,则[方式收费]列=总造价*总价的比率;

    当[收费方式]列选择“按送审价”,则[方式收费]列=送审价*总价的比率;

    当[收费方式]列选择“复合方式”,则[方式收费]列=送审价*总价的比率+核减额*核减额的比率;

    当[收费方式]列选择“自定义”,则[方式收费]列=0;

    当[收费方式]列选择“预算审核”,则[方式收费]列根据[送审价]列金额的大小,执行: IF([送审价]<=1000000, [送审价]*0.38%,IF([送审价]<=5000000,3800+([送审价]-1000000)*0.34%,IF([送审价]<=10000000,17400+([送审价]-5000000)*0.3%,IF([送审价]<=50000000,32400+([送审价]-10000000)*0.24%,IF([送审价]<=100000000,128400+([送审价]-50000000)*0.18%,218400+([送审价]-100000000)*0.14%)))))。

    请教能通过代码来实现吗?

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5.zip

[此贴子已经被作者于2012-10-29 13:33:26编辑过]

--  作者:y2287958
--  发布时间:2012/10/28 20:57:00
--  
代码实现也是同样的道理
--  作者:ch_biao
--  发布时间:2012/10/28 21:01:00
--  
以下是引用y2287958在2012-10-28 20:57:00的发言:
代码实现也是同样的道理

就是想知道能否通过代码实现,和如何编写代码。

[此贴子已经被作者于2012-10-28 21:00:48编辑过]

--  作者:czy
--  发布时间:2012/10/28 21:18:00
--  

将代码改成:

 

Dim dr As DataRow = e.DataRow
If dr.IsNull("咨询费用_收费方式") = False Then
    Select Case dr("咨询费用_收费方式")
        Case "按核减额"
            dr("咨询费用_其中_方式收费") = dr("咨询标的_核减额") * dr("咨询费用_费率_核减额的比率")
        Case "按总造价"
            dr("咨询费用_其中_方式收费") = dr("咨询标的_总投资或总造价") * dr("咨询费用_费率_总价的比率")
        Case "按送审价"
            dr("咨询费用_其中_方式收费") = dr("咨询标的_送审价") * dr("咨询费用_费率_总价的比率")
        Case "复合方式"
            dr("咨询费用_其中_方式收费") = (dr("咨询标的_送审价") * dr("咨询费用_费率_总价的比率")) + (dr("咨询标的_核减额") * dr("咨询费用_费率_核减额的比率"))
        Case "自定义"
            dr("咨询费用_其中_方式收费") = 0
    End Select
Else
    dr("咨询费用_其中_方式收费") = 0
End If


--  作者:ch_biao
--  发布时间:2012/10/28 21:32:00
--  
以下是引用czy在2012-10-28 21:18:00的发言:

将代码改成:

 

Dim dr As DataRow = e.DataRow
If dr.IsNull("咨询费用_收费方式") = False Then
    Select Case dr("咨询费用_收费方式")
        Case "按核减额"
            dr("咨询费用_其中_方式收费") = dr("咨询标的_核减额") * dr("咨询费用_费率_核减额的比率")
        Case "按总造价"
            dr("咨询费用_其中_方式收费") = dr("咨询标的_总投资或总造价") * dr("咨询费用_费率_总价的比率")
        Case "按送审价"
            dr("咨询费用_其中_方式收费") = dr("咨询标的_送审价") * dr("咨询费用_费率_总价的比率")
        Case "复合方式"
            dr("咨询费用_其中_方式收费") = (dr("咨询标的_送审价") * dr("咨询费用_费率_总价的比率")) + (dr("咨询标的_核减额") * dr("咨询费用_费率_核减额的比率"))
        Case "自定义"
            dr("咨询费用_其中_方式收费") = 0
    End Select
Else
    dr("咨询费用_其中_方式收费") = 0
End If

谢谢你,再请教:

当[收费方式]列选择“预算审核”,则[方式收费]列根据[送审价]列金额的大小,执行: IF([送审价]<=1000000, [送审价]*0.38%,IF([送审价]<=5000000,3800+([送审价]-1000000)*0.34%,IF([送审价]<=10000000,17400+([送审价]-5000000)*0.3%,IF([送审价]<=50000000,32400+([送审价]-10000000)*0.24%,IF([送审价]<=100000000,128400+([送审价]-50000000)*0.18%,218400+([送审价]-100000000)*0.14%)))))。如何写代码呢?

[此贴子已经被作者于2012-10-28 21:32:05编辑过]

--  作者:czy
--  发布时间:2012/10/28 21:32:00
--  

不好意思,下面的说明没注意到。

 

Dim dr As DataRow = e.DataRow
If dr.IsNull("咨询费用_收费方式") = False Then
    Select Case dr("咨询费用_收费方式")
        Case "按核减额"
            dr("咨询费用_其中_方式收费") = dr("咨询标的_核减额") * dr("咨询费用_费率_核减额的比率")
        Case "按总造价"
            dr("咨询费用_其中_方式收费") = dr("咨询标的_总投资或总造价") * dr("咨询费用_费率_总价的比率")
        Case "按送审价"
            dr("咨询费用_其中_方式收费") = dr("咨询标的_送审价") * dr("咨询费用_费率_总价的比率")
        Case "复合方式"
            dr("咨询费用_其中_方式收费") = (dr("咨询标的_送审价") * dr("咨询费用_费率_总价的比率")) + (dr("咨询标的_核减额") * dr("咨询费用_费率_核减额的比率"))
        Case "自定义"
            dr("咨询费用_其中_方式收费") = 0
        Case "预算审核"
            Dim n As Decimal
            If dr("咨询标的_送审价")<=1000000
                n = dr("咨询标的_送审价")*0.38/100
            ElseIf dr("咨询标的_送审价")<=5000000
                n = 3800+(dr("咨询标的_送审价")-1000000)*0.34/ 100
            ElseIf dr("咨询标的_送审价")<=10000000
                n = 17400+(dr("咨询标的_送审价")-5000000)*0.3/ 100
            ElseIf dr("咨询标的_送审价")<=50000000
                n = 32400+(dr("咨询标的_送审价")-10000000)*0.24/ 100
            ElseIf dr("咨询标的_送审价")<=100000000
                n = 128400+(dr("咨询标的_送审价")-50000000)*0.18/ 100
            Else
                n = 218400+(dr("咨询标的_送审价")-100000000)*0.14/ 100
            End If
            dr("咨询费用_其中_方式收费") = n
    End Select
Else
    dr("咨询费用_其中_方式收费") = 0
End If


--  作者:sloyy
--  发布时间:2012/10/28 21:42:00
--  
其实还可以更进一步完善程序,把各种比率和系数放在另外一个表里,这样,调整系数时,只要修改表格里的数据,不用修改程序了.
--  作者:ch_biao
--  发布时间:2012/10/28 21:42:00
--  
以下是引用czy在2012-10-28 21:32:00的发言:

不好意思,下面的说明没注意到。

 

超级感谢“超级版主”!明天汇款先购买一套商业版,其后再买一套开发版。

再请教“超级版主”:合计收费=方式收费+自定义收费能同时写进上述代码中吗?

[此贴子已经被作者于2012-10-28 21:47:58编辑过]

--  作者:ch_biao
--  发布时间:2012/10/28 21:58:00
--  
以下是引用ch_biao在2012-10-28 21:42:00的发言:

超级感谢“超级版主”!明天汇款先购买一套商业版,其后再买一套开发版。

再请教“超级版主”:合计收费=方式收费+自定义收费能同时写进上述代码中吗?

[此贴子已经被作者于2012-10-28 21:47:58编辑过]

再请教“超级版主”:合计收费=方式收费+自定义收费能同时写进上述代码中吗?


--  作者:sloyy
--  发布时间:2012/10/28 22:20:00
--  

举一反三呀

在倒数第二行写: dr("咨询费用_合计收费") = dr("咨询费用_其中_方式收费")+dr("咨询费用_其中_自定义收费")