|
Postada em 11/06/2008 01:13 hs
Tenho um sistema que gera um código automaticamente, pega o último registro e soma mais 1. O problema é que na virada do ano este campo tem que iniciar do 1 novamente, sem apagar os registros anteriores. Tem como fazer isto, quando o micro identificar que é dia 1º de janeiro retornar ao número 1 e o seguinte 1+1.
|
|
|
|
CSRocha
|
BRASILIA DF - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 11/06/2008 08:39 hs
Cheque a data antes de gravar. Se for > 31/12/yyyy você zera. (yyyy será o ano anterior)
Mas aí é bom ter um controle do ano nesse campo, algo como 1-2008, 2-2008, etc. E nesse caso o campo teria que passar para texto.
|
TÓPICO EDITADO
|
|
|
|
Maxcim
|
GUARULHOS SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 11/06/2008 09:56 hs
faz um select bucando o ano year(seucampodata) =2008 select max(seuID) as ULTID from sua tabela where year(seucampodata) =2008
|
|
|
|
Postada em 11/06/2008 12:52 hs
CSrocha e Maxcim, uso o seguinte código para gerar um protocolo: Rst.MoveMax LblCodi.Text = Rst!codicont txtCodCont.Text = Rst!codicont LblCodi.Text = LblCodi + 1 Vamos imaginar que no dia 3 de janeiro o usuário volte a trabalhar, ao inserir um novo registro, faz uma comparação de data, eu fiz aqui com o mês, sendo mes 1 then o campo recebe 1. O problema vem depois, o registro seguinte deveria ser 1+1, como o mês um são 31 dias, toda vez que for inserir um novo registro neste mes, aparecerá o numero 1. Preciso que ao começar um novo ano, o sistema detecte esta diferença, inicie novamente a contagem e o código seguinte seja o último mais 1.
|
|
|
Donkey
|
PRESIDENTE PRUDENTE SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 11/06/2008 12:54 hs
rapaz... esse tipo de numeração é confusa demais, tipo, dai vai ter 1, o 11 (que seria o 1 + 1 do segundo ano, + não confundiria com o numero 11 do primeiro ano mesmo?)
Se tiver que ser assim, eu aconselho a gravar o numero + o ano correspondente, tipo: 12008 22008 32008
Depois, no ano seguinte: 12009 22009 Assim saberia só de bater o olho a qual ano pertence. E nunca se repetiria.
T+
|
|
|
|
Postada em 11/06/2008 16:18 hs
Donkey, a númeração gerada é crescente e segue esse padrão que é determinado pela empresa. A pessoa dá entrada em um documento, esse documento recebe um número de protocolo que é eeste número crescente, ou seja, entrou um doc recebe o protocolo , por exemplo, 230, entrou outro doc recebe o protocolo 231. O problema é que com o novo ano, o protocolo deveria iniciar do 1. Para controle temos um campo data ou seja protocolo 231 do ano de 2008 por exemplo. O que eu não sei é se tem como codificar esta sistematica. É muito diria jegue no final do ano fazer uma cópia do bd e a outra zerar os arquivos para começar do 1. Não posso colocar como você sugeriu 12008, 2008 porque implica em mudança do padrão da empresa. Aguardo outra sugestão
|
|
|
|