[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 !
Kilin
Membre OOrganisé
Membre OOrganisé
Messages : 67
Inscription : 21 mars 2018 23:14

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

Message par Kilin »

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,
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Kilin le 02 mai 2018 17:33, modifié 2 fois.
Version: 5.4.5.1.M2
Obligation de version travail
Windows 7

Version 6.4.7.2 (x64)
Domicile
Windows 10
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Writer] Calcul d'heures bis

Message par Piaf »

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

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
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Kilin
Membre OOrganisé
Membre OOrganisé
Messages : 67
Inscription : 21 mars 2018 23:14

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

Message par Kilin »

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

Merci ;-)
Version: 5.4.5.1.M2
Obligation de version travail
Windows 7

Version 6.4.7.2 (x64)
Domicile
Windows 10
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

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

Message par Piaf »

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

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
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64