Page 1 sur 2

Mise à jour champ calculé

MessagePublié: 28 Mars 2011 à 14:44
par gadcho
Bonjour,

J'ai un champ calculé qui calcule l'âge d'une personne dans un masque.
J'affiche cet âge dans une vue.
Le problème c'est que l'âge ne se met pas à jour automatiquement, il faut ouvrir le doc et l'enregistrer pour qu'il se mette à jour.

Comment dois je faire pour que cela se fasse automatiquement sans ouvrir tous les docs ?

Merci.

MessagePublié: 28 Mars 2011 à 14:49
par Michael DELIQUE
salut

4 possibilités :

- un agent en formule qui rafraichis tous les champs (1 à 2 ligne)
- un agent en LS qui fait computewithform (ça bouffe en ressource)
- un agent en LS qui recaclul l'age et met a jours le champ
- un agent en formule qui recaclul l'age et met a jours le champ

MessagePublié: 28 Mars 2011 à 14:52
par gadcho
Je veux bien l'agent en formule qui rafraichit les champs.

MessagePublié: 28 Mars 2011 à 14:54
par Michael DELIQUE
re

un agent qui tourne sur les doc sélectionné avec en formule

@Command([ToolsRefreshAllDocs]);

MessagePublié: 28 Mars 2011 à 16:02
par gadcho
Je ne comprends pas, l'agent s'exécute mais les champs ne se mettent pas à jour.

MessagePublié: 28 Mars 2011 à 16:12
par Michael DELIQUE
sinon essais

@Command( [ViewRefreshFields] )
@Command( [RefreshHideFormulas] )

MessagePublié: 28 Mars 2011 à 16:23
par gadcho
non c'est pareil ça ne fonctionne pas

MessagePublié: 28 Mars 2011 à 16:29
par Michael DELIQUE
désolé, maisla comme ça je peut pas plus

MessagePublié: 28 Mars 2011 à 16:32
par Michael DELIQUE
question :

ton champ il est renseigné comment ?

MessagePublié: 28 Mars 2011 à 16:40
par gadcho
Champ calculé avec :

@If(DateNaisE_1 !="";@Year(@Today) - @Year(DateNaisE_1);Null)

MessagePublié: 09 Avr 2011 à 22:53
par roubech
gadcho a écrit:Je ne comprends pas, l'agent s'exécute mais les champs ne se mettent pas à jour.

commentt lances-tu l'agent ? un bouton d'action dans la vue ?
quels sont ses paramètres ? traiter les docs sélectionnés ?

Et comme l'a dit Michael, le computewithform ou le tools refreshselecteddoc sont couteux, donc préferer un agent qui met à jour juste le champ qui nécessite une maj

FIELD Age := @If(DateNaisE_1 !=""; @Year(@Today) - @Year(DateNaisE_1); 0)

MessagePublié: 11 Avr 2011 à 10:20
par gadcho
C'est un agent planifié sur tous les documents.
Est ce qu'il vaut mieux que je mette ma formule dans l'agent plutôt que dans le champ calculé ?

MessagePublié: 11 Avr 2011 à 20:33
par roubech
ca dépend de ce que tu veux
si tu veux afficher l'age dans une vue ou faire une recherche sur l'age ... il faut stocker l'age dans le doc et dans ce cas mieux vaut l'agent quotidien pour mettre à jour l'age dans les docs
si tu veux juste afficher l'age au moment ou l'utilisateur consulte un doc, le champ calculé à l'affichage suffit

MessagePublié: 12 Avr 2011 à 07:56
par gadcho
je veux l'afficher dans une vue et c'est pour cela que je veux que ça se recalcule tous les jours mais ça ne fonctionne pas si je mets un champ calculé

MessagePublié: 12 Avr 2011 à 13:45
par roubech
si tu utilises un champ calculé, il faut que quelqu'un ouvre le doc en édition et l'enregistre pour que la formule soit évalué et le résultat enregistré
sinon, l'agent avec le computeWithForm qui recalcule tous les champs, mais c'est couteux. Mieux vaut le petit agent avec la formule pour calculer ce champ précis