Foxtable(狐表)用户栏目专家坐堂 → 表达式列生成的自动编号,赋给同一行另一字符列时,不能随之时时变化(已解决)用代码少走弯路


  共有1744人关注过本帖树形打印复制链接

主题:表达式列生成的自动编号,赋给同一行另一字符列时,不能随之时时变化(已解决)用代码少走弯路

美女呀,离线,留言给我吧!
ericotaku
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:163 积分:1373 威望:0 精华:0 注册:2014/6/10 8:47:00
表达式列生成的自动编号,赋给同一行另一字符列时,不能随之时时变化(已解决)用代码少走弯路  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/6/17 14:40:00 [只看该作者]

 你为什么要这样?一定要两列?直接一列完事

 

 DataRowAdded事件

 

e.DataRow.Save

e.DataRows("编号") = "WXMX” & Format(e.DataRow("_Identify"), "000000")


 回到顶部
美女呀,离线,留言给我吧!
ericotaku
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:163 积分:1373 威望:0 精华:0 注册:2014/6/10 8:47:00
  发帖心情 Post By:2016/6/17 15:38:00 [只看该作者]

厄,是啊。。。我想多了图片点击可在新窗口打开查看 

当时寻思表达式列不能做关联列,又不想用Identify列。

还是用代码的好处多多啊


 回到顶部