[Résolu][Calc] fermer un fichier après 15 min d'inactivité

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 !

[Résolu][Calc] fermer un fichier après 15 min d'inactivité

Messagepar r@p@ce15 » 24 Fév 2010 13:56

Bonjour à tous,

Dans le cadre de mon travail on me demande s'il est possible de fermer un fichier calc après un certains laps de temps d'inactivité.

Quelqu'un aurait-il une idée ou une piste pour réaliser cela ?
Dernière édition par r@p@ce15 le 06 Avr 2010 11:59, édité 2 fois.
OOo v.2.3.0
WinXP Pro SP2
r@p@ce15
Fraîchement OOthentifié
 
Message(s) : 9
Inscrit le : 29 Nov 2006 13:58

Re: [Calc] Inactivité d'un fichier

Messagepar Dude » 24 Fév 2010 14:36

Salut,

r@p@ce15 a écrit:fermer un fichier calc après un certains laps de temps d'inactivité.

Ton titre ne reflète donc pas le problème exposé. Merci de corriger afin de faciliter les recherches ultérieures.

Il convient de définir ce que tu appelles "laps de temps" : une heure donnée ou une temporisation. Cela peut se faire en générant un sémaphore.

Ensuite, il suffit d'écouter la feuille. En faisant une recherche sur "listener", tu trouveras des exemples.

Le terme "inactivité" est génant car il conviendra de régénérer le sémaphore.

La fermeture se fera avec un ThisDocument.close(true). Je n'aborde pas la problèmatique de l'enregistrement de données.

:idea:
Image

Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 21687
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

Re: [Calc] fermer un fichier après 15 min d'inactivité

Messagepar r@p@ce15 » 24 Fév 2010 17:49

Merci pour ta réponse,
J'ai comme indiqué modifié le titre, j'espère qu'il est plus adéquat.

Je recherche donc avec listener et sémaphore...

je ne mets pas résolu tout de suite, je mettrais un lien vers les posts qui m'auront aidés.
OOo v.2.3.0
WinXP Pro SP2
r@p@ce15
Fraîchement OOthentifié
 
Message(s) : 9
Inscrit le : 29 Nov 2006 13:58

Re: [Calc] fermer un fichier après 15 min d'inactivité

Messagepar r@p@ce15 » 06 Avr 2010 11:59

Chose promise chose due...

Voici le pistes que j'ai utilisée pour résoudre mon problème.
Le post suivant : avec notamment le Fichier d'Alain de La Chaume qui m'a permis d'afficher la date...

Ensuite, le problème des listeners m'a paru par trop complexe pour gérer l'inactivité. J'ai donc décidé de faire un test toutes les 30secondes afin de voir si le fichier avait été modifié. Si oui, on remet la temporisation à 0 et on enregistre automatiquement si non, le décompte continue jusqu'à fermeture.

Les données :
la cellule A1 contient la valeur de la tempo en minutes
La cellule B1 contient la formule suivante : =MAINTENANT() + TEMPS(0;A1;0)

Ce qui donne
Code : Tout sélectionner   AgrandirRéduire
REM  *****  BASIC  *****
option explicit

Private oDoc as object

Sub Main
   oDoc = thisComponent
   oDoc.calculate
   decompte()
End Sub



Sub decompte()
   dim oFeuil as object, oTime as object
   Dim Hrs as integer, Min as integer, Sec as integer
   Dim Tempo as variant
   Dim hFerm As string, hMaint As string
   
   
   REM instructions de la macro
   oFeuil = oDoc.sheets.getByName("A_masquer")
   oTime = oFeuil.getCellRangeByName("B1")
   
'xRay oTime
   
   Hrs = Hour(oTime.Value)
   Min = Minute(oTime.Value)
   Sec= Second(oTime.value)
         
   hMaint = TimeSerial(Hour(now),Minute(now),Second(now))
   hFerm = Timeserial(Hrs, Min, Sec)
   Tempo = Timevalue(hFerm) - Timevalue(hMaint)
   Min = Minute(Tempo)
   Sec = Second(Tempo)
   If oDoc.isModified then
'      MsgBox "Ok Modifié" & chr(13) & "On remet à 0",64,"Modifié ?"
      oDoc.calculate
      oDoc.Store
      Call decompte
   else
'      MsgBox "Pas Modifié" & chr(13) & "On continue",64,"Modifié ?"
      oDoc.setTitle("Attention ce fichier va se fermer dans moins de " & Min & " minute(s) et " & Sec & " seconde(s)")
      if hMaint = hFerm then
         thisComponent.store
         thisComponent.close(True)
         exit sub ' SORTIE CONDITIONNELLE
      end if
   endif
   Wait 30000
   Call decompte
End Sub
OOo v.2.3.0
WinXP Pro SP2
r@p@ce15
Fraîchement OOthentifié
 
Message(s) : 9
Inscrit le : 29 Nov 2006 13:58


Retour vers Macros et API

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 4 invité(s)