以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]自动编号 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=23262) |
-- 作者:lxhmax -- 发布时间:2012/9/7 10:30:00 -- [求助]自动编号
我要将编号列设置为自动编号“WT000001”,以这种格式每增加一行就自动添加编号!请问要怎么写代码,因为这个是关联列,如果用了表达式就关联不了了 |
-- 作者:jspta -- 发布时间:2012/9/7 10:34:00 -- 在帮助中搜索 自动编号 找到“自动编号生成方法” 觉得狐爸应该直接提供这种简单单列,字母+数字的自动增量行数给用户直接调用,省的普通用户为这个发愁 [此贴子已经被作者于2012-9-7 10:38:12编辑过]
|
-- 作者:lxhmax -- 发布时间:2012/9/7 15:11:00 -- 我的意思是没有前面字母那一列,将字母直接在代码中添加进去!因为这两个字母是固定的~ |
-- 作者:狐狸爸爸 -- 发布时间:2012/9/7 15:55:00 -- 如果这样,很简单,用表达式列就行:
http://www.foxtable.com/help/topics/1443.htm
|
-- 作者:lxhmax -- 发布时间:2012/9/7 15:58:00 -- 这个列我是要作为关联列的,表达式列关联不了~~ |
-- 作者:lin_hailun -- 发布时间:2012/9/7 16:18:00 -- 写成一个内部函数来用吧,毕竟自增编号用到的情况挺多。 Dim dt As DataTable = DataTables(args(0)) \'表名 Dim drName As String = args(1) \'列名 Dim left As String = args(2) \'左边 Dim fomart As String = args(3) \'格式 Dim max As String Dim idx As Integer max = dt.Compute("Max(" & drName & ")") If max > "" Then idx = CInt(max.SubString(left.Length, fomart.Length)) + 1 Else idx = 1 End If Return left & Format(idx, fomart) 然后,调用函数。 Dim idx As String = Functions.Execute("函数名", "表名", "列名", "WT", "000000") MessageBox.Show(idx) |
-- 作者:狐狸爸爸 -- 发布时间:2012/9/7 16:23:00 -- 以下是引用lxhmax在2012-9-7 15:58:00的发言:
这个列我是要作为关联列的,表达式列关联不了~~
你用"_Identify"建立关联就行,你加这个WT只是美观而已,需要显示WT的地方,都用表达式列,实际的数据还是用整数型列。 |
-- 作者:lxhmax -- 发布时间:2012/9/7 17:20:00 -- 请问下~这怎么个用法,小弟新手不会呢~谢谢啦! |
-- 作者:jspta -- 发布时间:2012/9/7 17:43:00 -- 以下是引用lxhmax在2012-9-7 17:20:00的发言:
请问下~这怎么个用法,小弟新手不会呢~谢谢啦! 根据8楼的代码,放到内部函数中,命名“自动编号” 然后在表事件,DataRowAdded 中 e.DataRow("序号列名") = Functions.Execute("自动编号", e.DataTable.Name, "序号列名", "WT", "000000") |
-- 作者:lxhmax -- 发布时间:2012/9/8 9:07:00 -- 可以啦~太感谢你们了~ |