抢分啦,10分钟问题。(100分)

  • 主题发起人 主题发起人 chase dream
  • 开始时间 开始时间
C

chase dream

Unregistered / Unconfirmed
GUEST, unregistred user!
一张入单号我想让它有如下样式 DH20010816001 我这样做的
dh.text:='DH'+FORMATDATETIME('YY',DATE)+FORMATDATETIME('MM',DATE)+FORMATDATETIME('
DD',DATE)+INTTOSTR(A+1) A为一变量,可得出的是DH200108161不是我的要求DH20010816001
当A为54时为DH20010816054
 
您要判断A变量是否达到你要求的长度,

应该是这样
var
S:stirng
begin
S:=inttostr(A+!);
if length(S)<3 then
for i:=1 to 3-length(S) do
S:='0'+S;
end;

dh.text:='DH'+FORMATDATETIME('YY',DATE)+FORMATDATETIME('MM',DATE)+FORMATDATETIME('
DD',DATE)+S

试试看这是不是你要的结果?
 
dh.text:='DH'+FORMATDATETIME('YYYY',DATE)
+FORMATDATETIME('MM',DATE)+FORMATDATETIME('DD',DATE)+INTTOSTR(A+1)
 
枫的办法应该解决问题
 
把 INTTOSTR(A+1) 改为:
FORMATED("%D3",INTTOSTR(A+1))
就应该OK了。
 
sorry,刚才写错了应该为:
format("%3d",[A+1])
 
同意wbo的方法,用Format函数简单又方便。
 
dh.text:='DH'+FORMATDATETIME('YYYYMMDD',DATE)+formatfloat('000',A+1)
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=647642
 
wbo写的很对
我以前就是用这个方法
将1格式化成001的
 
format("%3d",[A+1])用此语句时会变成20011028 1 而不会变成我想要的20011028001
枫的方法可以但太繁,不知哪位有最简单的办法
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部