Message de rapport:
 

Re: NUMERO AUTO

Sujet: Re: NUMERO AUTO
par drcharly93 sur 4/1/2005 15:03:22

Bonjour,

Ceci n'est pas automatique en WinDev avec un format de donnée AlphaNumerique.

Manuellement cela est tout a fait faisable.

On utilise un fichier qui va stocker cette valeur dans une rubrique

Exemple :
Fichier : Config
[Rubriques]
Variable, type chaine, longueur 15, indexé unique
Valeur, Type Chaine, longueur a déterminer selon besoin, non indexé

Dans mon fichier Config je créer un enregistrement:
Variable = NumeroAuto
Valeur = B36001

Dans mon programme a chaque fois que j'ai besoin d'avoir un nouveau Numero Auto
sNumero est un entier
HLitRecherche(Config,Variable,"NumeroAuto")
sNumero = Config.Valeur
//Ici on créer une procédure qui va incrémenter le numéro
//ex :sNumero = "B" + (Val(sNumero[[ 2 A ]])+1)
Config.Valeur = sNumero
HModifie(Config)

sNumero contient le numéro incrementé.

Ceci est un code sommaire, il est nécessaire de prévoir un blocage entre le moment ou on lit le numéro et celui ou on enregistre le nouveau NumeroAuto.

Il peut être aussi nécessaire de prévoir une transaction pour que le numéro ne s'incrémente innutilement si l'enregistrement voulu ne s'est pas effectué correctement.

Plus simplement on peut aussi conserver un numéro ato classique dans le fichier puis créer un NumeroAuto personnalisé.

Une simple recherche de type HLitDernier(,) permet de récuperer le plus grand numéro auto personnalisé puis de recalculer le nouveau numéro et d'effectuer l'enregistrement des données.

Penser toujour à effectuer un blocage du fichier afin d'éviter que deux poste fasse la même demande et enregistre deux enregistrements avec le même NumeroAuto personnalisé.

Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2