以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]自动计算列的数据,如何实现手动更改!  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=12215)

--  作者:gaoyong30000
--  发布时间:2011/8/26 9:38:00
--  [求助]自动计算列的数据,如何实现手动更改!

我这个项目 有2列   当前里程 和 最后保养公里数

最后保养公里数=当前里程+3000    或  当前里程+5000

                       当前里程为空             当前里程非空

 

但是有时候 我需要手动更改保存 最后保养公里数

 

之前用了表达式列  和  表属性 datachanged事件均不可手动更改

 

利用窗口控件事件也出错

e.Form.Controls("TextBox14").Value = e.Sender.value + 5000

 

特来求助~~

 

现在表属性 datachanged事件代码为

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

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:内控系统22.rar


--  作者: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
    If dr("当前里程")= 0 Then
        dr("下次保养公里数") = 3000
     Else
        dr("下次保养公里数")= dr("当前里程") + 5000
    End If


 

也就是手工修改了下次保养公里数,就会按上面的代码重算下次保养公里数,输入自然就无效了。

 

建议重读帮助文件3遍,特别是foxtable编程这部分。

[此贴子已经被作者于2011-8-26 10:32:18编辑过]

--  作者:foxor
--  发布时间:2011/8/26 10:33:00
--  
需要修改的数据不要用表达式列,手动修改最好设置相应的权限
--  作者:gaoyong30000
--  发布时间:2011/8/26 10:42:00
--  

恩  我也正准备再 仔细看几遍帮助呢