Foxtable(狐表)用户栏目专家坐堂 → [已解决] 根据当前列字符计算相关列


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

主题:[已解决] 根据当前列字符计算相关列

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


加好友 发短信
等级:婴狐 帖子:17 积分:179 威望:0 精华:0 注册:2013/11/19 17:18:00
[已解决] 根据当前列字符计算相关列  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:4752 积分:34568 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2014/1/7 23:19:00 [只看该作者]

请看“表达式”一章

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/1/7 23:39:00 [只看该作者]


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


加好友 发短信
等级:婴狐 帖子:17 积分:179 威望:0 精华:0 注册:2013/11/19 17:18:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/1/8 8:42:00 [只看该作者]

单引号去掉   dr("取费") = "结算价"

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


加好友 发短信
等级:婴狐 帖子:17 积分:179 威望:0 精华:0 注册:2013/11/19 17:18:00
  发帖心情 Post By:2014/1/8 8:50:00 [只看该作者]

dr("取费") = "结算价"  昨晚琢磨一晚,没有单引号提示结算价没有定义,现在试了是不用单引号能计算结果,谢谢大神,谢谢!

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/1/8 8:57:00 [只看该作者]

不会的. 就是一个字符串,怎么会提示没有定义呢? 你上例子吧

 回到顶部