易表在线答疑技术与交流用户社区 → 这样的自动编号如何实现?


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

主题:这样的自动编号如何实现?

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


加好友 发短信
等级:论坛游民 帖子:73 积分:113 威望:0 精华:0 注册:2006/8/14 1:15:00
  发帖心情 Post By:2007/10/25 16:06:00 [只看该作者]

新增时第一列的编号应是这一列最大编号加1,第二列是从1至N,重新上传附件。egd文件下载

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  12楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:4639 积分:133 威望:0 精华:0 注册:2006/9/23 19:23:00
  发帖心情 Post By:2007/10/25 16:22:00 [只看该作者]

egd文件下载

       如果行数不固定,请看看这个,应该更方便!


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


加好友 发短信
等级:论坛游民 帖子:73 积分:113 威望:0 精华:0 注册:2006/8/14 1:15:00
  发帖心情 Post By:2007/10/25 16:35:00 [只看该作者]

不是这样的要求呢!简单的说就是:每点击一次新增按钮添加n行,新增行的第一列编号自动加一(所有行都一样),新增行的每二列编号从1至n

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  14楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:4639 积分:133 威望:0 精华:0 注册:2006/9/23 19:23:00
  发帖心情 Post By:2007/10/25 17:08:00 [只看该作者]

egd文件下载

       再看看是不是这样?

-=-=-=- 以下内容由 程兴刚2007年10月25日 05:09pm 时添加 -=-=-=-
请先输入新增行数!


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


加好友 发短信
等级:论坛游民 帖子:73 积分:113 威望:0 精华:0 注册:2006/8/14 1:15:00
  发帖心情 Post By:2007/10/25 17:32:00 [只看该作者]

对了!就是这样,非常感谢程版主!

-=-=-=- 以下内容由 dyshxb2007年10月25日 05:55pm 时添加 -=-=-=-
有些疑问:Move(Rows,2)有什么作用?另外Right(""000"" + [%新增号%],4)为什么要用变量,直接Right(""000"" + Text(Number([第一列]) + 1),4)不行吗?

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


加好友 发短信
等级:超级版主 帖子:13147 积分:-89 威望:0 精华:0 注册:2006/8/11 11:14:00
  发帖心情 Post By:2007/10/25 17:57:00 [只看该作者]

如果你的数据量比较大,用evalfor重算可能会影响速度。

我有一方法,你可以试一下。
第一列默认值公式:cell(row-1,col)
第二列默认值公式:Number(cell(row-1,col))+1
按钮公式:

if([%A%]<=0,MsgBox("请输入要增加的行数",0),AddRows(Grid,1) And SetCellText(Grid,Row,"第一列",Right("000"+text(MaxFor(Grid,"第一列")+1),4)) And SetCellText(Grid,Row,"第二列",1) And eval(Mid(Rept(" And AddRows(Grid,1)",[%A%]-1),5)))

这样就不受数据量的影响了。


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


加好友 发短信
等级:超级版主 帖子:13147 积分:-89 威望:0 精华:0 注册:2006/8/11 11:14:00
  发帖心情 Post By:2007/10/25 18:10:00 [只看该作者]

楼上按钮公式有误,应该这样更省资源:

if([%A%]<=0,MsgBox("请输入要增加的行数",0),AddRows(Grid,1) And SetCellText(Grid,Row,"第一列",Right("000"+text(MaxFor(Grid,"第一列")+1),4)) And SetCellText(Grid,Row,"第二列",1) And AddRows(Grid,[%A%]-1))


 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  18楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:4639 积分:133 威望:0 精华:0 注册:2006/9/23 19:23:00
  发帖心情 Post By:2007/10/25 18:16:00 [只看该作者]

下面引用由czy2007/10/25 06:10pm 发表的内容:
楼上按钮公式有误,应该这样更省资源:
if(<=0,MsgBox("请输入要增加的行数",0),AddRows(Grid,1) And SetCellText(Grid,Row,"第一列",Right("000"+text(MaxFor(Grid,"第 ...


    又学习一招!


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


加好友 发短信
等级:论坛游民 帖子:73 积分:113 威望:0 精华:0 注册:2006/8/14 1:15:00
  发帖心情 Post By:2007/10/25 18:17:00 [只看该作者]

非常好用,谢谢总版主!另外程版主还没问答我的问题(见15楼)

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  20楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:4639 积分:133 威望:0 精华:0 注册:2006/9/23 19:23:00
  发帖心情 Post By:2007/10/25 18:24:00 [只看该作者]

呵呵,看到版主的好方案,就没有在回答,那就解释一下!

    第一:Move(Rows,2)的目的是为了直接给变量赋值 Number([第一列]) ,如果这里不用变量,新增行后,录入焦点会跑到新增行,此时直接取值的话,第一列为空,Number([第一列]) 为0,这样的话,按您的方法直接使用,第一列新行增生成的值始终是“0001”

-=-=-=- 以下内容由 程兴刚2007年10月25日 06:31pm 时添加 -=-=-=-
用Move(Rows,2)的可以省去一个cell()函数,一来可以避免cell()函数速度并不快,二来可以避免多嵌套一个cell函数可能产生的函数嵌套错误!


 回到顶部
总数 24 上一页 1 2 3 下一页