par roubech » 10 Mars 2011 à 01:57
si ton champ Num est calculé à l'affichage, il n'est pas stocké dans le doc et je ne vois pas à quoi il te sert alors ni comment tu peux l'afficher dans ta vue
Perso j'aurai mis "calculé à la création"
tu peux expliquer pourquoi ce test @IsNewDoc & !@IsDocBeingSaved & !@IsDocBeingRecalculated
tel que je le comprend, tu renseignes le champ à l'ouverture du masque et pas à sa sauvegarde. Or le risque dans ce cas, c'est que un user 1 ouvre le masque pour créer un doc, commence à remplir les champs et avant qu'il aui fini de tout remplir, un autre user 2 ouvre le masque. Dans ce cas, les 2 docs auront le même Num. C'est pour ça que perso j'affecte soit une référence unique mais pas séquentielle avec par exemple @Unique ou si j'ai besoin d'un numéro séquetiel, je le recalcule sur le QuerySave (si isNewDoc)
pourquoi tu stocke ton num au format texte, si dans ta vue tu dois le convertir en nombre et dans ton calcul tu dois aussi le convertir en nombre ? (de toutes façon un lookup retournera toujours une chaine de texteet pas un nombre)
c'est quoi ce @TextToNumber(Num)="@ERROR" dans ta vue, alors que dans ton champ tu as bien un @IsError(Tmp)
Est-ce que tu assembles des bouts de codes trouvés de ci de là sans comprendre ?
au passage, ça fait 3 fois que Michael te dit que pour enchainer des actions il faut utiliser @Do et pas + ou &
Pour ce qui est d'avoir un compteur par année, au lieu de faire un @DbColumn dans ta vue triée par Num décroissant
tu pourrais catégoriser ta vue Numfichcom avec un champ année (soit un nouveau champ, soit @Created, soit ton Num est de la forme AAAA-NNNN)
et dans ce cas tu remplaces ton @DbColumn par un @DbLookup pour récupérer la liste des num de l'année courante uniquement @Year(@Today)