问一个很简单的流水号问题,代码只有十行,很容易的。 (20分)

  • 主题发起人 主题发起人 kent100
  • 开始时间 开始时间
K

kent100

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure Tfrmaddjh.Button1Click(Sender: TObject);
var
i:integer;
begin
i:=000;
frmscjdjh.ListBox1.Items.add(edit1.text);
table1.open;
table1.append;
table1.fieldbyname('dm').asstring:=copy((_sysyear+_7DDwdm),1,10)+inttostr(i);
table1.fieldbyname('mc').asstring:=edit1.text;
table1.Post;
table1.close;
showmessage('添加计划成功');
frmaddjh.close;
i:=i+1;
end;

我知道我的方法是错误的,因为每次i都被重置为000了,但我不知道如何改,
才能使流水号自动增加。
请各位帮忙看看。
注:i 为一个三位的流水号,最好能控制000-999最好。
 
把i:integer放在窗体的声明中。
不要i:=000;
 
远帆,去掉i:=000
后结果是一样的,
 
要把I的声明放到窗体中。 i:integer;
否则是一个局部变量。每次按都是000
 
var
i:integer;
procedure Tfrmaddjh.Button1Click(Sender: TObject);
begin
frmscjdjh.ListBox1.Items.add(edit1.text);
table1.open;
table1.append;
table1.fieldbyname('dm').asstring:=copy((_sysyear+_7DDwdm),1,10)+inttostr(i);
table1.fieldbyname('mc').asstring:=edit1.text;
table1.Post;
table1.close;
showmessage('添加计划成功');
frmaddjh.close;
i:=i+1;
end;
 
i定义为全局变量,可以在窗体创建时为其赋初始值。
 
楼上的远帆和robinson
我的流水号重复问题已解决,
但是我的流水号是3位的,如果按照你们修改的程序,自动变为1位流水号。
而且,如何控制流水号自动从001开始最大为999呢?
请楼上的兄弟能续解答,谢谢!
 
办法很多,最好理解的办法: 判断i的大小
var ss:string;
...
ss:='';
if i<10 then ss:='00' else if i<100 then ss:='0';
ss:=copy((_sysyear+_7DDwdm),1,10)+ss+inttostr(i);
table1.fieldbyname('dm').asstring:=ss;
 
多人接受答案了。
 
后退
顶部