Bonjour
J’ai une table avec les colonnes Annee_scolaire, Courrier_a_faire (booléen), Ref_Courrier…
Dans la colonne Ref_Courrier, je cherche à créer un numéro de référence de courrier de type C_Annee_scolaire_001 puis C_Annee_scolaire_002 si C_Annee_scolaire_001 existe déjà, etc.
Cette colonne doit se renseigner si la colonne booléenne Courrier_a_faire passe sur True. Je ne trouve pas de moyen de faire ça sur le forum.
Merci d’avance pour votre aide.
Bonjour,
Il faut indiquer la formule suivante dans la colonne Ref_Courrier en adaptant le nom de la table à votre besoin et le nom des colonnes :
if not $Courrier_a_faire:
return None # Rien tant que le booléen n’est pas activé
# On récupère les courriers déjà référencés sur la même année
existants = **NOM_DE_LA_TABLE**.lookupRecords(
Annee_scolaire = $Annee_scolaire,
Courrier_a_faire = True
)
# Numéro suivant = nombre d’occurrences + 1
num = len(existants)
return f"C_{ $Annee_scolaire }_{ str(num).zfill(3) }"
Bonne journée,
Bonjour
Merci pour votre aide.
Effectivement cela permet de créer la référence au bon format, mais elle apparait comme C_Annee_scolaire[4]_014
J’ai donc 2 problèmes :
- Annee_scolaire n’apparait pas correctement. C’est le numéro d’enregistrement qui apparait et non la valeur. Dans ma table cette colonne est de type Référence.
- Les 14 courriers ont la référence 014 à la fin, et ils passent tous en 015 si j’en ajoute 1
Est-il possible de résoudre ces 2 problèmes ?
Merci d’avance pour votre aide.
Pour la partie Annee_scolaire[4] c’est qu’il s’agit d’un champ de type référence (peut-être un choix unique aurait été plus adapté). Dans ce cas mettre $Annee_scolaire.Annee (en considérant que dans votre table des années scolaires vous avez une colonne Année) devrait résoudre le problème.
Je vous conseille de mettre la formule en formule d’initialisation : ainsi le numéro sera calculé à la création et restera fixe. Donc en ajoutant la 16è ligne ça ne touchera pas les 15 autres, et la 16è de l’année aura bien le numéro 16.
Bonjour
Merci Antoine.R. Ca fonctionne.
J’ai résolu un peu différemment pour le premier point, car j’ai crée une colonne doublon pour Annee_scolaire : « =$Annee_scolaire.Annee_scolaire » car c’est la solution que j’ai dû mettre en place pour une insertion dans un publipostage.
Pour le 2e point, j’ai choisi « Formule d’initialisation ». J’ai coché « Appliquer les modifications » et j’ai sélectionné le champ « Courrier_à_faire »
Merci pour votre aide ![]()