以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [已解决] 根据当前列字符计算相关列  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=44739)

--  作者:weigqing
--  发布时间:2014/1/7 23:09:00
--  [已解决] 根据当前列字符计算相关列

请教如图例,取费为列表项目,要求对应下拉列表字符计算管理费与水电费值,如取费为“审计价”管理费值=[审定价]*[管理费率],谢谢!

 


图片点击可在新窗口打开查看此主题相关图片如下:求助.jpg
图片点击可在新窗口打开查看

我写的代码计算结果为零,帮助文件“自动输入的实现”看了几遍没有悟出,谢谢!

Dim dr As DataRow = e.DataRow
Dim ds As Double
Select Case e.DataCol.Name
    Case "管理费率" ,"水电费率" , "取费" ,"审定价", "合同金额", "决算价"
    If  dr("取费") = "\'合同价\'" Then
         ds = dr("合同金额")
    Else If dr("取费") = "\'结算价\'" Then
        ds = dr("决算价")
    Else If dr("取费") = "\'审计价\'" Then
        ds = dr("审定价")
    End If
    If dr.IsNull("取费") OrElse dr.IsNull("管理费率") OrElse dr.IsNull("水电费率") Then \'如取费等列为空
        dr("管理费") = Nothing
        dr("水电费") = Nothing
    Else
        dr("管理费") = dr("管理费率") * ds
        dr("水电费") = dr("水电费率") * ds
       
    End If
End Select

[此贴子已经被作者于2014-1-8 8:50:33编辑过]

--  作者:y2287958
--  发布时间:2014/1/7 23:19:00
--  
请看“表达式”一章
--  作者:有点甜
--  发布时间:2014/1/7 23:39:00
--  
 需要重置列。


--  作者:weigqing
--  发布时间:2014/1/8 8:13:00
--  

重置后结果还是为0值,表事件DataColChanged

我想是不是判断名写错,请老师修改,谢谢!

Dim dr As DataRow = e.DataRow
Dim ds As Double
Select Case e.DataCol.Name
    Case "管理费率" ,"水电费率" , "取费" ,"审定价", "合同金额", "决算价"
    If  dr("取费") = "\'合同价\'" Then      ‘这句合同价双引号内加单引号是否有错?但帮助文件表达式要求字符为单引号,如:“[取费]=’审计价‘”写法在命令窗口计算结果为整条语句。

         ds = dr("合同金额")                \'ds值没有找到,
    Else If dr("取费") = "\'结算价\'" Then
        ds = dr("决算价")
    Else If dr("取费") = "\'审计价\'" Then
        ds = dr("审定价")
    End If
    If dr.IsNull("取费") OrElse dr.IsNull("管理费率") OrElse dr.IsNull("水电费率") Then \'如取费等列为空
        dr("管理费") = Nothing
        dr("水电费") = Nothing
    Else
        dr("管理费") = dr("管理费率") * ds
        dr("水电费") = dr("水电费率") * ds
       
    End If
End Select

 


--  作者:Bin
--  发布时间:2014/1/8 8:42:00
--  
单引号去掉   dr("取费") = "结算价"
--  作者:weigqing
--  发布时间:2014/1/8 8:50:00
--  
dr("取费") = "结算价"  昨晚琢磨一晚,没有单引号提示结算价没有定义,现在试了是不用单引号能计算结果,谢谢大神,谢谢!
--  作者:Bin
--  发布时间:2014/1/8 8:57:00
--  
不会的. 就是一个字符串,怎么会提示没有定义呢? 你上例子吧