以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]自动计算列的数据,如何实现手动更改! (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=12215) |
|||||
-- 作者:gaoyong30000 -- 发布时间:2011/8/26 9:38:00 -- [求助]自动计算列的数据,如何实现手动更改! 我这个项目 有2列 当前里程 和 最后保养公里数 最后保养公里数=当前里程+3000 或 当前里程+5000 当前里程为空 当前里程非空
但是有时候 我需要手动更改保存 最后保养公里数
之前用了表达式列 和 表属性 datachanged事件均不可手动更改
利用窗口控件事件也出错
特来求助~~
现在表属性 datachanged事件代码为 Select Case e.DataCol.Name
|
|||||
-- 作者:mr725 -- 发布时间:2011/8/26 10:07:00 -- 可能要增加一个判别列了·····或在其他文本列中输入一个特别的记号来判别。 |
|||||
-- 作者:狐狸爸爸 -- 发布时间:2011/8/26 10:10:00 -- Select Case e.DataCol.Name Case "当前里程" Dim dr As DataRow = e.DataRow If dr("当前里程")= 0 Then dr("下次保养公里数") = 3000 Else dr("下次保养公里数")= dr("当前里程") + 5000 End If End Select |
|||||
-- 作者:gaoyong30000 -- 发布时间:2011/8/26 10:27:00 --
Case "当前里程","下次保养公里数" 多了一个 下次保养公里数 就会出现不可修改 原理是什么? |
|||||
-- 作者:狐狸爸爸 -- 发布时间:2011/8/26 10:31:00 -- 如果多一个下次保养公里数的话,每次修改下次保养公里数,就会执行:
Dim dr As DataRow = e.DataRow
也就是手工修改了下次保养公里数,就会按上面的代码重算下次保养公里数,输入自然就无效了。
建议重读帮助文件3遍,特别是foxtable编程这部分。 [此贴子已经被作者于2011-8-26 10:32:18编辑过]
|
|||||
-- 作者:foxor -- 发布时间:2011/8/26 10:33:00 -- 需要修改的数据不要用表达式列,手动修改最好设置相应的权限 |
|||||
-- 作者:gaoyong30000 -- 发布时间:2011/8/26 10:42:00 -- 恩 我也正准备再 仔细看几遍帮助呢 |