Foxtable(狐表)用户栏目专家坐堂 → 表达式计算问题请教老师


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

主题:表达式计算问题请教老师

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


加好友 发短信
等级:四尾狐 帖子:824 积分:6288 威望:0 精华:0 注册:2012/3/1 3:17:00
表达式计算问题请教老师  发帖心情 Post By:2013/1/26 0:31:00 [显示全部帖子]

上传项目先~~~在表事件DataColChanged中输入以下代码,完成了金额合计列的计算

 

If e.DataCol.Name = "事项1金额" Then '如果更改的是事项1金额列
    If e.DataRow.IsNull("金额合计") Then '金额合计是否为空
        e.DataRow("事项1金额") = Nothing '如果为空,则清除事项1金额
    Else
        e.DataRow("金额合计")=e.DataRow("金额合计")-e.DataRow("事项1金额")
    End If
End If

 

想实现当事项1金额输入后再清除掉"金额合计"列的数值返回原先的数值,也就是重算"金额合计"列内容该怎么修改代码?请教老师

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


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


加好友 发短信
等级:四尾狐 帖子:824 积分:6288 威望:0 精华:0 注册:2012/3/1 3:17:00
  发帖心情 Post By:2013/1/26 17:39:00 [显示全部帖子]

第一种代码不行,金额合计输入2000后,事项1金额输入100后,金额合计就变-100数值了

 

方法二可行,但在后面的操作就变麻烦了

 

学生考虑用 e.NewValue  跟  e.OldValue

 

的话代码是不是更加麻烦,要判断很多东西



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


加好友 发短信
等级:四尾狐 帖子:824 积分:6288 威望:0 精华:0 注册:2012/3/1 3:17:00
  发帖心情 Post By:2013/1/26 18:15:00 [显示全部帖子]

最后改成在DataColChanging事件中输入下面的代码,感觉怪怪的,又想不出哪里怪了

 

If e.DataCol.Name = "事项1金额" Then '如果更改的是事项1金额列
    If e.DataRow.IsNull("金额合计") Then '金额合计是否为空

        e.Cancel = True '则取消更改
    Else
        e.DataRow("金额合计")=e.DataRow("金额合计") -e.NewValue + e.OldValue
    End If
End If

[此贴子已经被作者于2013-1-26 18:42:08编辑过]

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


加好友 发短信
等级:四尾狐 帖子:824 积分:6288 威望:0 精华:0 注册:2012/3/1 3:17:00
  发帖心情 Post By:2013/1/26 19:48:00 [显示全部帖子]

以下是引用lin_hailun在2013-1-26 17:45:00的发言:
 第二种方法的话,也不会以后处理复杂,这个才是最正确的方法。在原有基础上累减是错误的。

学生一直在纠结怪怪的原因,看了林老师说的可能就是这个问题,但变化的金额不单单这一列还有三列需要进行数值输入后进行判断再进行加减,最后再进行piao据套打打印,而piao据打印过程中合

 

计金额是只有一列的,如果进行四列数值判断后再选择哪一列的数值做为最后的合计金额,那样的代码变的很麻烦

 

麻烦林老师帮忙看下学生更改过的代码可行不,或者其它方法可以解决问题


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


加好友 发短信
等级:四尾狐 帖子:824 积分:6288 威望:0 精华:0 注册:2012/3/1 3:17:00
  发帖心情 Post By:2013/1/28 19:09:00 [显示全部帖子]

最后决定把加减放到打印按钮中解决了问题,感谢林老师

 回到顶部