| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2069 人关注过本帖
标题:关于自动编号的问题?
只看楼主 加入收藏
caolp
Rank: 1
等 级:新手上路
帖 子:160
专家分:5
注 册:2014-7-12
结帖率:92.31%
收藏
已结贴  问题点数:20 回复次数:28 
关于自动编号的问题?
请教老师一个问题,我想在每输入居民一条信息时,序号(XH)会自动增加1,序号(XH)设5位,我用下面的一段代码,每条记录序号(XH)的结果始终都是01000,请老师帮我分析一下。
IF EMPTY(序号)
SELECT MAX(序号) FROM 居民信息 INTO ARRA A
CEND=VAL(SUBSTR(A(1),1))+1
XH=ALLT(PADL(ALLT(STR(CEND,5)),5,'0'))
endif
repl 序号 with XH
搜索更多相关主题的帖子: 记录 信息 
2014-08-09 16:40
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:5 
试试:
IF EMPTY(序号)
    SELECT MAX(序号) FROM 居民信息 INTO ARRA A
    CEND=VAL(A)+1
    XH=PADL(ALLT(STR(CEND)),5,'0')
endif
repl 序号 with XH

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2014-08-09 17:06
caolp
Rank: 1
等 级:新手上路
帖 子:160
专家分:5
注 册:2014-7-12
收藏
得分:0 
老师,还是不行,运行结果还是01000,是不是和数据类型有关系?我的序号是字符型的。
2014-08-09 17:14
caolp
Rank: 1
等 级:新手上路
帖 子:160
专家分:5
注 册:2014-7-12
收藏
得分:0 
尾数为什么不加1呢?
2014-08-09 17:29
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
回复 3 楼 caolp
测试了下 二楼的没问题
IF EMPTY(序号)
    SELECT MAX(序号) FROM 居民信息 INTO ARRA A
    CEND=VAL(A)+1
endif
repl 序号 with PADL(ALLT(STR(CEND)),5,'0')
2014-08-09 17:34
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
居民信息.rar (1.76 KB)


图片附件: 游客没有浏览图片的权限,请 登录注册
2014-08-09 17:38
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
程序代码:
CLOSE TABLES
USE 居民信息
APPEND BLAN
IF EMPTY(序号)
    SELECT MAX(序号) FROM 居民信息 INTO ARRA A
    CEND=INT(VAL(A)+1)
ENDIF
REPLACE 序号 WITH PADL(CEND,5,'0')
BROWSE


PADL(eExpression, nResultSize [, cPadCharacter])
参数eExpression指定需填充的表达式。除了逻辑表达式、通用字段或图片字段,这个表达式可以是任何类型的表达式。
因此在使用某个函数时,对其中参数的含义要弄明白。

坚守VFP最后的阵地
2014-08-09 19:11
caolp
Rank: 1
等 级:新手上路
帖 子:160
专家分:5
注 册:2014-7-12
收藏
得分:0 
以下是引用sdta在2014-8-9 19:11:04的发言:

CLOSE TABLES
USE 居民信息
APPEND BLAN
IF EMPTY(序号)
    SELECT MAX(序号) FROM 居民信息 INTO ARRA A
    CEND=INT(VAL(A)+1)
ENDIF
REPLACE 序号 WITH PADL(CEND,5,'0')
BROWSE
 
PADL(eExpression, nResultSize [, cPadCharacter])
参数eExpression指定需填充的表达式。除了逻辑表达式、通用字段或图片字段,这个表达式可以是任何类型的表达式。
因此在使用某个函数时,对其中参数的含义要弄明白。
谢谢老师帮忙,按您的方法,还是不行。代码没有错,问题出在那,我还是没有查出来。我把表传上来,麻烦老师帮我看看。
居民信息.rar (9.35 KB)
2014-08-09 20:25
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:5 
回复 8 楼 caolp
一句即可
先把“序号”宽度设为5
UPDATE 居民信息 SET 序号=PADL(ALLT(STR(recno())),5,'0')
2014-08-09 20:42
caolp
Rank: 1
等 级:新手上路
帖 子:160
专家分:5
注 册:2014-7-12
收藏
得分:0 
以下是引用tlliqi在2014-8-9 20:42:01的发言:

一句即可
先把“序号”宽度设为5
UPDATE 居民信息 SET 序号=PADL(ALLT(STR(recno())),5,'0')
谢谢老师,按你的一句话,终于得到解决,再次谢谢!
2014-08-09 20:57
快速回复:关于自动编号的问题?
数据加载中...
 
   



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

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