Foxtable(狐表)用户栏目专家坐堂 → 如何实现在增加行时“编号”列自动增加固定位数且有代码的编号


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

主题:如何实现在增加行时“编号”列自动增加固定位数且有代码的编号

帅哥哟,离线,有人找我吗?
13315253800
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:543 积分:3942 威望:0 精华:0 注册:2018/1/3 16:03:00
如何实现在增加行时“编号”列自动增加固定位数且有代码的编号  发帖心情 Post By:2022/11/27 11:12:00 [只看该作者]

蓝老师您好!请教如何实现在增加行时“编号”列自动增加固定位数且有代码的编号

就像表达式列如下表达式公式的效果

'CYS' + SubString('0000', 1, 4 - Len(Convert([_Identify],'System.String'))) + Convert([_Identify], 'System.String')

因“编号”是关联列,不能用表达式格式,我在表属性增加行DataRowAdding事件中用代码

e.DataRow("编号") = e.DataTable.Compute("Max(编号)") + 1

e.DataRow("编号") ="CYS" & "-" & e.DataTable.Compute("Max(编号)") + 1

均为实现自动增加固定位数且有代码的编号,敬请老师指导!


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


加好友 发短信
等级:超级版主 帖子:107014 积分:544295 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/11/27 20:13:00 [只看该作者]


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


加好友 发短信
等级:二尾狐 帖子:543 积分:3942 威望:0 精华:0 注册:2018/1/3 16:03:00
  发帖心情 Post By:2022/11/27 20:34:00 [只看该作者]

蓝老师,我想不设置“类别”列,只设“编号”列,就是的前面有固定的“GYS”三个字母,编码三位,如“GYS001”,想在增加行DataRowAdding事件设置。帮助中没有此类可参考的代码,能实现吗?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107014 积分:544295 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/11/27 20:49:00 [只看该作者]

用法都一样的啊,建议还是先仔细阅读2落得帮助吧。看帮助要学习的是帮助里处理问题的思维和逻辑,而不是就为了抄代码。

帮助里别人是怎么处理有类别的编号的?不管是日期、类别列还是固定的字母,在进行编号+1 的时候都要先把这些类别字母去掉呀,看帮助的用法

1、按月的
idx = CInt(max.Substring(7,3)) + 1 '获得最大编号的后三位顺序号,并加1
2、按日的
idx = CInt(max.Substring(9,3)) + 1 '获得最大编号的后三位顺序号,并加1
3、按类别的
 idx = CInt(max.Substring(2,3)) + 1 '获得最大编号的后三位顺序号,并加1


所以处理问题的方法都一样的!
dim max as string = e.DataTable.Compute("Max(编号)")
dim idx as integer = CInt(max.Substring(3,3)) + 1 '获得最大编号的后三位顺序号,并加1
e.DataRow("编号") ="CYS" & "-" & Format(idx,"000")

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


加好友 发短信
等级:二尾狐 帖子:543 积分:3942 威望:0 精华:0 注册:2018/1/3 16:03:00
  发帖心情 Post By:2022/11/27 21:12:00 [只看该作者]

蓝老师讲的细致透彻,非常感谢!

 回到顶部