以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  移动数据行时有误  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=132847)

--  作者:裴保民
--  发布时间:2019/3/31 14:51:00
--  移动数据行时有误
我在单选框的CheckedChanged事件中写了如下代码,运行后发现修改数据并且也保存了数据后,如果这时将数据行移动到单选框未选中的行时,就会把刚才保存过的数据清空了,看看哪的原因?
If e.Sender.Checked Then
    e.Form.Controls("zengzhifuwu").Enabled=True
Else
   Dim t As Table = Tables("商户表")
    Dim idx As Integer=t.findrow("商户ID=\'" & e.Form.Controls("shanghuIDTextBox").Value & "\'")
    Dim dr As DataRow = DataTables("商户表").Find("商户ID=\'" & e.Form.Controls("shanghuIDTextBox").Value & "\'")
    If idx >=0 Then
        dr("贷记卡金额") = Nothing
        dr("借记卡费率") = Nothing
        dr("借记卡封顶金额") =Nothing
        dr("借记卡是否开通封顶") = False
        dr("增收手续费") = Nothing
        dr("增收费率") = Nothing
        e.Form.Controls("zengzhifuwu").Enabled=False
  End If
End If

--  作者:有点甜
--  发布时间:2019/4/1 10:58:00
--  

 

你写了代码清空啊,如果不想清空,那就删除你的赋值代码。

 

请上传实例,具体说明你的逻辑,说明要做到什么效果。


--  作者:裴保民
--  发布时间:2019/4/1 11:24:00
--  
当修改数据时如果单选框是选中状态下不清空,为选中时就清空了,前面运行都正常,并且数据也保存了,可是在窗体表中移动行时,移动到单选框未选中的行时,就会把刚才保存过的数据清空了,如果退出窗体或重新启动程序后,就正常了,不知道怎么回事
--  作者:有点甜
--  发布时间:2019/4/1 12:42:00
--  
上传实例发上来测试。
--  作者:裴保民
--  发布时间:2019/4/1 15:31:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:单选框测试.foxdb


甜老师试试当数据保存后将数据行移动到“是否开通TS”时会将刚才保存过得数据的值清空的
[此贴子已经被作者于2019/4/1 15:33:21编辑过]

--  作者:有点甜
--  发布时间:2019/4/1 17:07:00
--  

把代码改写到click事件即可

 

If e.Sender.Checked Then
    e.Form.Controls("zengzhifuwu").Enabled=True
     Else
    Dim t As Table = Tables("表A")
    Dim idx As Integer=t.findrow("商户ID=\'" & e.Form.Controls("shanghuIDTextBox").Value & "\'")
    Dim dr As DataRow = DataTables("表A").Find("商户ID=\'" & e.Form.Controls("shanghuIDTextBox").Value & "\'")
      If idx >=0 Then
    dr("贷记卡金额") = Nothing
    dr("借记卡费率") = Nothing
    dr("借记卡封顶金额") =Nothing
    dr("借记卡是否开通封顶") = False
    dr("增收手续费") = Nothing
    dr("增收费率") = Nothing
    e.Form.Controls("zengzhifuwu").Enabled=False
    End If
End If