[Résolu] afficher la date système

Discussions sur le module de base de données Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

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.
jjo
NOOuvel adepte
NOOuvel adepte
Messages : 14
Inscription : 19 août 2017 06:43

[Résolu] afficher la date système

Message par jjo »

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 !!!! :D

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

:D

J'ai le choix maintentant MERCI :D
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é. :lol:
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]
Open Office 4.1.3 Win 7 famille
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25181
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: afficher la date système

Message par Dude »

Image
jjo a écrit : j'ai un champs "datesysteme" (par exemple) qui m'affiche la date du jour.
https://forum.openoffice.org/fr/forum/v ... %C3%A9faut
jjo
NOOuvel adepte
NOOuvel adepte
Messages : 14
Inscription : 19 août 2017 06:43

Re: afficher la date système

Message par jjo »

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.
Open Office 4.1.3 Win 7 famille
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: afficher la date système

Message par Piaf »

Bonjour
Pas sur d'avoir tout compris :lol:
jjo a écrit :Ce que je souhaite c'est un champs qui affiche la date du jour quand j'ouvre mon formulaire
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.
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"
Dans ton formulaire Ordonnance tu bases MainForm sur cette requête et tu ajoutes le champ
Ordonnance.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
jjo
NOOuvel adepte
NOOuvel adepte
Messages : 14
Inscription : 19 août 2017 06:43

Re: afficher la date système

Message par jjo »

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! :lol:
Open Office 4.1.3 Win 7 famille
jjo
NOOuvel adepte
NOOuvel adepte
Messages : 14
Inscription : 19 août 2017 06:43

Re: afficher la date système

Message par jjo »

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.
Open Office 4.1.3 Win 7 famille
jjo
NOOuvel adepte
NOOuvel adepte
Messages : 14
Inscription : 19 août 2017 06:43

Re: afficher la date système

Message par jjo »

Une petite seconde je crois que j'ai trouvé merci PIAF tu m'as donné la solution sans le savoir!!!! :bravo:
Open Office 4.1.3 Win 7 famille
jjo
NOOuvel adepte
NOOuvel adepte
Messages : 14
Inscription : 19 août 2017 06:43

Re: afficher la date système

Message par jjo »


La modération vous a écrit: :alerte: 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
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: afficher la date système

Message par Piaf »

Bonsoir
Une requête Ordonnances
Ordonnance.png

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"
Et tu bases le sous-formulaire sur cette requête.
fOrdonnance.png
Attention tu as un tas d'espaces dans les colonnes Nom et Prénom de ta table Patients.
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
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: afficher la date système

Message par jeanmimi »

Bonjour,
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
Tu peux aussi utiliser le code SQL NOW et faire tes soustractions à partir de ce code avec DATEDIFF.
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
jjo
NOOuvel adepte
NOOuvel adepte
Messages : 14
Inscription : 19 août 2017 06:43

RÉSOLU afficher la date système

Message par jjo »

jjo a écrit :
La modération vous a écrit: :alerte: 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 :Image
jjo a écrit : j'ai un champs "datesysteme" (par exemple) qui m'affiche la date du jour.
https://forum.openoffice.org/fr/forum/v ... %C3%A9faut
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.

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. :oops: 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