Concaténation
Bruno83200_6929 Messages postés 625 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je fais du sur place avec ce code
sNumdoc est une chaîne
sNumdoc="CERTV" + DateDuJour()
nMafinId est un entier
HLitDernier(sNumdoc,LIB_IDperso2)
SI Gauche(Presence.IDperso,13)= sNumdoc ALORS
nMafinId=Taille(Presence.IDperso)-13
nMafinId= Droite(Presence.IDperso,nMafinId)
nMafinId+=1
Presence.IDperso=sNumdoc+nMafinId
SINON
Presence.IDperso=sNumdoc+1
FIN
Ça me renvoi ceci
Help me, merci
1 réponse
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