Bonjour,
J'ai un champ onglet et je veux bloquer le passage au volet 2 par exemple.
Comment faire si vous avez une piste ?
Merci
Bonjour,
J'ai un champ onglet et je veux bloquer le passage au volet 2 par exemple.
Comment faire si vous avez une piste ?
Merci
Bonjour,
Une solution est, dans l'événement "Modification du volet affiché", de contrôler le volet sélectionné et d'agir en conséquence.
Bonjour,
Autre possibilités : dans le code d'ouverture de la fenêtre/d'init de l'onglet/d'une procédure locale
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ONG[2]..état = inactif ONG[2]..état = grisé // montre à l'utilisateur qu'il ne pourra pas y accéder
Dans l'événement "Clic sur Onglet" :
Si Onglet=2 RETOUR
En tout cas je procède ainsi depuis la nuit des temps.
Et ça marche !
Serendib doit sûrement parler de "Modification du volet affiché".
On clique sur le volet pour changer le volet affiché CQFD...
Voila la liste des évènements disponible :
X Initialisation de ONG_SansNom1
X Création d'un volet dans ONG_SansNom1
X Fermeture d'un volet de ONG_SansNom1
X A chaque modification de ONG_SansNom1
Entrée en survol de ONG_SansNom1
Sortie du survol de ONG_SansNom1
Survol souris sur ONG_SansNom1 WM_MOUSEMOVE
Bouton gauche enfoncé de ONG_SansNom1 WM_LBUTTONDOWN
Bouton gauche relâché de ONG_SansNom1 WM_LBUTTONUP
Bouton gauche double-clic sur ONG_SansNom1 WM_LBUTTONDBLCLK
Bouton droit enfoncé de ONG_SansNom1 WM_RBUTTONDOWN
Bouton droit relâché de ONG_SansNom1 WM_RBUTTONUP
Bouton droit double-clic sur ONG_SansNom1 WM_RBUTTONDBLCLK
Roulette souris sur ONG_SansNom1 WM_MOUSEWHEEL
Touche enfoncée de ONG_SansNom1 WM_KEYDOWN
Touche relâchée de ONG_SansNom1 WM_KEYUP
Touche appuyée de ONG_SansNom1 WM_CHAR
Touche système enfoncée de ONG_SansNom1 WM_SYSKEYDOWN
Touche système relâchée de ONG_SansNom1 WM_SYSKEYUP
Touche système appuyée de ONG_SansNom1 WM_SYSCHAR
Ascenseur horizontal de ONG_SansNom1 WM_HSCROLL
Ascenseur vertical de ONG_SansNom1 WM_VSCROLL
Affichage menu contextuel de ONG_SansNom1 WM_CONTEXTMENU
Déplacement de ONG_SansNom1 WM_MOVE
Changement de taille de ONG_SansNom1 WM_SIZE
Prise de focus de ONG_SansNom1 WM_SETFOCUS
Perte de focus de ONG_SansNom1 WM_KILLFOCUS
Drop depuis l'explorateur sur ONG_SansNom1 WM_DROPFILES
Essayez ça :
dans l'évènement "A chaque modification de ONG_SansNom1" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Si ONG_SansNom1=2 RETOUR
Bonjour,
C'est l'évènement 'Bouton gauche enfoncé' qu'il faut utiliser, je pense.
Bonjour,
Effectivement la solution est, dans l'événement "Modification du volet affiché".
@alex57
Si vous cliquez sur le volet 2, automatiquement il affichera le volet 2. Vous ne pouvez pas bloquer l'action.
Alors comment faire ?
L'instruction RETOUR n'a aucun effet dans pareil cas, le focus est toujours dans l'onglet.
Ce qu'il faudrait faire, c'est remettre le focus dans le volet qui était affiché juste avant le clic sur le volet 2.
En quelque sorte, cela revient à annuler le clic sur le volet 2, comme si vous n'avez pas cliqué du tout.
Un exemple :
Prenons un onglet à 5 volets, "Accueil", "Achats", "Ventes", "Fournisseurs", "Clients".
-Le service achat n'a accès ni aux ventes, ni aux clients.
-Les représentants n'ont accès ni aux achats, ni aux fournisseurs.
Dans "Modification du volet :
Autre méthode, dans "Fin d'initialisation de la fenêtre"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 SELON gsaUtilisateur CAS "Service Achat" SI ONG_MonOnglet=3 OU ONG_MonOnglet=5 ALORS Info("Vous n'avez pas l'accès à ce volet") ONG_MonOnglet=1 FIN CAS "Représentant" SI ONG_MonOnglet=2 OU ONG_MonOnglet=4 ALORS Info("Vous n'avez pas l'accès à ce volet") ONG_MonOnglet=1 FIN FIN
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELON gsaUtilisateur CAS "Service Achat" ONG_MonOnglet[3]..Etat=Grisé ONG_MonOnglet[5]..Etat=Grisé CAS "Représentant" ONG_MonOnglet[2]..Etat = Grisé ONG_MonOnglet[4]..Etat = Grisé FIN
Partager