以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]请高手帮看一下语法有没有问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=116597)

--  作者:hnwang420
--  发布时间:2018/3/27 18:13:00
--  [求助]请高手帮看一下语法有没有问题
If "现任职级"= 见习客户经理 then
    If "首年佣金">= 6000 Then
         e.DataRow("展业津贴") = "标准保费"*0.35
    If "首年佣金">= 3000 Then
         e.DataRow("展业津贴") = "标准保费"*0.3
    If "首年佣金">= 0 Then
     e.DataRow("展业津贴") = "标准保费"*0.15
Else 
      If "首年佣金">= 6000 Then
         e.DataRow("展业津贴") = "标准保费"*0.35
    If "首年佣金">= 3000 Then
         e.DataRow("展业津贴") = "标准保费"*0.3
    If "首年佣金">= 0 Then
     e.DataRow("展业津贴") = "标准保费"*0.2
End If

如果现任职级列内容为见习客户经理,按第一部分执行IF语句,否则按第二部分执行IF语句。
上面这个表达式存在错误,请高手帮忙修正,感谢

--  作者:有点甜
--  发布时间:2018/3/27 18:16:00
--  

比如,代码这样写

 

If e.DataRow("现任职级")= "见习客户经理" Then
    If e.DataRow("首年佣金")>= 6000 Then
        e.DataRow("展业津贴") = e.DataRow("标准保费")*0.35
    ElseIf e.DataRow("首年佣金")>= 3000 Then
        e.DataRow("展业津贴") = e.DataRow("标准保费")*0.3
    ElseIf e.DataRow("首年佣金")>= 0 Then
        e.DataRow("展业津贴") = e.DataRow("标准保费")*0.15
    End If
Else
   
End If

[此贴子已经被作者于2018/3/27 18:45:18编辑过]

--  作者:hnwang420
--  发布时间:2018/3/27 18:18:00
--  
那是不是全部代码写为这样

If e.DataRow("现任职级")= "见习客户经理" Then
    If e.DataRow("首年佣金")>= 6000 Then
        e.DataRow("展业津贴") = e.DataRow("标准保费")*0.35
    ElseIf e.DataRow("首年佣金")>= 3000 Then
        e.DataRow("展业津贴") = e.DataRow("标准保费")*0.3
    ElseIf "首年佣金">= 0 Then
        e.DataRow("展业津贴") = e.DataRow("标准保费")*0.15
    End If
Else
     If e.DataRow("首年佣金")>= 6000 Then
        e.DataRow("展业津贴") = e.DataRow("标准保费")*0.35
    ElseIf e.DataRow("首年佣金")>= 3000 Then
        e.DataRow("展业津贴") = e.DataRow("标准保费")*0.3
    ElseIf "首年佣金">= 0 Then
        e.DataRow("展业津贴") = e.DataRow("标准保费")*0.2
End If
--  作者:有点甜
--  发布时间:2018/3/27 18:46:00
--  
If e.DataRow("现任职级")= "见习客户经理" Then
    If e.DataRow("首年佣金")>= 6000 Then
        e.DataRow("展业津贴") = e.DataRow("标准保费")*0.35
    ElseIf e.DataRow("首年佣金")>= 3000 Then
        e.DataRow("展业津贴") = e.DataRow("标准保费")*0.3
    ElseIf e.datarow("首年佣金")>= 0 Then
        e.DataRow("展业津贴") = e.DataRow("标准保费")*0.15
    End If
Else
     If e.DataRow("首年佣金")>= 6000 Then
        e.DataRow("展业津贴") = e.DataRow("标准保费")*0.35
    ElseIf e.DataRow("首年佣金")>= 3000 Then
        e.DataRow("展业津贴") = e.DataRow("标准保费")*0.3
    ElseIf e.datarow("首年佣金")>= 0 Then
        e.DataRow("展业津贴") = e.DataRow("标准保费")*0.2
End If
--  作者:hnwang420
--  发布时间:2018/3/27 21:13:00
--  
.NET Framework 版本:2.0.50727.8825
Foxtable 版本:2017.12.31.1
错误所在事件:表,基本法汇总表, DataColChanged
详细错误信息:
调用的目标发生了异常。
从字符串“”到类型“Double”的转换无效。
输入字符串的格式不正确。

报错是怎么回事呢?

--  作者:wyz20130512
--  发布时间:2018/3/27 21:21:00
--  
上传表结构的截图看看
--  作者:有点蓝
--  发布时间:2018/3/27 21:27:00
--  
出错事件的代码完整贴出来看看
--  作者:hnwang420
--  发布时间:2018/3/27 21:45:00
--  
If e.DataCol.Name = "姓名" Then 
    e.DataRow("首年佣金") = DataTables("承保明细").Compute("Sum(佣金)","[业务员姓名] = \'" & e.NewValue & "\'")
    e.DataRow("增员津贴_直接") = DataTables("承保明细").Compute("Sum(一代增员津贴)","[一代推荐人姓名] = \'" & e.NewValue & "\'")
    e.DataRow("增员津贴_间接") = DataTables("承保明细").Compute("Sum(二代增员津贴)","[二代推荐人姓名] = \'" & e.NewValue & "\'")
End If
If e.DataRow("现任职级")= "见习客户经理" Then
    If e.DataRow("首年佣金")>= 6000 Then
        e.DataRow("展业津贴") = e.DataRow("标准保费")*0.35
    ElseIf e.DataRow("首年佣金")>= 3000 Then
        e.DataRow("展业津贴") = e.DataRow("标准保费")*0.3
    ElseIf e.DataRow("首年佣金")>= 0 Then
        e.DataRow("展业津贴") = e.DataRow("标准保费")*0.15
    End If
Else
    If e.DataRow("首年佣金")>= 6000 Then
        e.DataRow("展业津贴") = e.DataRow("标准保费")*0.35
    ElseIf e.DataRow("首年佣金")>= 3000 Then
        e.DataRow("展业津贴") = e.DataRow("标准保费")*0.3
    ElseIf e.DataRow("首年佣金")>= 0 Then
        e.DataRow("展业津贴") = e.DataRow("标准保费")*0.2
    End If
End If

--  作者:hnwang420
--  发布时间:2018/3/27 21:47:00
--  
表结构是这个吗
图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20180327214701.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2018/3/27 21:52:00
--  
把所有的费用、金额列改为双精度类型