[Résolu] afficher la date système
Modérateur : Vilains modOOs
Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
-
- NOOuvel adepte
- Messages : 14
- Inscription : 19 août 2017 06:43
[Résolu] afficher la date système
Bonjour à Tous
Ce qui m’emmène aujourd'hui:
J'ai créé une Bdd pour gérer une patientèle pour le boulot de ma femme.
Entre autres choses, elle doit:
Rentrer les patients via la table patient
Rentrer pour chaque patients une ou plusieurs ordonnances avec notamment la date de l'ordonnance et sa date de fin de validité.
Je souhaiterai ceci:
Est-ce possible que ma Bdd ou le formulaire "Ordonnance", récupère la date actuelle (date système et non une date fixe type timestamp)
Du genre, à chaque fois que j'ouvre ma base de donnée j'ai un champs "datesysteme" (par exemple) qui m'affiche la date du jour.
Pour le reste je ferai un nouveau post car ce n'est que le début du problème........
J'avais trouvé le post de Raf qui parlait même de MACRO mais ce post traité de TIMESTAMP avec le SQL ALTER TABLEetc....
Ce que je souhaite c'est un champ date ou formaté qui affiche en lecture seule la date du jour dès que j'ouvre ma BDD et SURTOUT QUE CE CHAMPS VARIE EN FONCTION DU JOUR OU J'OUVRE MA BASE. Un peu comme une horloge quoi!!!!!
Pour info Voici le post de RAF:
Messagepar Raf » 11 Mars 2008 11:57
Merci !!!!
Ca a l'air de marcher !!!
Le seul souci c'est qu'il ne reconnait pas la casse dans la commande sql. Pour que cela s'excecute j'ai du mettre en majuscule le nom de ma table et de ma colone.
Mais c'est secondaire
Sinon ici on m'a aussi fourni une méthode (avec une macro) qui fonctionne également
h**p://www.commentcamarche.net/forum/af ... -office#20
J'ai le choix maintentant MERCI
OpenOffice 2.3.1 sous windows XP SP2
Raf
NOOuvel adepte
NOOuvel adepte
Message(s) : 15
Inscrit le : 07 Mars 2008 12:51
Voici la macro avec la marche à suivre:
----------------------------------------------------------------------------------------------------------------------------------
Bonsoir Raf,
Afin de résoudre votre problème, insérer la date du jour par défaut, il faut ouvrir le formulaire en mode "Modifier" et ensuite vous ouvrez les propriétées du champs "Date" puis sur l'onglet Evénement" et vous renseigner La propriétée "Réception de focus" en lui assignant la macro InsertDate.
Au cas ou elle n'est pas présente en voici une copie que vous devez enregistrer sous "OpenOffice.org Basic" qui se trouve sous : Outils - Macros - Gérer les macros -et clic sur OpenOffice.org Basic. Et là sous le nom de votre formulaire (qui doit être présent) clic sur le + puis + Standart et clic module1 ....le module s'ouvre et vous enregistez la macro ci dessous.
Sub InsertDate
oDesktop = createUnoService("com.sun.star.frame.Desktop")
oController = oDesktop.CurrentFrame.Controller
oSelection = oController.Selection
' fixer la valeur de la date
oDocument = oController.Model
oFunction = CreateUnoService("com.sun.star.sheet.FunctionAccess")
oFunction.NullDate = oDocument.NullDate
dim aEmpty()
oSelection.Value = oFunction.callFunction("TODAY", aEmpty())
' fixer le format de la date
oFormats = oDocument.NumberFormats
dim aLocale as new com.sun.star.lang.Locale
oSelection.NumberFormat = oFormats.getStandardFormat(_
com.sun.star.util.NumberFormat.DATE, aLocale)
End Sub
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Pour moi la macro c'est sans succès j'ai un code erreur JavaLAng et est ce qu'une macro est indispensable???
Pour les modérateurs, j'arrête de parler de MACRO je sais que ce n'est pas le post dédié.
Je sais plus comment prendre le problème.
Avez vous une solution? Je joints ma base.
A+
JJ
Ce qui m’emmène aujourd'hui:
J'ai créé une Bdd pour gérer une patientèle pour le boulot de ma femme.
Entre autres choses, elle doit:
Rentrer les patients via la table patient
Rentrer pour chaque patients une ou plusieurs ordonnances avec notamment la date de l'ordonnance et sa date de fin de validité.
Je souhaiterai ceci:
Est-ce possible que ma Bdd ou le formulaire "Ordonnance", récupère la date actuelle (date système et non une date fixe type timestamp)
Du genre, à chaque fois que j'ouvre ma base de donnée j'ai un champs "datesysteme" (par exemple) qui m'affiche la date du jour.
Pour le reste je ferai un nouveau post car ce n'est que le début du problème........
J'avais trouvé le post de Raf qui parlait même de MACRO mais ce post traité de TIMESTAMP avec le SQL ALTER TABLEetc....
Ce que je souhaite c'est un champ date ou formaté qui affiche en lecture seule la date du jour dès que j'ouvre ma BDD et SURTOUT QUE CE CHAMPS VARIE EN FONCTION DU JOUR OU J'OUVRE MA BASE. Un peu comme une horloge quoi!!!!!
Pour info Voici le post de RAF:
Messagepar Raf » 11 Mars 2008 11:57
Merci !!!!
Ca a l'air de marcher !!!
Le seul souci c'est qu'il ne reconnait pas la casse dans la commande sql. Pour que cela s'excecute j'ai du mettre en majuscule le nom de ma table et de ma colone.
Mais c'est secondaire
Sinon ici on m'a aussi fourni une méthode (avec une macro) qui fonctionne également
h**p://www.commentcamarche.net/forum/af ... -office#20
J'ai le choix maintentant MERCI
OpenOffice 2.3.1 sous windows XP SP2
Raf
NOOuvel adepte
NOOuvel adepte
Message(s) : 15
Inscrit le : 07 Mars 2008 12:51
Voici la macro avec la marche à suivre:
----------------------------------------------------------------------------------------------------------------------------------
Bonsoir Raf,
Afin de résoudre votre problème, insérer la date du jour par défaut, il faut ouvrir le formulaire en mode "Modifier" et ensuite vous ouvrez les propriétées du champs "Date" puis sur l'onglet Evénement" et vous renseigner La propriétée "Réception de focus" en lui assignant la macro InsertDate.
Au cas ou elle n'est pas présente en voici une copie que vous devez enregistrer sous "OpenOffice.org Basic" qui se trouve sous : Outils - Macros - Gérer les macros -et clic sur OpenOffice.org Basic. Et là sous le nom de votre formulaire (qui doit être présent) clic sur le + puis + Standart et clic module1 ....le module s'ouvre et vous enregistez la macro ci dessous.
Sub InsertDate
oDesktop = createUnoService("com.sun.star.frame.Desktop")
oController = oDesktop.CurrentFrame.Controller
oSelection = oController.Selection
' fixer la valeur de la date
oDocument = oController.Model
oFunction = CreateUnoService("com.sun.star.sheet.FunctionAccess")
oFunction.NullDate = oDocument.NullDate
dim aEmpty()
oSelection.Value = oFunction.callFunction("TODAY", aEmpty())
' fixer le format de la date
oFormats = oDocument.NumberFormats
dim aLocale as new com.sun.star.lang.Locale
oSelection.NumberFormat = oFormats.getStandardFormat(_
com.sun.star.util.NumberFormat.DATE, aLocale)
End Sub
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Pour moi la macro c'est sans succès j'ai un code erreur JavaLAng et est ce qu'une macro est indispensable???
Pour les modérateurs, j'arrête de parler de MACRO je sais que ce n'est pas le post dédié.
Je sais plus comment prendre le problème.
Avez vous une solution? Je joints ma base.
A+
JJ
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Oukcha le 30 nov. 2017 14:18, modifié 2 fois.
Raison : Correction casse balise RÉSOLU -> [Résolu]
Raison : Correction casse balise RÉSOLU -> [Résolu]
Open Office 4.1.3 Win 7 famille
-
- IdOOle de la suite
- Messages : 25181
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: afficher la date système
https://forum.openoffice.org/fr/forum/v ... %C3%A9fautjjo a écrit : j'ai un champs "datesysteme" (par exemple) qui m'affiche la date du jour.
-
- NOOuvel adepte
- Messages : 14
- Inscription : 19 août 2017 06:43
Re: afficher la date système
Merci de ta réponse rapide Dude mais cela ne m'aide pas pour l'instant.
J'avais déjà parcouru ces fils.
Ce que je souhaite a été modifié par OOBase. Ils on remplacé l'affichage automatique du champs date à la date du jour par un déroulant où l'on peut sélectionner le date aujourd’hui.
Ce que je souhaite c'est un champs qui affiche la date du jour quand j'ouvre mon formulaire
La solution alternative fournit par OO était une MACRO.
Cette macro ne fonctionne pas chez moi.
J'avais déjà parcouru ces fils.
Ce que je souhaite a été modifié par OOBase. Ils on remplacé l'affichage automatique du champs date à la date du jour par un déroulant où l'on peut sélectionner le date aujourd’hui.
Ce que je souhaite c'est un champs qui affiche la date du jour quand j'ouvre mon formulaire
La solution alternative fournit par OO était une MACRO.
Cette macro ne fonctionne pas chez moi.
Open Office 4.1.3 Win 7 famille
-
- GourOOu
- Messages : 5622
- Inscription : 25 nov. 2011 18:07
- Localisation : Guyane
Re: afficher la date système
Bonjour
Pas sur d'avoir tout compris
Tu créés une requête à partir de ta table Patients et tu ajoutes un champ pour la date du jour.Dans ton formulaire Ordonnance tu bases MainForm sur cette requête et tu ajoutes le champ A+
Pas sur d'avoir tout compris
Par définition la date du jour change tous les jours, il n'y a donc pas de raison de la stocker dans une table.jjo a écrit :Ce que je souhaite c'est un champs qui affiche la date du jour quand j'ouvre mon formulaire
Tu créés une requête à partir de ta table Patients et tu ajoutes un champ pour la date du jour.
Code : Tout sélectionner
SELECT "Patients".*, CURRENT_DATE AS "DateJour" FROM "Patients"
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
-
- NOOuvel adepte
- Messages : 14
- Inscription : 19 août 2017 06:43
Re: afficher la date système
Coucou Piaf,
En fait cela peut sembler idiot de vouloir avoir la date du jour qui change tous les jours.
Je vais alors te dévoiler Mon Véritable but. TADAM!!!!!!!!
En fait je souhaite que la date du jour (la valeur de cette date en jour) soit soustraite à la date de validité des ordonnances.
Au final quand le résultat de cette soustraction sera de 15 jours une boite de dialogue apparaîtra pour prévenir qu'il faut renouveler l’ordonnance au plus vite
Pour faire cette manip (en utilisant DATEDIFF.......) Je dois avoir la date du jour qui s'affiche dans un champs à chaque fois que j'ouvre mon formulaire car elle est un des deux termes de ma soustraction
Je ne voulais pas le dire car je sais que c'est un problème à la fois mais la finalité c'est d'avoir un système de décompte de jour (par soustraction) afin de créer un seuil d'alerte pour l'utilisateur.
Un peu comme une Bdd de gestion de stock sauf que là c'est entre la date du jour et la date de validité de l'ordonnance
Suis été assez clair!
En fait cela peut sembler idiot de vouloir avoir la date du jour qui change tous les jours.
Je vais alors te dévoiler Mon Véritable but. TADAM!!!!!!!!
En fait je souhaite que la date du jour (la valeur de cette date en jour) soit soustraite à la date de validité des ordonnances.
Au final quand le résultat de cette soustraction sera de 15 jours une boite de dialogue apparaîtra pour prévenir qu'il faut renouveler l’ordonnance au plus vite
Pour faire cette manip (en utilisant DATEDIFF.......) Je dois avoir la date du jour qui s'affiche dans un champs à chaque fois que j'ouvre mon formulaire car elle est un des deux termes de ma soustraction
Je ne voulais pas le dire car je sais que c'est un problème à la fois mais la finalité c'est d'avoir un système de décompte de jour (par soustraction) afin de créer un seuil d'alerte pour l'utilisateur.
Un peu comme une Bdd de gestion de stock sauf que là c'est entre la date du jour et la date de validité de l'ordonnance
Suis été assez clair!
Open Office 4.1.3 Win 7 famille
-
- NOOuvel adepte
- Messages : 14
- Inscription : 19 août 2017 06:43
Re: afficher la date système
Pour Piaf,
Je précise que c'est pas la peine de rentrer la valeur de la date actuelle dans une table, seul un affichage en lecture seul convient, on peut même masquer le champs, c'est juste savoir comment récupérer la valeur-de la date du jour pour qu'elle soit soustraite à celle de fin de validité de l’ordonnance, le résultat de cette soustraction devra être comparé à une valeur seuil de 15 et déclencher ou non l'ouverture d'une box d'alerte.
Pfiouuuu ça y est j'ai vidé mon sac.
Je précise que c'est pas la peine de rentrer la valeur de la date actuelle dans une table, seul un affichage en lecture seul convient, on peut même masquer le champs, c'est juste savoir comment récupérer la valeur-de la date du jour pour qu'elle soit soustraite à celle de fin de validité de l’ordonnance, le résultat de cette soustraction devra être comparé à une valeur seuil de 15 et déclencher ou non l'ouverture d'une box d'alerte.
Pfiouuuu ça y est j'ai vidé mon sac.
Open Office 4.1.3 Win 7 famille
-
- NOOuvel adepte
- Messages : 14
- Inscription : 19 août 2017 06:43
Re: afficher la date système
Une petite seconde je crois que j'ai trouvé merci PIAF tu m'as donné la solution sans le savoir!!!!
Open Office 4.1.3 Win 7 famille
-
- NOOuvel adepte
- Messages : 14
- Inscription : 19 août 2017 06:43
Re: afficher la date système
La modération vous a écrit: Merci d'arrêter votre monologue et ne pas poster plusieurs messages à la suite !
Si vous devez ajouter un complément d'information, le bouton "Editer" à la droite du message permet d'y remédier.
En attendant une prochaine réponse, vous pouvez participer également en répondant à d'autres questions sur notre forum.
En fait voilà ce que je viens de faire:
J'ai créé un champs formaté "Délai" basé sur la requête suivante:
SELECT "Ordonnance".*, DATEDIFF( 'dd', "DateFin", CURRENT_DATE ) AS "Délai" FROM "Ordonnance"
Ce dernier m'affiche donc automatiquement le résultat en jour de la soustraction entre la date de fin de validité de l'ordonnance et la date actuelle. (Merci PIAF de m'avoir donné le terme CURRENT_DATE j'essayait avec NOW, TODAYetc..... sans succès)
Mon premier problème n'est pas totalement résolu car je souhaite que ce calcul soit effectué automatiquement pour toutes les valeurs "DateFin" de la table "Ordonnance"et que l'ensemble des résultats soit comparé à la valeur seuil de 15 jours.
Quelqu'un a une idée???????
Je suppute qu'il s'agit là de Macro, si c'est le cas je quitterai le post pour le post ad hoc.
Merci
Open Office 4.1.3 Win 7 famille
-
- GourOOu
- Messages : 5622
- Inscription : 25 nov. 2011 18:07
- Localisation : Guyane
Re: afficher la date système
Bonsoir
Une requête OrdonnancesEt tu bases le sous-formulaire sur cette requête. Attention tu as un tas d'espaces dans les colonnes Nom et Prénom de ta table Patients.
A+
Une requête Ordonnances
Code : Tout sélectionner
SELECT "Ordonnance".*, DATEDIFF( 'dd', CURRENT_DATE, "DateFin" ) AS "Delai", CASEWHEN( DATEDIFF( 'dd', CURRENT_DATE, "DateFin" ) < 16, 'Renouvellement', '' ) AS "New" FROM "Ordonnance"
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
-
- Grand Maître de l'OOffice
- Messages : 16960
- Inscription : 03 mars 2006 16:02
- Localisation : Venise verte
Re: afficher la date système
Bonjour,
Tu peux aussi utiliser le code SQL NOW et faire tes soustractions à partir de ce code avec DATEDIFF.jjo a écrit :c'est juste savoir comment récupérer la valeur-de la date du jour pour qu'elle soit soustraite à celle de fin de validité de l’ordonnance, le résultat de cette soustraction
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
-
- NOOuvel adepte
- Messages : 14
- Inscription : 19 août 2017 06:43
RÉSOLU afficher la date système
Pour DUDE, j'avais déjà regardé tous ces fils, mais ils parlent d'horodatage, c'est pas ce que je voulais. PIAF a bien compris que je souhaitais une donnée variable et non un TIMESTAMP, merci quand même de t'être penché sur mon problème.jjo a écrit :La modération vous a écrit: Merci d'arrêter votre monologue et ne pas poster plusieurs messages à la suite !
Si vous devez ajouter un complément d'information, le bouton "Editer" à la droite du message permet d'y remédier.
En attendant une prochaine réponse, vous pouvez participer également en répondant à d'autres questions sur notre forum.
Ok désolé je ferai attention la prochaine fois, mais je tenais à dire que j'aime pas trop la sémantique employée, je fais partie de ceux qui pense que tout peut être dit avec les formes.....
Dude a écrit :https://forum.openoffice.org/fr/forum/v ... %C3%A9fautjjo a écrit : j'ai un champs "datesysteme" (par exemple) qui m'affiche la date du jour.
Pour PIAF et JEANMIMI: Merci beaucoup, votre aide m'a permis de solutionner le problème, il venait entre autre d'une méconnaissance de ma part de la syntaxe SQL. De plus j'ai rajouter une petite macro qui aide à automatiser tout cela. Je poste la base si ça peut aider quelques uns....
A bientôt les copains
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Open Office 4.1.3 Win 7 famille