以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]重新提问关于表属性中事件代码的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=160825) |
-- 作者:chypr020 -- 发布时间:2021/2/23 13:53:00 -- [求助]重新提问关于表属性中事件代码的问题 有两个表,分别是“生产统计”和“熔炼效率”,现在想实现如下功能: 在“生产统计”表中的数据列“铸锭批号2”中填写了信息后,会在“熔炼效率”中的“铸锭批号”列同步信息,并将该批号中的相关生产信息同步到相应数据列中。(可能有些词语不够准确,但大体意思没错) 采用的方法是:利用表属性中的DataColChanged事件,代码如下: Select Case e.DataCol.name Case "铸锭批号2" Dim dr As DataRow =DataTables("熔炼效率").find("铸锭批号 =\'" & e.oldvalue & "\'") If dr Is Nothing Then dr = DataTables("熔炼效率").sqlfind("铸锭批号 =\'" & e.oldvalue & "\'") If dr Is Nothing Then dr=DataTables("熔炼效率").addnew() dr("铸锭批号")=e.DataRow("铸锭批号2") dr("毛锭规格")=e.DataRow("锭型") dr("熔炼起始时间")=e.DataRow("熔炼时间") dr("熔炼结束时间")=e.DataRow("补缩时间") dr("熔炼1_班组")=e.DataRow("熔炼班组") dr("熔炼1_长度_结束")=e.DataRow("熔炼长度") dr("熔炼2_班组")=e.DataRow("熔炼班组2") dr("熔炼2_长度_结束")=e.DataRow("熔炼长度2") dr("熔炼3_班组")=e.DataRow("熔炼班组3") dr("熔炼3_长度_结束")=e.DataRow("熔炼长度3") dr("熔炼4_班组")=e.DataRow("熔炼班组4") dr("熔炼4_长度_结束")=e.DataRow("熔炼长度4") Else dr("铸锭批号")=e.DataRow("铸锭批号2") End If dr.save Case "熔炼起始时间","熔炼结束时间","熔炼1_班组","熔炼1_长度_结束","熔炼2_班组","熔炼2_长度_开始","熔炼2_长度_结束","熔炼3_班组","熔炼3_长度_开始","熔炼3_长度_结束","熔炼4_班组","熔炼4_长度_开始","熔炼4_长度_结束" Dim dr As DataRow=DataTables("熔炼效率").find("铸锭批号 =\'" & e.DataRow("铸锭批号") & "\'") If dr Is Nothing Then dr=DataTables("熔炼效率").sqlfind("铸锭批号 =\'" & e.DataRow("铸锭批号") & "\'") If dr IsNot Nothing Then dr(e.DataCol.name)=e.DataRow(e.DataCol.name) dr.save End If End Select 然而,在填写信息后,没有任何效果。请教:如何寻找问题。 |
-- 作者:有点蓝 -- 发布时间:2021/2/23 14:09:00 -- 修改"铸锭批号2"数据不会改变?到数据库看看数据有没有变化? 另外已有数据重置一下列 |
-- 作者:chypr020 -- 发布时间:2021/2/23 14:28:00 -- 果然,数据库里的信息有变化,但在狐表里看不到。 |
-- 作者:有点蓝 -- 发布时间:2021/2/23 14:34:00 -- sqlfind改的是后台数据,前端需要重新加载数据 |
-- 作者:chypr020 -- 发布时间:2021/2/24 8:54:00 -- 好啦,多谢蓝老师 |