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

Publié:
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.

Publié:
17 Sep 2010 à 13:10
par Michael DELIQUE
salut
dans le Querymodechange tu met : continue = False

Publié:
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.

Publié:
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.

Publié:
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

Publié:
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.

Publié:
20 Sep 2010 à 14:21
par nemrod93
Re,
en tout cas, il faut tester le role "Utilisateur" en l'encadrant comme ceci
"[Utilisateur]"

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


Publié:
20 Sep 2010 à 14:28
par nemrod93
Quoique ca marche quand même
enfin bref !
J'vais boire un café


Publié:
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é

Publié:
20 Sep 2010 à 14:42
par Michael DELIQUE
oui
en LS c'est AND et en Formule/js/java c'est &

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

Publié:
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.