以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  求助-表DataColChanged事件改按钮  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=190744)

--  作者:lovetoday
--  发布时间:2024/3/1 17:00:00
--  求助-表DataColChanged事件改按钮
老师,我在表 “白塔泵人备注“ 表中的DataColChanged事件中,代码
If e.DataRow("泵人备注_年月").length = 6 Then 
    e.DataRow("泵人备注_年") = e.DataRow("泵人备注_年月").SubString(0, 4)
    e.DataRow("泵人备注_月") = e.DataRow("泵人备注_年月").SubString(4, 2)
Else
    e.DataRow("泵人备注_年") = Nothing
    e.DataRow("泵人备注_月") = Nothing
End If

能正常运行且实现功能,

现在,我想将这个功能设计到窗口按钮的click事件中,系统提示错误

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20240301165901.png
图片点击可在新窗口打开查看
请问老师,如何修改?

--  作者:有点蓝
--  发布时间:2024/3/1 17:10:00
--  
dim r as row = tabels( “白塔泵人备注“).current
if r isnot nothing then
If r("泵人备注_年月").length = 6 Then 
    r("泵人备注_年") = r("泵人备注_年月").SubString(0, 4)
    r("泵人备注_月") = r("泵人备注_年月").SubString(4, 2)
Else
    r("泵人备注_年") = Nothing
    r("泵人备注_月") = Nothing
End If
end if

--  作者:lovetoday
--  发布时间:2024/3/1 17:22:00
--  
老师,现在的提示

图片点击可在新窗口打开查看此主题相关图片如下:12456.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2024/3/1 17:22:39编辑过]

--  作者:有点蓝
--  发布时间:2024/3/1 17:26:00
--  
手误,tabels改为tables
--  作者:lovetoday
--  发布时间:2024/3/1 17:31:00
--  
成功了,非常感谢老师
--  作者:lovetoday
--  发布时间:2024/3/2 16:13:00
--  
老师,在使用这个时,只有在焦点在年月列时,对应的年和月才实现,非焦点的那些行,年和月在点击按钮时,是不实现的,请问老师,这如何解决?
--  作者:有点蓝
--  发布时间:2024/3/2 17:28:00
--  
改为遍历所有行处理:http://www.foxtable.com/webhelp/topics/1438.htm
--  作者:lovetoday
--  发布时间:2024/3/3 11:13:00
--  
老师,这代码,只执行选中列,不执行刷新,求教
Dim p As Integer
With CurrentTable
    p = .Cols("泵人备注_年月").Index
    .Select(0, p, .Rows.Count - 1, p)
End With

Dim r As Row = Tables("工作总表_Table5").current
If r IsNot Nothing Then
    If r("泵人备注_年月").length = 6 Then 
        r("泵人备注_年") = r("泵人备注_年月").SubString(0, 4)
        r("泵人备注_月") = r("泵人备注_年月").SubString(4, 2)
    Else
        r("泵人备注_年") = Nothing
        r("泵人备注_月") = Nothing
    End If
End If

--  作者:有点蓝
--  发布时间:2024/3/3 20:15:00
--  
让您遍历,却去做什么选中列,选中再多的列,当前行都不会变的!

For Each r As Row In Tables("工作总表_Table5").Rows
   
    If r("泵人备注_年月").length = 6 Then 
        r("泵人备注_年") = r("泵人备注_年月").SubString(0, 4)
        r("泵人备注_月") = r("泵人备注_年月").SubString(4, 2)
    Else
        r("泵人备注_年") = Nothing
        r("泵人备注_月") = Nothing
    End If
Next

--  作者:lovetoday
--  发布时间:2024/3/4 10:29:00
--  
非常非常感谢您!