以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何实现在增加行时“编号”列自动增加固定位数且有代码的编号 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=184178) |
-- 作者:13315253800 -- 发布时间: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 均为实现自动增加固定位数且有代码的编号,敬请老师指导! |
-- 作者:有点蓝 -- 发布时间:2022/11/27 20:13:00 -- 参考:http://www.foxtable.com/webhelp/topics/2403.htm |
-- 作者:13315253800 -- 发布时间:2022/11/27 20:34:00 -- 蓝老师,我想不设置“类别”列,只设“编号”列,就是的前面有固定的“GYS”三个字母,编码三位,如“GYS001”,想在增加行DataRowAdding事件设置。帮助中没有此类可参考的代码,能实现吗? |
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2022/11/27 21:12:00 -- 蓝老师讲的细致透彻,非常感谢! |