Jump to content
  • 0

Oplopend nummer per kalenderjaar


martindes

Question

Posted

Beste FM experts.

Is er een methode om ieder jaar automatisch een nieuw volgnummer te berekenen in combinatie met een kalenderjaar.

Bijvoorbeeld

Voor kalenderjaar 2017, 2017_00001, 2017_00002
Voor kalenderjaar 2018, 2018_00001, 2018_00002

Zodat je voor ieder jaar kunt zien in dat recordID hoeveel records je hebt en wat de oplopende nummers zijn.

Bij voorbaat dank voor de antwoorden.

4 answers to this question

Recommended Posts

  • 0
Posted

Je kan werken met een calculatieveld, met daarin de combinatie van jaar (aanmaakdatum) en een gewoon volgnummer. Je kan deze baseren op een gewoon veld met volgwaarde, of gecalculeerd uit een self-joined tabel op basis van jaar ( max (volgnummer) + 1). 

Nadeel van al te veel gecalculeer bij aanmaak van volgnummers is het risico op duplicaten als er meerdere gebruikers zijn, - heb ik wel eens ondervonden.

Een andere (en snellere)  oplossing is gewoon de volgwaarde-functie gebruiken.

Voer de eerstvolgende waarde conform jouw gewenste format: 2017_00002, te verhogen met 1.

Maak vervolgens een scriptje dat checkt of er een jaarwisseling heeft plaatsgevonden, getriggered bij openen van het bestand, en dan de volgwaarde voor het nieuwe jaar op 1 zet.

  • 0
Posted

Vind ik een mooie oplossing, Marsau. Ik heb even een voorbeeldfiletje gemaakt.

Hier is het opstartscript:

Set Variable [ $volgendSerieelNummer ; Value: GetNextSerialValue ( Get ( FileName ) ; GetFieldName ( tabel::primary key ) ) ] 
Set Variable [ $jaar ; Value: GetAsNumber ( GetValue ( Substitute ( $volgendSerieelNummer ; "_" ; ¶ ) ; 1 ) ) ] 
If [ $jaar < Year ( Get ( CurrentDate ) ) ] 
	Show Custom Dialog [ "Jaarwisseling" ; "We zijn in een nieuw jaar beland. Wil je de nummering resetten naar " & Year ( Get ( CurrentDate )…" ] 
	If [ Get ( LastMessageChoice ) = 1 ] 
		Set Next Serial Value [ tabel::primary key ; Year ( Get ( CurrentDate ) ) & "_00001" ] 
	End If
End If

 

Jaarwisseling.fmp12

  • 0
Posted (edited)

Ik heb een globaal veld dat bij aanmaak van een nieuw record verhoogd wordt per 1.

Bij het begin van een kalenderjaar reset ik dit veld manueel (script geactiveerd door een button).  Het zoekt dan even op wat het nieuwe kalenderjaar is en zet de teller op 0.  Bijvoorbeeld 20180000.

Dit geeft me het voordeel om in de eerste week van een nieuw jaar toch nog de laatste facturen van het vorige jaar aan te maken en te verzenden.

In bijlage het script.  Je kan eventueel nog een custom dialogbox invoegen om je te verwittigen of je zeker wil resetten, zoals Peter hierboven aanhaald.

 

 

Screen Shot 2018-04-08 at 21.53.35.png

Edited by idmix.be
  • 0
Posted
14 uur geleden zei idmix.be:

Ik heb een globaal veld dat bij aanmaak van een nieuw record verhoogd wordt per 1.

Bij het begin van een kalenderjaar reset ik dit veld manueel (script geactiveerd door een button).  Het zoekt dan even op wat het nieuwe kalenderjaar is en zet de teller op 0.  Bijvoorbeeld 20180000.

Dit geeft me het voordeel om in de eerste week van een nieuw jaar toch nog de laatste facturen van het vorige jaar aan te maken en te verzenden.

In bijlage het script.  Je kan eventueel nog een custom dialogbox invoegen om je te verwittigen of je zeker wil resetten, zoals Peter hierboven aanhaald.

 

 

Screen Shot 2018-04-08 at 21.53.35.png

Ik denk dat het gebruik van een globaal niet gaat werken in een multi-user of netwerk-setting. Om de simpele reden dat de inhoud wordt gewist of gereset naar een initiële waarde (opgeslagen in de stand-alone versie voordat het bestand werd gehost). Of mis ik iets?

Ik snap het voordeel van een niet geheel geautomatiseerde reset, zodat je nog wat facturen van het vorige jaar kan verwerken. Peter heeft hiermee in zijn scriptje rekening gehouden, zie ik. Je kan je wel afvragen of het boekhoudkundig zuiver is: ik bedoel het post-dateren van facturen. Maar dat terzijde.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...