Script:Lib Chrono

Un article de MacodaWiki.

Jump to: navigation, search

lib_chrono.vbs : Permet de comptabiliser du temps (chronomètre)

'*-*-*-*-*-*-*-**-*-*-*-*-*-*-**-*-*-*-*-*-*-**-*-*-*-*-*-*-**-*-*-*-*-*-*-**-*-*-*-*-*-*-**-*-*-*-*-*-*-*

'* LIBRAIRIE                                                                                             *
'*                                                                                                       *
'*   Voir l'entete de lib_log !!!                                                 *
'*                                                                                                       *
'*                                                                                                       *
'*                                                                                                       *
'*                                                                                                       *
'*                                                                                                       *
'*  2006/08/01                                                                                           *
'*                                                                                                       *
'*-*-*-*-*-*-*-**-*-*-*-*-*-*-**-*-*-*-*-*-*-**-*-*-*-*-*-*-**-*-*-*-*-*-*-**-*-*-*-*-*-*-**-*-*-*-*-*-*-*

'*****************************************************************************
' Récupère une valeur (int ou double) globale dans la mémoire de Homeseer
'

'##############################################################################
sub gCHRONO_Init(sItem)
	gUTIL_Init_Valeur(sItem&"_Total")
	gUTIL_Delete_Variable(sItem&"_depart")
end sub


'##############################################################################
Sub gCHRONO_Fin(sItem,dDuree,iTotal_Duree)
Dim dHeure_depart,dHeure_fin

	giNiveau_Librairie = giNiveau_Librairie + 1

	gFct_Log_LIB LOG_NORMAL,"Fin sItem =>"&sItem&"<"	

	' On récupère la date et l'heure de démarrage
	dHeure_depart = hs.GetVar(sItem&"_depart")

	hs.DeleteVar sItem&"_depart"
	dHeure_fin = Now
	if (dHeure_depart = "Name not found") or (dHeure_depart = "") then 	
		dHeure_depart = dHeure_fin
		gFct_Log_LIB LOG_NORMAL,"Name not Found pour >"&sItem&"_depart<"
	end if	
	gFct_Log_LIB LOG_NORMAL,"Heure départ "&sItem&" " & Cstr(dHeure_depart)
	gFct_Log_LIB LOG_NORMAL,"Heure actuelle "&sItem&" " & Cstr(dHeure_fin)
	dDuree = CDate(dHeure_fin) - Cdate(dHeure_depart)
	gFct_Log_LIB LOG_NORMAL,"Diff : " & cdate(dDuree )

	' On cumule les différentes durées
	iTotal_Duree = hs.GetVar(sItem&"_Total")	
	if (iTotal_Duree = "Name not found") or (iTotal_Duree = "")then 
		iTotal_Duree = 0
		gFct_Log_LIB LOG_NORMAL,"Total_Duree pas trouvé !!! =>>"&sItem&"_Total<<"
	else
		gFct_Log_LIB LOG_NORMAL,"On vient de récupérer Total_Duree : " & cdate(iTotal_Duree)
	end if	

	iTotal_Duree = iTotal_Duree + dDuree 
	hs.SaveVar sItem&"_Total",iTotal_Duree
	gFct_Log_LIB LOG_NORMAL,"Total_journalier : " & cdate(iTotal_Duree)

	giNiveau_Librairie = giNiveau_Librairie - 1

End Sub

'##############################################################################
Sub gCHRONO_Fin_SQL(sItem)
Dim bBase
Dim rRequete
Dim sSQL
Dim dDuree
Dim iTotal_Duree 

	giNiveau_Librairie = giNiveau_Librairie + 1

	gFct_Log_LIB LOG_NORMAL,"Fin_SQL sItem =>"&sItem&"<"	
	
	gCHRONO_Fin sItem,dDuree,iTotal_Duree

	' Pas d'insertion s'il n'y a pas de données !
	if (iTotal_Duree > 0) then 

		' Instertion dans la base de données
	 	Set bBase = CreateObject("ADODB.Connection")   ' Objet base de données (a affecter avec le nom de la base=HOMESEER)
	 	Set rRequete = CreateObject("ADODB.Recordset") ' Pointeur pour les requêtes sur la base	 	
	 	bBase.Open "HOMESEER"   ' Ouverture de l'objet Base : Obligatoire avant tout autre opération
	 
		sSQL = "INSERT INTO tb_"&sItem&" ( [Date_op],[Duree], [Cumul] ) VALUES (Now, '"&cdate(dDuree)&"','"&cdate(iTotal_Duree)&"');"
	
		gFct_Log_LIB LOG_BAVARD,"SQL = >"&sSQL&"<"
	 	rRequete.Open sSQL, bBase                      ' Insertion d'une ligne dans la table
	
	 	bBase.Close                                    ' Fermeture de la base à la fin
	else
		gFct_Log_LIB LOG_BAVARD,"Pas d'insertion car vide !!!!"
	end If
	
	giNiveau_Librairie = giNiveau_Librairie - 1

End Sub

'##############################################################################
Sub gCHRONO_Debut(sItem)
Dim dHeure_depart
Dim i,j
	' On arrête le compteur avant (au cas où il y aurait un nouveau départ, sans arrêt préalable) !
	gCHRONO_Fin sItem,i,j
	
	' Stocke la date et l'heure de départ
	hs.CreateVar sItem&"_depart"
	dHeure_depart = Now
	hs.SaveVar sItem&"_depart",dHeure_depart
	gFct_Log_LIB LOG_NORMAL,"Heure départ "&sItem&" " & Cstr(dHeure_depart)
End Sub


'##############################################################################
Sub gCHRONO_Temps_actuel(sItem)
Dim dHeure_depart, dHeure_fin
Dim iTotal_Duree,dDuree

	gFct_Log_LIB LOG_NORMAL,"sItem =>"&sItem&"<"	
	
	' On récupère la date et l'heure de démarrage
	dHeure_depart = hs.GetVar(sItem&"_depart")

	dHeure_fin = Now
	if (dHeure_depart = "Name not found") or (dHeure_depart = "") then 
		dHeure_depart = dHeure_fin
	end if	
	gFct_Log_LIB LOG_NORMAL,"Heure départ "&sItem&" " & Cstr(dHeure_depart)
	gFct_Log_LIB LOG_NORMAL,"Heure actuelle "&sItem&" " & Cstr(dHeure_fin)
	dDuree  = CDate(dHeure_fin) - Cdate(dHeure_depart)
	gFct_Log_LIB LOG_NORMAL,"Diff : " & cdate(dDuree )

	' On cumule les différentes durées
	iTotal_Duree = hs.GetVar(sItem&"_Total")	
	if (iTotal_Duree = "Name not found") or (iTotal_Duree = "")then 
		iTotal_Duree = 0
		gFct_Log_LIB LOG_NORMAL,"Total_Duree pas trouvé !!! =>>"&sItem&"_Total<<"
	else
		gFct_Log_LIB LOG_NORMAL,"On vient de récupérer Total_Duree : " & cdate(iTotal_Duree)
	end if	

	iTotal_Duree = iTotal_Duree + dDuree 
	gFct_Log_LIB LOG_NORMAL,"Total_journalier ACTUELLE : " & cdate(iTotal_duree)

	' On stocke dans une variable "temporaire"	
	hs.CreateVar sItem&"_Total_act"
	hs.SaveVar sItem&"_Total_act",iTotal_Duree	
End Sub
Récupérée de « http://www.macoda.com/index.php/Script:Lib_Chrono »