Page 1 sur 1

Comment utiliser SelectionFormula

MessagePublié: 17 Mars 2010 à 12:36
par albert.coeffard
Bonjour,
J'ai un agent qui a en charge de synchroniser 2 bases entres elles en excluant les pièces jointes d'un champ. A la fin de cet agent pour ne pas retraiter tous les documents à la fois suivante, j'ai opté pour modifier le Select des vues de référence en appelant les documents modifiés après la date ou a tourner cet agent. La formule view.selectionformula ne change pas celle-ci est ce que j'ai mal compris son utilisation?

MessagePublié: 17 Mars 2010 à 12:41
par Michael DELIQUE
salut

si, mais faut pas mettre le "SELECT" dans ta chaine

MessagePublié: 17 Mars 2010 à 12:49
par albert.coeffard
Même chose sans le Select...

MessagePublié: 17 Mars 2010 à 13:26
par Bidouille
Bonjour,

Et si tu mettais ton SELECT dans l'objet "selection de vue", de celle ci, directement en @formule

MessagePublié: 17 Mars 2010 à 13:54
par albert.coeffard
Non car dans ce cas là la vue sera toujours vide, je veux que mon agent une fois ayant fini de tourner change la valeur du Select pour mettre la nouvelle date de référence exemple
SELECT (Form = "Picture")& variable1 !="" & Archive !="1" & (@Modified >"17/03/2010 08:00:00")
La valeur "17/03/2010 08:00:00" devient une variable correspondant à la date où l'agent a tourné pour la dernière fois, et évalué avec la fonction Now

MessagePublié: 17 Mars 2010 à 13:56
par Michael DELIQUE
ben oui les vue utilisant la date dans le select sont monstrueusement gourmande en ressource pour l'affichage

par contre tu n'as pas un message d'erreur ?

MessagePublié: 17 Mars 2010 à 14:20
par albert.coeffard
Non aucune erreur et au débogueur la propriété SelectionFormula de view ne varie pas d'un iota. Michael, quand tu dis que les vues utilisant les dates sont monstrueusement gourmandes, c'est pour les valeurs dont le sélect change sans arrêt, je suppose (par exemple un @Now-7) qui afficherait les doc des 7 derniers jours mais comme @Now change tout le temps le serveur est sans arrêt en évaluation, je pense qu'avec mon code je contourne ce pb, puisque la date de comparaison est fixe et les dates de dernières modifications le sont également.

MessagePublié: 17 Mars 2010 à 14:51
par Michael DELIQUE
re, oui c'est tout a fait ça

normalement ton code doit fonctionner

MessagePublié: 17 Mars 2010 à 15:10
par albert.coeffard
J'en suis arrivé à la même conclusion que toi et après avoir consulté ceci
http://www.ibm.com/developerworks/lotus/library/ls-LS_views/index.html#N10087 mais rien à faire, même en désactivant l'interdiction de remplacement de structure. En y regardant de plus prêt j'ai pourtant l'impression que ma formule est mal évaluée car dans le débogueur il ne me l'affiche pas complètement

MessagePublié: 17 Mars 2010 à 15:12
par Michael DELIQUE
le débogeur peut tronquer les chaine de texte a l'affichage

mais si tu fais un msgbox de ton string tu dois tout voire

MessagePublié: 17 Mars 2010 à 15:14
par Michael DELIQUE
passe par une variable texte intermédiaire on sait jamais

MessagePublié: 17 Mars 2010 à 15:38
par albert.coeffard
Bingo c'était ça et merci ! , j'ai également corrigé les caractères de construction de la formule en m'alignant sur la syntaxe de l'exemple IBM apparemment les | passent mieux que les { ce qui donne au final:

Code : Tout sélectionner
formula = |Select Form = "Picture" & variable1 !="" & Archive !="1" & (@Modified >"|& (Now) &|")|
   view.SelectionFormula=formula
   view1.SelectionFormula=formula

'au lieu de

   'view.SelectionFormula = {Select (Form = "Picture" & variable1 !="" & Archive !="1" & (@Modified >"}& (Now) &{")}
   'view1.SelectionFormula = {Select (Form = "Picture" & variable1 !="" & Archive !="1" & (@Modified >"}& (Now) &{")}

MessagePublié: 17 Mars 2010 à 15:44
par Michael DELIQUE
normalement les balises de texte ne changes riens, mais dans certain cas ça fonctionne mieux quand on passe une variable string (comme avec les evaluate)