PROCEDURE GetNumCommande(pNumero, pNumEnr)
sNumero est une chaine
sLettre est une chaine
//On lit le dernier enregistrement du fichier
HLitDernier(COMMANDES_FOURNISSEURS,NUMCOMMANDE)
//On bloque le dernier enregistrement
SI
//On Bloque l'enregistrement pour etre le seul a avoir ce numero
HBloqueNumEnr(COMMANDES_FOURNISSEURS,hNumEnrEnCours,hBlocageLectureEcriture) ALORS
//On récupère le dernier N° de commande enregistré
sNumero = COMMANDES_FOURNISSEURS.NUMCOMMANDE
//On récupère l'année en cours moins 2003
sLettre = (val(DateSys()[[ à 4]]) - 2003)
//On repart a 0 si on change de lettre
Si sLettre <> sNumero[[1]] Alors sNumero = 0
//On récupère la lettre en commencant avec un A pour 2003, B pour 2004 etc... jusqu'a Z (26 ans)
sLettre = Caract(val(sLettre)+65)
//On ajoute lettre et 36
sNumero = sLettre + "36" +
// on ajoute +1 au dernier numéro de commande
NumeriqueVersChaine(Val(sNumero[[4 A ]])+1,"03d")
FIN
//On met les variable a jours
pNumero = sNumero
pNumEnr = hNumEnrEnCours
sNumCDE est une chaine
nNumEnr est un entier sur 8 octets
GetNumCommande(sNumCDE,nNumEnr)
COMMANDES_FOURNISSEURS = sNumCDE
HAjoute(COMMANDES_FOURNISSEURS)
HDebloqueNumEnr(nNumEnr)
//Les autres utilisateurs peuvent récupérer un nouveau numéro
Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=12&topic_id=1631&post_id=6747