Jump to content
  • 0

Volgnummer creeren


Bruno

Question

Om orders mooi op elkaar te laten volgen wil ik volgnummers via een script laten opmaken zodat ze altijd op mekaar volgen.

Bij Auto Entry heb je het probleem dat als de laatste wordt gewist het systeem gewoon doornummert.

Wat is de beste methode ?

De nummer moet er als volgt uitzien: ORD-0000001

 

Merciekes

Link to comment

5 answers to this question

Recommended Posts

  • 0

De beste methode is het aanmaken van records en het verwijderen van records te scripten. Dat betekent ook dat je het de gebruikers onmogelijk moet maken om de menu-opties voor het maken en verwijderen van records te gebruiken.

Dit is de enige manier om absolute zekerheid over het volgnummer te verkrijgen.

 

Het volgnummer kun je vervolgens in een global opslaan. Elk nieuw record wat gemaakt wordt, zal via het script het volgnummer eentje ophogen en dat opgehoogde nummer aan het nieuwe record geven.

 

Elk record wat verwijderd wordt, checkt of dit het nummer heeft wat als laatste is gebruikt, en als dat zo is, dan zal het script het volgnummer weer eentje verlagen.

 

-----------------------------------

 

Kun je het veroorloven om iets losser met die zekerheid te zijn, dan is dit een alternatief:

 

Je kunt overwegen om iets te doen met de max-functie.

 

Je moet dan een altijd-werkende-relatie maken met het veld waarin de volgnummers staan. Dan maak je een calculatie-veld genaamd "Max_Volgnummer_c" die over die relatie het hoogste nummer pakt, met de max-functie.

 

Bij het veld Volgnummer zet je de auto-enter van een calculated value aan, met overschrijven. En de formule daar is:

 

Max_Volgnummer_c + 1

 

Voordeel: een nieuw record krijgt altijd het nummer volgend op het hoogst aanwezige nummer

Nadeel: wordt een tussenliggend record verwijderd, dan wordt het tussenliggende nummer niet opgevuld.

 

________________________________________

Edited by Guest
Link to comment
  • 0

Een optie is om het te doen met de max() functie. Hierbij wordt de waarde van een teller bij een neiuw record opgehoogd met max(teller_nummer)+1.

Bij hele grote hoeveelheden records is het echter niet aan te bevelen.

 

Edit: Oeps, Sanne was net iets eerder...

Edited by Guest
Link to comment
  • 0

Ja, maar Burggraaf, je brengt me wel op een idee: het calculatie-veld met de max-formule is niet nodig, want dat kun je inderdaad direct als auto-enter invullen:

 

Max(TO_MaxVolgnummer::Volgnummer) + 1

 

Nadeel: niet aan te bevelen bij grote hoeveelheden records.

Nadeel: er moet een Tabel Occurence voor worden gemaakt in de Relation Graph.

Link to comment
  • 0

Bruno stelt niet dat het met een calculatie moet, hij genereert nieuwe orders via een script.

Alternatief is om een tabel te maken waar je counters bijhoudt.

Bij een nieuw record hoog je die op, bij het wissen verlaag je die counters.

 

Voordelen van deze benadering:

 

1. sneller dan de max() functie voor grote hoeveelheden

2. je kan verschillende counters aanmaken; per jaar (gebaseerd op factuurdatum), per soort (bij facturen: denk aan credit nota nummering die verschillend moet zijn van factuurnummering)

 

Weliswaar moet je elke manuele record creatie en wis ondervangen, dus desactiveer die best in je menu structuur - hopelijk gebruik je de Advanced versie.

Link to comment
  • 0
Om orders mooi op elkaar te laten volgen wil ik volgnummers via een script laten opmaken zodat ze altijd op mekaar volgen.

Bij Auto Entry heb je het probleem dat als de laatste wordt gewist het systeem gewoon doornummert.

Wat is de beste methode ?

De nummer moet er als volgt uitzien: ORD-0000001

 

Uhuuu, waarom geen getal veld met automatisch ingevoerd volgnummer? Waarom via een script?

 

René

Link to comment

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...