以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]主表中如何自动填写字表内容!! (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=130922) |
-- 作者:bashanren -- 发布时间:2019/2/11 22:40:00 -- [求助]主表中如何自动填写字表内容!! 各位老师新年好!! 在我的项目中,有如下一个窗口,是父窗口和子窗口同屏,如下图: 表“资质证件”与表“证书专业明细”建立了关联,在子表“证书专业明细”表属性的“DataColChanged”中的代码如下,目的是想在窗口中操作时,当子表中的“到期日期”值发生改变后,自动将“登记人”和“登记时间”填入到表中,然而,运行时,总是失败,不能自动填入,而单独在子表中(非窗口)操作又是可以自动填入“登记人”和“登记时间”,找不到如何更正,请大师帮忙,谢谢了!! Select Case e.DataCol.Name Case "培训日期","有效期" If e.DataRow.IsNull("培训日期") OrElse e.DataRow.IsNull("有效期") Then e.DataRow("到期日期") = Nothing If e.DataRow.Isnull("培训日期") Then e.DataRow("有效期") = Nothing MessageBox.show("培训日期不能空!","操作错误!",MessageBoxButtons.OK,MessageBoxicon.Error) End If Else Select Case e.DataRow("有效期") Case "一年" e.DataRow("到期日期") = e.DataRow("培训日期").AddYears(1) Case "两年" e.DataRow("到期日期") = e.DataRow("培训日期").AddYears(2) Case "三年" e.DataRow("到期日期") = e.DataRow("培训日期").AddYears(3) End Select Tables("证书专业明细").Current("登记人") = _UserName Tables("证书专业明细").Current("登记时间") = Date.now End If End Select 窗口运行如下图: |
-- 作者:有点蓝 -- 发布时间:2019/2/11 22:50:00 -- Tables("证书专业明细").Current("登记人") = _UserName Tables("证书专业明细").Current("登记时间") = Date.now 改为 e.DataRow("登记人") = _UserName
e.DataRow("登记时间") = Date.now |
-- 作者:bashanren -- 发布时间:2019/2/11 23:01:00 -- 谢 谢老师的指点,还请问老师,他们之间在用法上有什么区别吗?谢谢!! |
-- 作者:有点甜 -- 发布时间:2019/2/12 9:21:00 --
在事件里面,尽量使用 e.datarow 或者 e.row,在按钮或者无法确定引用e参数的时候,用 tables("").current,而且你的表名要写对(副本表和主表的表名不同)
|