Concaténation
Bruno83200_6929 Messages postés 282 Date d'inscription jeudi 18 juin 2020 Statut Membre Dernière intervention 23 octobre 2024 - 6 sept. 2024 à 08:26
1 réponse
6 sept. 2024 à 08:26
Bonjour,
Personnellement, je choisirai d'autres arguments pour arriver à ton but :
DateVersChaine : J'utilise DateVersChaine pour formater la date en YYYYMMDD. Si tu veux un autre format, modifie ce paramètre.
Longueur de sNumdoc : J'utilise Longueur(sNumdoc) pour être sûr que la comparaison avec Gauche prend bien le nombre exact de caractères.
Conversion en entier : Après avoir extrait la partie numérique avec Droite, je l'ai convertie en entier avant l'incrémentation.
Concaténation avec un entier : Lors de la concaténation avec sNumdoc, j'ai veillé à ce que la partie numérique soit bien sous forme de chaîne de caractères.
Ce qui donnerait quelque chose comme :
sNumdoc est une chaîne
sNumdoc = "CERTV" + DateVersChaine(DateDuJour(), "YYYYMMDD") // Utilisation de la date formatée
nMafinId est un entier
HLitDernier(sNumdoc, LIB_IDperso2)
// Vérifie si les 13 premiers caractères de IDperso correspondent à sNumdoc
SI Gauche(Presence.IDperso, Longueur(sNumdoc)) = sNumdoc ALORS
// Calcul du nombre de caractères restants après le préfixe
nMafinId = Taille(Presence.IDperso) - Longueur(sNumdoc)
// Extraction de la partie numérique et conversion en entier
nMafinId = Entier(Droite(Presence.IDperso, nMafinId))
nMafinId += 1 // Incrémentation de l'ID
// Construction du nouvel IDperso
Presence.IDperso = sNumdoc + nMafinId
SINON
// Premier numéro généré
Presence.IDperso = sNumdoc + "1"
FIN