在注册表或者在数据库中登记上次的号码。
如上次号码为:NO:= '200203260001'
if FormatDateTime('YYYYMMDD',Now) = Copy(NO,1,8) then
号码 := FormatDateTime('YYYYMMDD',Now)+FormatFloat('000',StrToInt(Copy(NO,9,3))+1)
else
号码 := FormatDateTime('YYYYMMDD',Now)+'001';
如上次号码为:NO:= '200203260001'
if FormatDateTime('YYYYMMDD',Now) = Copy(NO,1,8) then
号码 := FormatDateTime('YYYYMMDD',Now)+FormatFloat('000',StrToInt(Copy(NO,9,3))+1)
else
号码 := FormatDateTime('YYYYMMDD',Now)+'001';
begin
Result := -1;
with TStringList.Create do try
if FileExists(mFileName) then
LoadFromFile(mFileName);
Result := StrToIntDef(Values[mKeyName], 0) + 1;
Values[mKeyName] := IntToStr(Result);
SaveToFile(mFileName);
finally
Free;
end;
end;Caption := FormatDateTime('yyyymmdd', Date) + Format('%.3d', [GetFileIndex('c:\temp.txt', '开票单据')]);
QUERY1.sql.Clear;
QUERY1.SQL.Text:='SELECT upper(ref) ref from GLTRANS_D where
upper(substr(ref,1,8))='+''''+'JL'+DATETOSTR(DATE)+''''
where upper(substr(ref,1,8))='+''''+'JL'+DATETOSTR(DATE)+'''';
query1.open;
if query1.RecordCount<>0 then
begin
query1.Last;
case 6-length(inttostr(strtoint(copy(query1.fieldbyname('ref').asstring,9,6))+1)) of
0:s:='';
1:s:='0';
2:s:='00';
3:s:='000';
4:s:='0000';
5:s:='00000';
end;
navgt.DataSource.DataSet.FieldByName('REF').ASSTRING:=copy(query1.fieldbyname('ref').asstring,1,8)+s+
inttostr(strtoint(copy(query1.fieldbyname('ref').asstring,9,6))+1);
end
else navgt.DataSource.DataSet.FieldByName('REF').ASSTRING:='JL'+DATETOSTR(DATE)+'000001';
(1) DT:=formatdatetime('yyyymmdd',mow)
(2) QUERY1.SQL.ADD('SELECT FPHM FROM 表名 WHERE FPHM="'DT%'"')
IF QUERY1.RECORDCOUNT>0 THEN
begin
QUERY1.SQL.ADD('SELECT MAX(FPHM) AS FPHM FROM 表名 WHERE FPHM="'DT%'"');
fphm:=inttostr(strtoin(query1.fieldbyname('FPHM').AsString)+1)
end
else
begin
fphm:=dt+'001';
end;
,,将值给一个字符串,再用INI文件记录数据,将字符串顺序加1
最后合并字符串,打印.....