以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 表达式列生成的自动编号,赋给同一行另一字符列时,不能随之时时变化(已解决)用代码少走弯路 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=86440) |
-- 作者:ericotaku -- 发布时间:2016/6/17 12:58:00 -- 表达式列生成的自动编号,赋给同一行另一字符列时,不能随之时时变化(已解决)用代码少走弯路 我按帮助“美化自动编号”,在表中设置了一个表达式列[编号表达式] 表达式为 \'WXMX\' + SubString(\'000000\', 1, 6 - Len(Convert([_Identify],\'System.String\'))) + Convert([_Identify], \'System.String\') 我是用的外部数据表,表的过滤条件设置成了 [_Identify] Is Null 表的DataRowAdded代码为 For Each r As Row In Tables("表").Rows r("编号") = r("编号表达式") Next 当我新增行的时候 列[编号表达式]的值为WXMX000000,列[编号]的值根据DataRowAdded的代码也是WXMX000000 问题一:为什么会是000000呢?我看帮助上写:“新增行的_Identify列的内容是临时性的”,那这个临时性的值会是全0吗? 当我保存后, 列[编号表达式]的值变化,看帮助应该是因为“_Identify列会重新生成一个永久性的值” 那这时候,列[编号]却不跟着变。。。 我是想让编号列随着编号表达式列变化而变化,而现在只有在新增行的时候才可以 我把代码 For Each r As Row In Tables("表").Rows r("编号") = r("编号表达式") Next 放在DataColChanged,AfterEdit中,也没效果。 放在CurrentChange中,会有效果,不过得点击单元格。也不是我要的效果。 问题二:怎么能让[编号]跟着[编号表达式]一起变啊?代码应该怎么写,放在哪里呢? [此贴子已经被作者于2016/6/17 15:38:37编辑过]
|
-- 作者:大红袍 -- 发布时间:2016/6/17 14:40:00 -- 你为什么要这样?一定要两列?直接一列完事
DataRowAdded事件
e.DataRow.Save e.DataRows("编号") = "WXMX” & Format(e.DataRow("_Identify"), "000000") |
-- 作者:ericotaku -- 发布时间:2016/6/17 15:38:00 -- 厄,是啊。。。我想多了 当时寻思表达式列不能做关联列,又不想用Identify列。 还是用代码的好处多多啊 |