[Résolu][Writer] Calcul d'heures idem à champ utilisateur

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][Writer] Calcul d'heures idem à champ utilisateur

Messagepar Kilin » 02 Mai 2018 16:57

Bonjour,

Je me conforme à ré ouvrir un sujet car c'est une nouvelle question en relation avec ma précédente demande.

Donc merci Piaf et Luke, mon formulaire calcule bien les heures travaillées.
J'ai remarqué que la valeur calculheure ne se copiait pas dans le presse papier, est ce qu'il est possible de faire apparaître le calcul des heures de la même manière dans un champs utilisateur ?

Concernant la routine de calcul, celle de Piaf enregistre le résultat à la fermeture du document mais ne met pas les heures en toutes lettres, et celles de Luke fait l'inverse, j'ai bien les heures en toutes lettres mais le résultat n'est pas enregistré à la fermeture, y a t'il moyen de combiner les deux fonctions bien utiles pour mon projet ?

Merci pour votre aide et votre patience,
Pièces jointes
dialogue.odt
(16.61 Kio) Téléchargé 10 fois
Dernière édition par Kilin le 02 Mai 2018 18:33, édité 2 fois.
LibreOffice Version: 5.4.6.2 (x64)
Windows 10
Kilin
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 59
Inscrit le : 22 Mars 2018 00:14

Re: [Writer] Calcul d'heures bis

Messagepar Piaf » 02 Mai 2018 17:42

Re
Tu dois choisir soit avoir un résultat en heures minutes, soit en texte.
Si le résultat en texte suffit, remplace le contrôle champ horaire par un contrôle zone de texte (ceci pour le formulaire).
Kilin a écrit:est ce qu'il est possible de faire apparaître le calcul des heures de la même manière dans un champs utilisateur ?
Oui
Code : Tout sélectionner   AgrandirRéduire
Sub Calcul
Dim oDoc As Object, oForm As Object, oDrawPage As Object
Dim TimeDeb As Date, TimeFin As Date, timeDiff As String
   oDoc = ThisComponent
   oDrawPage = oDoc.DrawPage
   oForm = oDrawPage.Forms.GetByName("Formulaire")
   TimeDeb = oDoc.TextFieldMasters.getByName("com.sun.star.text.fieldmaster.User.heuredebut").content
   TimeFin = oDoc.TextFieldMasters.getByName("com.sun.star.text.fieldmaster.User.heurefin").content
   TimeDiff = Format(TimeFin - TimeDeb,"HH:MM")
   TimeDiff = Left(TimeDiff,2) & " heures " & Right(TimeDiff,2) & " minutes"
   oForm.GetByName("calculheure").Text  = timeDiff
   oForm.GetByName("calculheure").Commit
   oDoc.TextFieldMasters.getByName("com.sun.star.text.fieldmaster.User.calculheure").content = timeDiff
End Sub
User.png
User.png (28.63 Kio) Consulté 101 fois
A+
Libre Office Version: 5.4.7 et Apache OpenOffice 4.1.5 Sur Xubuntu 16.04
Piaf
GourOOu
GourOOu
 
Message(s) : 5326
Inscrit le : 25 Nov 2011 19:07
Localisation : Guyane

Re: [Writer] Calcul d'heures idem à champ utilisateur

Messagepar Kilin » 02 Mai 2018 17:54

Piaf, vous êtes un génie ! :bravo:

Merci ;-)
LibreOffice Version: 5.4.6.2 (x64)
Windows 10
Kilin
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 59
Inscrit le : 22 Mars 2018 00:14

Re: [Résolu][Writer] Calcul d'heures idem à champ utilisateu

Messagepar Piaf » 02 Mai 2018 18:20

Re
Tu as oublié la coche pour le [Résolu]
Si tu as besoin des deux valeurs (texte et heures), tu peux combiner (en gardant le contrôle champ horaire)
Code : Tout sélectionner   AgrandirRéduire
Sub Calcul
Dim oDoc As Object, oForm As Object, oDrawPage As Object
Dim TimeDeb As Date, TimeFin As Date, timeDiff As Date, txttimeDiff As String
Dim dTime as New com.sun.star.util.Time
   oDoc = ThisComponent
   oDrawPage = oDoc.DrawPage
   oForm = oDrawPage.Forms.GetByName("Formulaire")
   TimeDeb = oDoc.TextFieldMasters.getByName("com.sun.star.text.fieldmaster.User.heuredebut").content
   TimeFin = oDoc.TextFieldMasters.getByName("com.sun.star.text.fieldmaster.User.heurefin").content
   timeDiff = TimeFin - TimeDeb
    With dTime
       .Hours = Hour(timeDiff)
       .Minutes = Minute(timeDiff)
    End With
   oForm.GetByName("calculheure").Time = dTime
    oForm.GetByName("calculheure").Commit
   txtTimeDiff = Format(TimeFin - TimeDeb,"HH:MM")
   txtTimeDiff = Left(txtTimeDiff,2) & " heures " & Right(txtTimeDiff,2) & " minutes"
   oDoc.TextFieldMasters.getByName("com.sun.star.text.fieldmaster.User.calculheure").content = txtTimeDiff   
End Sub
User.png
User.png (27.06 Kio) Consulté 91 fois
A+
Libre Office Version: 5.4.7 et Apache OpenOffice 4.1.5 Sur Xubuntu 16.04
Piaf
GourOOu
GourOOu
 
Message(s) : 5326
Inscrit le : 25 Nov 2011 19:07
Localisation : Guyane


Retour vers Macros et API

Qui est en ligne ?

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