以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助] 代码计算的值,想手动更改? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=146037) |
-- 作者:CHSTONE -- 发布时间:2020/2/14 18:11:00 -- [求助] 代码计算的值,想手动更改? 各位大神老师: \'以下代码是计算单价及金额的,在表事件DataColChanged中: Select Case e.DataCol.Name Case "材料费","加工项目_切割费","加工项目_折弯费","数量","单价" dr("单价") = dr("材料费")+dr("加工项目_切割费")+dr("加工项目_折弯费") dr("金额") = dr("单价")*dr("数量") End Select 以上代码已经正确计算出单价及金额,但是在表中,单价列就不能更改了,如果我想在表中手动更改单价列,该如何弄? 请指教!
|
-- 作者:有点蓝 -- 发布时间:2020/2/14 20:11:00 -- 判断一下,如果单价有值,就不再计算 Select Case e.DataCol.Name Case "材料费","加工项目_切割费","加工项目_折弯费" if dr.isnull("单价") then dr("单价") = dr("材料费")+dr("加工项目_切割费")+dr("加工项目_折弯费") end if Case "数量","单价"
dr("金额") = dr("单价")*dr("数量") End Select |
-- 作者:CHSTONE -- 发布时间:2020/2/14 20:31:00 -- 有点蓝老师: 你好! 你上面的这种代码不行,我发贴之前我就试过.而且我还试过其它几种表事情都不行.(代码都是不错的,但就是不能执行). 本身单价是根据其它几种列值变化而来的(dr("单价") = dr("材料费")+dr("加工项目_切割费")+dr("加工项目_折弯费")),因此单价列初值本身就是空的,但当几列内容输入进去之后,单价列的值就被自动算了出来. 但有时候自动算的值达不到要求,这时候想手动修改(在表中直接输入),这时候单价列就无法进行编辑状态,我也查过的,单价列的ALLOWEDIT 状态是TRUE. 这个问题如何破,请指教. TKS! CHS |
-- 作者:有点蓝 -- 发布时间:2020/2/14 21:09:00 -- 请上传具体实例说明 |
-- 作者:CHSTONE -- 发布时间:2020/2/14 22:34:00 -- 有点蓝老师: 附件已上传. 以下代码是计算单价及金额的,在表事件DataColChanged中: 记价表 中的. Select Case e.DataCol.Name Case "材料费","加工项目_切割费","加工项目_折弯费","数量","单价" dr("单价") = dr("材料费")+dr("加工项目_切割费")+dr("加工项目_折弯费") dr("金额") = dr("单价")*dr("数量") End Select 以上代码已经正确计算出单价及金额,但是在表中,单价列就不能更改了,如果我想在表中手动更改单价列,该如何弄? (当然其中的材料费,加工项目切割费等有一些需要计算的字段都是通代码写在表,记价表事件DataColChanged中了) 请指教! |
-- 作者:有点蓝 -- 发布时间:2020/2/14 23:05:00 -- 单价列是表达式列,当然改不了,转换为数据列即可:http://www.foxtable.com/webhelp/topics/2494.htm |
-- 作者:CHSTONE -- 发布时间:2020/2/14 23:12:00 -- 对的,难道其它代码计算的可以更改呢. 谢谢蓝老师! |
-- 作者:CHSTONE -- 发布时间:2020/2/14 23:26:00 -- 蓝老师,还是不能修改呦. 但其它代码计算的几个列数值是可以更改的. 麻烦明天老师再帮我看看.谢谢!
|
-- 作者:有点蓝 -- 发布时间:2020/2/15 8:37:00 -- 我测试没有问题,确定已经转换为数据列了?到表结构里看看 或者2楼的代码把if dr.isnull("单价") then判断去掉试试
|
-- 作者:CHSTONE -- 发布时间:2020/2/15 9:56:00 -- 2楼的代码把if dr.isnull("单价") then判断已经去掉,并且确定单价列是数据列,而且鼠标可以进去,之后也可以新值输入数值,但鼠标离开的同时,数值又立即变成了表达式计算的数值,也就是没有更改成功. (当然其中的材料费,加工项目切割费等有一些需要计算的字段都是通代码写在表,记价表事件DataColChanged中了,而且是可以在表里面直接可以更改的)
|