Auto incremento por data
Boa noite
Estou condificando um programa de atendimento, onde preciso que tenha na campo NumGuia, tenha um autoinclemento pora data, ou seja, cada dia iniciar com o numero 1 e dai por diante incrementar em +1;
Ex: dia 02/03/2011.
NumGuia inicia em:
01
02
03
04
05...
dia 03/03/2011.
NumGuia.
01
02
03
04
05
06
07
08...
agradeço a todos que poderem ajudar. Obrigado.
Estou condificando um programa de atendimento, onde preciso que tenha na campo NumGuia, tenha um autoinclemento pora data, ou seja, cada dia iniciar com o numero 1 e dai por diante incrementar em +1;
Ex: dia 02/03/2011.
NumGuia inicia em:
01
02
03
04
05...
dia 03/03/2011.
NumGuia.
01
02
03
04
05
06
07
08...
agradeço a todos que poderem ajudar. Obrigado.
Joaci Queiroz
Curtidas 0
Respostas
Marco Salles
03/03/2011
Boa noite
Estou condificando um programa de atendimento, onde preciso que tenha na campo NumGuia, tenha um autoinclemento pora data, ou seja, cada dia iniciar com o numero 1 e dai por diante incrementar em +1;
Ex: dia 02/03/2011.
NumGuia inicia em:
01
02
03
04
05...
dia 03/03/2011.
NumGuia.
01
02
03
04
05
06
07
08...
agradeço a todos que poderem ajudar. Obrigado.
Não esta dando para ver diferença
NumGuia inicia em: 02/03/2011 e
NumGuia inicia em: 03/03/2011.Estou condificando um programa de atendimento, onde preciso que tenha na campo NumGuia, tenha um autoinclemento pora data, ou seja, cada dia iniciar com o numero 1 e dai por diante incrementar em +1;
Ex: dia 02/03/2011.
NumGuia inicia em:
01
02
03
04
05...
dia 03/03/2011.
NumGuia.
01
02
03
04
05
06
07
08...
agradeço a todos que poderem ajudar. Obrigado.
GOSTEI 0
Joaci Queiroz
03/03/2011
A cada novo dia o numguia tem que iniciar com o numero 1 e seguir inclementando em mais , isso porque tenho um campo id que segue autoinclemento.
id numguia data
01 01 02/03/2011
02 02 02/03/2011
03 03 02/03/2011
04 01 03/03/2011
05 02 03/03/2011
06 03 03/03/2011
07 04 03/03/2011
...
id numguia data
01 01 02/03/2011
02 02 02/03/2011
03 03 02/03/2011
04 01 03/03/2011
05 02 03/03/2011
06 03 03/03/2011
07 04 03/03/2011
...
GOSTEI 0
Marco Salles
03/03/2011
Seria isto ????
procedure Desfragemntar(Data:Tdate);
var
DataIni:Tdate;
numguia:integer;
begin
DataIni:=StartOfTheMonth(Data);
numguia:=0;
while CompareDateTime(DataIni,IncDay(Data,2)) < 0 do
begin
Inc(numguia);
showmessage('numguia = '+inttostr(numguia));
DataIni:=IncDay(DataIni);
end;
end;
GOSTEI 0
Emerson Nascimento
03/03/2011
creio que a melhor forma seja, ao gravar, você verificar o dia corrente.
algo assim (como você não diz qual banco de dados nem qualquer outra informação relevante, vou assumir o incremento por SQL):
if query.active then query.close;
query.sql := "SELECT COALESCE(MAX(NUMGUIA),'00') ULTGUIA FROM ATENDIMENTO WHERE DATA = :_DATAATUAL "
query.parambyname('_dataatual').asdate := sysutils.date;
query.open;
novaguia := query.fields[0].asinteger + 1;
query.close;
queryatendimento.fieldbyname('NumGuia').AsString := FormatFloat('00', novaguia);
algo assim (como você não diz qual banco de dados nem qualquer outra informação relevante, vou assumir o incremento por SQL):
if query.active then query.close;
query.sql := "SELECT COALESCE(MAX(NUMGUIA),'00') ULTGUIA FROM ATENDIMENTO WHERE DATA = :_DATAATUAL "
query.parambyname('_dataatual').asdate := sysutils.date;
query.open;
novaguia := query.fields[0].asinteger + 1;
query.close;
queryatendimento.fieldbyname('NumGuia').AsString := FormatFloat('00', novaguia);
GOSTEI 0
Marco Salles
03/03/2011
Depende muito da arquitetura ... Se ele estiver em memoria ou desconectado ???
Uma solução é deixar o servidor as tarefas mais complicadas ( gosto tb dessa linhagem ), mas vejo com bons
olhos tb o uso do clientDataSet , e commitar no fim do processo . Depende da real necessidade
O Mais importante no momento é entender o que ele de fato necessita ????
GOSTEI 0