[Calc]Appeller un listener par un listener

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
stzen
NOOuvel adepte
NOOuvel adepte
Messages : 21
Inscription : 20 févr. 2009 21:39

[Calc]Appeller un listener par un listener

Message par stzen »

Bonjour,
Dans mon projet, j'ai négligé l'aspect déclenchement de mes listeners.
Lors de précédents posts, le problème du listener qui envoie un email sur niveau d'alerte a pu être réglé (Merci Pierre-Yves Samyn!)
Il m'en faut 7 autres, je devrai m'en sortir en changeant les cellule référence et les niveaux d'alerte.
Cependant j'ai négligé l'aspect ON/OFF des alarmes...je m'explique:
Le soir venu je laisse mon PC tourner et je lance les listenersB (alarmes) si certaines alarmes se déclenche pendant la nuit(elle ne se déclencherons qu'une fois),
il se peut que d'autres soient encore en veille, et au petit matin je dois pouvoir les mettre "OFF".
Pour cela j'ai penser créer une liste (ON/OFF) dans une cellule (MONITOR S24 du document joint) et lui assigner un listenerA qui réagit à l'évènement ON/OFF.
Si "ON" le listenerA appelle le listenerB de la cellule O8, Si "OFF" les listeners A et B sont "OFF".
Ayant 8 alarmes à créer je doit aussi avoir 8 cellules du type "ON/OFF", cela peut faire beaucoup et je me demande si il n'y a pas un moyen plus simple
que de créer 16 listeners et 8 removelisteners....cela dit je dois pouvoir gérer chaque alarme individuellement, c'est important.
Ci-dessous le code du listener pour cellule "ON/OFF" qui ne fonctionne pas bien sûr!

Code : Tout sélectionner

option explicit

Global PysCell9 as object
Global PysListener as object

Sub PysListenerAdd_DFPL

with thisComponent.sheets.getByName("MONITOR")
  PysCell9=.getCellRangeByName("S24")
End With

PysListener = CreateUnoListener( "Pys_", "com.sun.star.util.XModifyListener" )
PysCell9.AddModifyListener(PysListener)


End Sub

Sub PysListenersRemove
' Procédure à appeler pour arrêter le listener
PysCell9.RemoveModifyListener(PysListener)

set PysListener = nothing

End Sub

Sub Pys_Disposing
' Procédure nécessaire à l'arrêt du listener même si on n'y fait rien
End Sub


Sub Pys_Modified(oEvent)

if PysCell9.value ="ON" then
  PysListenerAdd_DFPL
  PysListenersRemove
Else
  PysListenersRemove_DFPL
end if
End Sub
Je précise que j'ai créé une bibliothèque "Boutons" pour gérer les évènements "ON/OFF", une bibliothèque "Alarmes" pour gérer les alertes emails ainsi que les évènements "OFF"

Ayant passé quatre jours et quatre nuits la dessus, la fatigue commence à se faire sentir( c'est peu de le dire!) et j'èspere malgré tout avoir été assez précis.

En vous remerciant
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OpenOffice 3.0.1 sous Windows XP