Aquí tienes una parte.
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
var
nNumero:Integer;
cNumero:String;
nAn,nMes,Ndia:Word;
begin
DecodeDate(Date,nAn,nMes,nDia);
nNumero:=30;
nNumero:=nNumero+1;
cNumero:=FormatFloat('0000',nNumero)+'/'+IntToStr(nAn);
ShowMessage(cNumero);
end;
Que conste que no voy de acuerdo con este planteamiento, porque es posible que todavía en Enero tengamos que hacer algún apunte del año pasado, pero bueno.
En cuanto al cambio automático de contador, tendríamos que crear en la tabla que controle este suceso, un campo con el ejercicio y otro de tipo boolean con valor True que por ejemplo llamaríamos actualizado, en el año actual tendríamos ejercicio = 2004 y Actualizado = True en el cambio de año pondríamos actualizado = False y el contador = 0, en el cambio de contador a uno pondríamos de nuevo actualizado = True.
Un Saludo.