请问一下我有一个客户订单窗体,当我添加资料时,订单编号是:日期(090506)+001....这样编下去,现在问题出来了,当我每次关闭时还要判断编号是否重复,并且我每次单击新增时编号是自动产生.
解决方案 »
- 怎样打包windows mediaplayer9 系列
- 菜鸟一个, 怎么用代码连接有密码的mdb数据库
- 关于stringgrid打印问题
- 子窗口的问题
- 有谁知道2003年清华大学计算机系硕士招生考试专业课是什么?
- 声明:我发现我给自己加过一次分 但那纯属误操作(今天看了老鱼同志的帖子才注意到) 特向各位道歉 希望斑竹能把分给扣掉 证据:http://www.csdn.net/expert/topic/386/386512.shtm
- 如何发送手记短消息?
- 我点击删除按钮后,系统用英文提示,我该如何用自己的程序改为中文。拜托大虾
- 怎样把一文本文件文件导入到一个表中?
- 要给继承自TScrollingWinControl的组件增加Borderstyle属性,怎么增加?
- Delphi中查询excel数据内容遇到问题,请帮忙解答
- 有没有delphi转c++的软件
DATETIME
随便你怎么生成啊
{------获取最大编号------}
function GetMaxNum: string;
var
tmpstr: string;
qdx: TADOQuery;
count: Integer;
begin
//格式为:DX080505-001
qdx := TADOQuery.Create(nil);
qdx.Connection := DataModuleForm.ADOConnLVDX;
try
tmpstr := LSzh + RegulateDate(Now);
qdx.Close;
qdx.SQL.Text := 'select count(*) as sum from TbDataNum where xnum like ''' + tmpstr + '%''';
qdx.Open;
count := qdx.FieldValues['sum'];
if count = 0 then
Result := tmpstr + '-001'
else
begin
count := count + 1;
case Length(IntToStr(count)) of
1: Result := tmpstr + '-00' + IntToStr(count);
2: Result := tmpstr + '-0' + IntToStr(count);
3: Result := tmpstr + '-' + IntToStr(count);
end;
end;
except
on EOleException do DBConnFlag:=False;
end;
qdx.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
begin
s:=formatdatetime('yyyymmddhhmmss',now);
showmessage(s);
end;
function GetMaxNum: string;
var
tmpstr: string;
qdx: TADOQuery;
count: Integer;
begin
//格式为:DX080505-001
qdx := TADOQuery.Create(nil);
qdx.Connection := DataModuleForm.ADOConnLVDX;
try
tmpstr := LSzh + RegulateDate(Now);
qdx.Close;
qdx.SQL.Text := 'select count(*) as sum from TbDataNum where xnum like ''' + tmpstr + '%''';
qdx.Open;
count := qdx.FieldValues['sum'];
if count = 0 then
Result := tmpstr + '-001'
else
begin
count := count + 1;
case Length(IntToStr(count)) of
1: Result := tmpstr + '-00' + IntToStr(count);
2: Result := tmpstr + '-0' + IntToStr(count);
3: Result := tmpstr + '-' + IntToStr(count);
end;
end;
except
on EOleException do DBConnFlag:=False;
end;
qdx.Free;
end;
还要注意你的编号生成时加一个判断比如:
function getNewNum:string;
begin
//为了适应你的程序开着过夜,第二天继续运行,需要重新排号
if curDay <> date() then
begin
curDay := date();
curNum := 1;
end
else
Inc(curNum);
// 在下边根据你需要的格式和位数返回你需要的编号
end;
全局变量 curNum:integer; //当前最新编号
curDay:TdateTime; //今天的时间
procedure getNum; //加载最新号码
var
tmpNum:Tstringlist;
begin
tmpNum := Tstringlist.create;
tmpNum.LoadFromFile(ExtractFilePath(Applicaiton.exename)+'curNum.ini');
if strtodate(tmpNum[0])<>date() then
curNum := 1
else
curNum := Inc(strtoint(tmpNum[1]);
curDay := Date();
tmpNum.free;
end; procedure setNum; //设置最新号码
var
tmpNum:TstringList;
begin
tmpNum := Tstringlist.create;
tmpNum.Add(datetostr(date());
tmpNum.Add(inttostr(curNum));
tmpNum.saveAsFile(ExtractFilePath(Application.exename)+'curNum.ini');
tmpNum.Free;
end;