| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2791 人关注过本帖
标题:记录编号自动生成的问题
只看楼主 加入收藏
fp2001
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-5-26
收藏
 问题点数:0 回复次数:16 
记录编号自动生成的问题
各位达人们,问题又来了:
我做的一个新增记录,想不用自己定义编号,让编号自动生成,也就是在编号最大的一个上加1。
交易编号是6位字符型。问题是运行表单时,如果数据表里没有记录,那么第一条记录是“0000 1”。
也就是那个“1”前面有个零不显示。。测试过不是空格。第二条也是“0000 2”如果存在很多记录,就会正常显示。
如“000011”“000232”请指教这是怎么回事?
程序如下
set exact on
select jyxx
set order to 交易编号
go bottom
i=val(alltrim(jyxx.交易编号))
if i<9 and i>1
i=i+1
k='00000'+str(i,1)
else
if i<99
i=i+1
k='0000'+str(i,2)
else
if i<999
i=i+1
k='000'+str(i,3)
else
if i<9999
i=i+1
k='00'+str(i,4)
else
if i<99999
i=i+1
k='0'+str(i,5)
else
if i<999999
i=i+1
k=str(i,6)
else
k='000001'
endif
endif
endif
endif
endif
endif
thisform.交易编号.value=alltrim(k)
搜索更多相关主题的帖子: 自动 记录 set jyxx 交易 
2006-06-10 13:47
dong1728
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-6-7
收藏
得分:0 
把第一个的i&gt;1去掉就可以了
2006-06-10 16:08
dong1728
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-6-7
收藏
得分:0 
把第一个的and i&gt;1去掉就可以了
2006-06-10 16:08
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 

if i<9 and i>1
改为
if i<=9 and i>=1

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2006-06-10 17:12
wzxc
Rank: 9Rank: 9Rank: 9
来 自:齐鲁大地
等 级:贵宾
威 望:39
帖 子:985
专家分:1296
注 册:2006-4-25
收藏
得分:0 
set exact on
select jyxx
set order to 交易编号
go bottom
if reccount()=0
k='000001'
else
i=val(alltrim(jyxx.交易编号))
i=i+1
k=right('000000'-str(i),6)
endif

认真看书学习,弄通Fox主义。
2006-06-10 19:34
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
SELECT JYXX
CALCULATE MAX(VAL(交易编号)) TO I
K=CHRTRAN(STR(I+1,6)," ","0")
THISFORM.交易编号.VALUE=K

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2006-06-10 21:05
wzxc
Rank: 9Rank: 9Rank: 9
来 自:齐鲁大地
等 级:贵宾
威 望:39
帖 子:985
专家分:1296
注 册:2006-4-25
收藏
得分:0 
终究是老虎,厉害,两行搞定.
以前学的全是繁琐哲学.太笨了.
看你的贴子,就是开思路.
我的软件就按这样改进了,谢谢了.
先祝贺你了.

[此贴子已经被作者于2006-6-10 21:27:57编辑过]


认真看书学习,弄通Fox主义。
2006-06-10 21:26
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
我是这样想的:
(1)有时候,人家辛辛苦苦做好了程序,其实仅仅是一点点的小错误,把它改正即可,那可是人家的辛苦得来的.因此,我在4楼更正楼主的小失误.
(2)进一步,假如还需要代码更少,或者效率更高的代码,则只得帮人家改写程序了.所以,我在6楼用了更短的代码实现.
谢谢wzxc!大家相互学习.

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2006-06-10 21:34
fp2001
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-5-26
收藏
得分:0 

没用啊,依然是0000 1,而且编号一直是0000 1,不会住上加,也就是说表里的记录只有一个一样的编号0000 1
确实搞不懂,请教

2006-06-11 00:03
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
要增加记录的话,必须使用类似APPEND BLANK命令
CALCULATE MAX(VAL(编号)) TO I
K=CHRTRAN(STR(I+1,6)," ","0")
APPEND BLANK
REPLACE 编号 WITH K

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2006-06-11 00:18
快速回复:记录编号自动生成的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017910 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved