Page 1 sur 1

[Resolu]Bloquer l'ouverture d'un document à partir d'une vue

MessagePublié: 17 Sep 2010 à 12:56
par poowie
Bonjour,
je suis entrain de développer une application en LS pour la gestion d'incident, et je me trouve confronté à deux problématiques:
1)Je souhaite savoir dans un premier temps s'il existe une formule qui empêche d'ouvrir un document à partir d'une vue lorsqu'on clique dessus deux fois.( toujours à partir de la vue)
2) J'ai un bouton détail avec le code joint:
Dim workspace As New NotesUIWorkspace
Call workspace.EditDocument(False)
le document s'affiche bien en mode lecture, mais quand je clique la dessus deux fois, il se met en mode édition.
quelle méthode peut empêcher ce changement?
merci d'avance.

MessagePublié: 17 Sep 2010 à 13:10
par Michael DELIQUE
salut

dans le Querymodechange tu met : continue = False

MessagePublié: 17 Sep 2010 à 13:39
par poowie
Michael DELIQUE a écrit:salut

dans le Querymodechange tu met : continue = False


Merci pour cette réponse rapide.
J'ai mis aussi: continue = False dans le QueryOpendocument de la vue que je souhaite bloquée et sa marche très bien.
Cordialement.

MessagePublié: 20 Sep 2010 à 08:32
par poowie
Bonjour,

Dans le même registre, je souhaite pouvoir visualisé le détail d'un ticket fermé tout en interdisant son réouverture par l'utilisateur et non par l'intervenant (deux rôle différents), sachant que ce ticket est dans une vue nommée "mes tickets fermé":
dans le Querymodechange, j'ai réalisé ce code:*** il vérifi si l'utilisateur commute du mode Lecture pour Éditer le document.S'il le document est en état Clôturé ou fermé alors un message s'affiche et empêche l'utilisateur s'éditer le document***
'************************************************************

Dim session As New NotesSession
Dim db As NotesDatabase
Dim acl As NotesACL
Dim entry As NotesACLEntry

Set db = session.CurrentDatabase
Set acl = db.ACL
Set entry = acl.GetEntry( session.UserName )


If Not ( source.EditMode ) Then
currentStatus = source.FieldGetText( "Statut_1" )
If ( currentStatus = "Clôturé" ) Then
Messagebox ( "Le ticket ne peut pas être modifié" )
continue = False
Elseif ( entry.IsRoleEnabled( "Utilisateur" )) & CDbl(currentStatus ="Fermé")Then
Messagebox ( "Le ticket ne peut pas être modifié" )
continue = False


End If
End If
*******************************************************
j'obtiens la réponse suivante:Type incompatible dans la méthode CoerStrToNum:string trouvé double attendu.
quelqu'un a une idée???

merci d'avance,
Cordialement.

MessagePublié: 20 Sep 2010 à 13:01
par nemrod93
bonjour,
c'est le

"CDbl(currentStatus ="Fermé")"

qui renvoie ça

1) la parenthèse est mal placée,elle doit fermer après currentStatus
2) tu convertit du texte en flottant? vu que currentStatus est du texte puisque tu testes "If ( currentStatus = "Clôturé" ) Then"

enlève le CDbl, ça devrait le faire

MessagePublié: 20 Sep 2010 à 13:58
par poowie
nemrod93 a écrit:bonjour,
c'est le

"CDbl(currentStatus ="Fermé")"

qui renvoie ça

1) la parenthèse est mal placée,elle doit fermer après currentStatus
2) tu convertit du texte en flottant? vu que currentStatus est du texte puisque tu testes "If ( currentStatus = "Clôturé" ) Then"

enlève le CDbl, ça devrait le faire


Bonjour,

Cela ne change rien au problème, que je rectifie la parenthèse ou que j'enlève la conversion CDbl, j'obtiens toujours le même message d'erreur.

Cordialement.

MessagePublié: 20 Sep 2010 à 14:21
par nemrod93
Re,

en tout cas, il faut tester le role "Utilisateur" en l'encadrant comme ceci
"[Utilisateur]"

MessagePublié: 20 Sep 2010 à 14:27
par nemrod93
le boulet !
en LS faut pas mettre de crochets oups :roll: :boul02:

MessagePublié: 20 Sep 2010 à 14:28
par nemrod93
Quoique ca marche quand même

enfin bref ! :roll:
J'vais boire un café :?

MessagePublié: 20 Sep 2010 à 14:38
par nemrod93
re

j'ai testé ca et ca fonctionne
( entry.IsRoleEnabled( "Utilisateur" ) AND currentStatus ="Fermé")

la condition sera correctement interprétée car en LS c'est le AND qui est utilisé

MessagePublié: 20 Sep 2010 à 14:42
par Michael DELIQUE
oui

en LS c'est AND et en Formule/js/java c'est &

MessagePublié: 20 Sep 2010 à 14:51
par nemrod93
@Mickaël
merci cette précision importante

MessagePublié: 20 Sep 2010 à 15:01
par poowie
nemrod93 a écrit:re

j'ai testé ca et ca fonctionne
( entry.IsRoleEnabled( "Utilisateur" ) AND currentStatus ="Fermé")

la condition sera correctement interprétée car en LS c'est le AND qui est utilisé


Merci beaucoup pour l'aide, ça marche très bien.
Étant novice dans la programmation LS, je ne connaissais pas cette règle.

Cordialement.