PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → [WD14] Couleur ligne de table
[WD14] Couleur ligne de table
Débuté par Christophe, 27 fév. 2010 21:13 - 46 réponses
Posté le 27 février 2010 - 21:13
Bonjour,
je débute sous WD. J'ai une table vehicules avec entre autre, une date de Controle Technique. Je voudrais que la ligne de la table soit rouge 1 mois avant la date. Si vous pouviez m'aider car je sèche complètement...
Si cela est plus facile, au pire, juste avoir une message box qui dit à l'ouverture du fichier véhicule " date du controle Technique de tel vehicule bientôt dépassée !".
Merci pour votre aide !
Posté le 28 février 2010 - 12:33
Christophe a écrit dans le message de news <a3449adec33791b1665c59a89a1b6535@news.pcsoft> :
Bonjour,
je débute sous WD. J'ai une table vehicules avec entre autre, une date de Controle Technique. Je voudrais que la ligne de la table soit rouge 1 mois avant la date. Si vous pouviez m'aider car je sèche complètement...
Si cela est plus facile, au pire, juste avoir une message box qui dit à l'ouverture du fichier véhicule " date du controle Technique de tel vehicule bientôt dépassée !".
Merci pour votre aide !


Bonsoir, il faudrait étudier les fonctions qui sont en rapport avec les dates,
ainsi que les propiétés des te lignes de table pour trouver quelques idées...

Bon dev,

Arnaud

Par exemple :



POUR TOUTE LIGNE DE MoiMême
// Gestion du solde
xValeurSoldeG = xValeurSoldeG + (COL_Crédit - COL_Débit)
COL_Solde = xValeurSoldeG

//COLORATION DES LIGNES D ACOMPTE
i est un entier= MoiMême
SI COL_Acompte..Valeur = Vrai ALORS
TABLE_Comptes[i]..Couleur = VertFoncé
FIN

FIN
Posté le 28 février 2010 - 12:34
Bonjour
Voila un code modifié pour vous :)



DATE_DU_CONTROLE est une Date="20100125"
DATE_DU_JOUR_A_TESTER est une Date

SI DATE_DU_CONTROLE..Mois-1=0 ALORS
DATE_DU_JOUR_A_TESTER..Mois=12
DATE_DU_JOUR_A_TESTER..Année=DATE_DU_CONTROLE..Année-1
SINON
DATE_DU_JOUR_A_TESTER..Mois=DATE_DU_CONTROLE..Mois-1

FIN

Info(DATE_DU_JOUR_A_TESTER)


I est un entier=1

POUR I=1 A TableOccurrence(Table_VEHICULE)
TableSelectPlus(Table_VEHICULE,I)
SI Table_VEHICULE.DATE_COTROLE=DATE_DU_JOUR_A_TESTER ALORS


Table_VEHICULE[Table_VEHICULE]..CouleurFond=iRougeClair
SINON
Table_VEHICULE[Table_VEHICULE]..CouleurFond=iCouleurDéfaut
FIN

FIN








A insérer dans la fin d’initialisations de la table

Bon dev
Benyahia
Abeny@mail.com
Posté le 28 février 2010 - 17:54
Bonjour,

En code d'initialisation de ta table il te suffit de tester si ta date de controle est inférieure à 30 jours et de mettre le code:
k est un entier
POUR TOUTE LIGNE DE Table
k++
SI DATEDIFFERENCE (DATESYS(),Table.Col_DateContro[k])< 30 ALORS
Table.Col_DateContro[k]..CouleurFond=iRougeClair
Table.Col_DateContro[k]..CouleurFond=iRougeClair
SINON
Table.Col_DateContro[k]..CouleurFond=iTransparent
Table.Col_DateContro[k]..CouleurFond=iTransparent
FIN

Bon DEV
Posté le 08 mars 2010 - 18:19
merci pour votre aide !
petit problème, la fonction "pour toute ligne..." génère une erreur.(erreur de syntaxe) ?
Posté le 08 mars 2010 - 19:01
Le code suivant est mis dans initialisation de la table :

POUR TOUTE LIGNE DE TABLE_Ambulanciers

i est un entier= TABLE_Ambulanciers
SI COL_Validitepermis..Valeur = DateSys() ALORS
TABLE_Ambulanciers[i]..Couleur = iVertFoncé
FIN
FIN

Rien ne se passe... si vous savez ce qui cloche, je suis preneur !
Merci en tout cas!
Posté le 08 mars 2010 - 19:10
Bonjour,

Mets le code suivant dans la section "Affichage d'une ligne" de la table:
SI COL_Validitepermis..Valeur = DateSys() ALORS
TABLE_Ambulanciers.MaColonne..Couleur = iVertFoncé
sinon
TABLE_Ambulanciers.MaColonne..Couleur = idéfaut
FIN
Evidemment il faut remplacer MaColonne par une colonne de la table. Si tu
veux traiter toute la ligne, il me semble que tu es obligé de passer toutes
les colonnes en revue.

Frédéric.
"nono944" <noechristophe@msn.com> a écrit dans le message de
news:9e61cea387b69feb4b0a070ff1b177a8@news.pcsoft...


Le code suivant est mis dans initialisation de la table :

POUR TOUTE LIGNE DE TABLE_Ambulanciers

i est un entier= TABLE_Ambulanciers
SI COL_Validitepermis..Valeur = DateSys() ALORS
TABLE_Ambulanciers[i]..Couleur = iVertFoncé
FIN
FIN

Rien ne se passe... si vous savez ce qui cloche, je suis preneur !
Merci en tout cas!
Posté le 09 mars 2010 - 12:33
Bonjour,

Il faut déclarer i avant la boucle.
i est un entier=1
POUR TOUTE LIGNE DE TABLE_Ambulanciers
SI COL_Validitepermis..Valeur = DateSys() ALORS
TABLE_Ambulanciers[i]..Couleur = iVertFoncé
FIN
i++
FIN
Bon dev

Bernard GINET
Posté le 09 mars 2010 - 14:01
Bonjour,
Ce code fonctionne mais il colore toute la colonne et non juste la ligne correspondant à la date dépassée.
Si vous avez une idée!?

Frédéric DEMILLY a écrit dans le message de news <4b952f5e@news.pcsoft.fr> :
Bonjour,

Mets le code suivant dans la section "Affichage d'une ligne" de la table:
SI COL_Validitepermis..Valeur = DateSys() ALORS
TABLE_Ambulanciers.MaColonne..Couleur = iVertFoncé
sinon
TABLE_Ambulanciers.MaColonne..Couleur = idéfaut
FIN
Evidemment il faut remplacer MaColonne par une colonne de la table. Si tu
veux traiter toute la ligne, il me semble que tu es obligé de passer toutes
les colonnes en revue.

Frédéric.
"nono944" <noechristophe@msn.com> a écrit dans le message de
news:9e61cea387b69feb4b0a070ff1b177a8@news.pcsoft...


Le code suivant est mis dans initialisation de la table :

POUR TOUTE LIGNE DE TABLE_Ambulanciers

i est un entier= TABLE_Ambulanciers
SI COL_Validitepermis..Valeur = DateSys() ALORS
TABLE_Ambulanciers[i]..Couleur = iVertFoncé
FIN
FIN

Rien ne se passe... si vous savez ce qui cloche, je suis preneur !
Merci en tout cas!

Posté le 09 mars 2010 - 14:26
J'ai désormais ce code :
i est un entier=1
POUR TOUTE LIGNE DE TABLE_Ambulanciers
SI COL_Validitepermis..Valeur = DateSys() ALORS
TABLE_Ambulanciers.COL_Nomambulancier[i]..CouleurFond=iRougeClair
SINON
TABLE_Ambulanciers.COL_Nomambulancier[i]..CouleurFond=iCouleurDéfaut
FIN
i++
FIN
Mais rien ne se passe.
Je l'ai mis dans affichage ligne, initialisation, etc...
Est-il possible par exemple de contourner le problème en effectuant un nombre de jour entre cette fameuse date et un champ date du jour de la fenètre?

GINET Bernard a écrit dans le message de news <30a5d58a689e77e567153d6c1ff0752d@news.pcsoft> :
Bonjour,

Il faut déclarer i avant la boucle.
i est un entier=1
POUR TOUTE LIGNE DE TABLE_Ambulanciers
SI COL_Validitepermis..Valeur = DateSys() ALORS
TABLE_Ambulanciers[i]..Couleur = iVertFoncé
FIN
i++
FIN
Bon dev

Bernard GINET
Posté le 09 mars 2010 - 18:19
nono944 a exprimé avec précision :
J'ai désormais ce code :
i est un entier=1
POUR TOUTE LIGNE DE TABLE_Ambulanciers
SI COL_Validitepermis..Valeur = DateSys() ALORS
TABLE_Ambulanciers.COL_Nomambulancier[i]..CouleurFond=iRougeClair
SINON
TABLE_Ambulanciers.COL_Nomambulancier[i]..CouleurFond=iCouleurDéfaut
FIN
i++
FIN
Mais rien ne se passe.
Je l'ai mis dans affichage ligne, initialisation, etc...
Est-il possible par exemple de contourner le problème en effectuant un nombre
de jour entre cette fameuse date et un champ date du jour de la fenètre?


Tu dois indiquer l'indice de ta colonne :
SI COL_Validitepermis[i]..Valeur = DateSys()
.... Non ?
Posté le 10 mars 2010 - 00:05
ça marche toujours pas.
c'est déroutant!
Posté le 10 mars 2010 - 09:52
Oups, j'ai oublié l'indice de la ligne...
SI COL_Validitepermis[TABLE_Ambulanciers]..Valeur = DateSys() ALORS
TABLE_Ambulanciers.MaColonne[TABLE_Ambulanciers]..Couleur = iVertFoncé
sinon
TABLE_Ambulanciers.MaColonne[TABLE_Ambulanciers]..Couleur = idéfaut
FIN

Frédéric.
"nono944" <noechristophe@msn.com> a écrit dans le message de
news:2613707f97a846f76d65cbf298e63c4d@news.pcsoft...

Bonjour,
Ce code fonctionne mais il colore toute la colonne et non juste la ligne
correspondant à la date dépassée.
Si vous avez une idée!?

Frédéric DEMILLY a écrit dans le message de news <4b952f5e@news.pcsoft.fr>
:
Bonjour,

Mets le code suivant dans la section "Affichage d'une ligne" de la table:
SI COL_Validitepermis..Valeur = DateSys() ALORS
TABLE_Ambulanciers.MaColonne..Couleur = iVertFoncé
sinon
TABLE_Ambulanciers.MaColonne..Couleur = idéfaut
FIN
Evidemment il faut remplacer MaColonne par une colonne de la table. Si tu
veux traiter toute la ligne, il me semble que tu es obligé de passer
toutes
les colonnes en revue.

Frédéric.
"nono944" <noechristophe@msn.com> a écrit dans le message de
news:9e61cea387b69feb4b0a070ff1b177a8@news.pcsoft...


Le code suivant est mis dans initialisation de la table :

POUR TOUTE LIGNE DE TABLE_Ambulanciers

i est un entier= TABLE_Ambulanciers
SI COL_Validitepermis..Valeur = DateSys() ALORS
TABLE_Ambulanciers[i]..Couleur = iVertFoncé
FIN
FIN

Rien ne se passe... si vous savez ce qui cloche, je suis preneur !
Merci en tout cas!


Posté le 20 mars 2010 - 01:53
re-bonjour,

je suis toujours sur mon problème. Je suis sous WD14 et les code que vous m'avez fournis ne fnoctionnent pas pour la ligne en tout cas.
J'ai tenté pleins d'autres trucs sans succès alors je reviens vers vous...

Frédéric DEMILLY a écrit dans le message de news <4b974cc4$1@news.pcsoft.fr> :
Oups, j'ai oublié l'indice de la ligne...
SI COL_Validitepermis[TABLE_Ambulanciers]..Valeur = DateSys() ALORS
TABLE_Ambulanciers.MaColonne[TABLE_Ambulanciers]..Couleur = iVertFoncé
sinon
TABLE_Ambulanciers.MaColonne[TABLE_Ambulanciers]..Couleur = idéfaut
FIN

Frédéric.
"nono944" <noechristophe@msn.com> a écrit dans le message de
news:2613707f97a846f76d65cbf298e63c4d@news.pcsoft...

Bonjour,
Ce code fonctionne mais il colore toute la colonne et non juste la ligne
correspondant à la date dépassée.
Si vous avez une idée!?

Frédéric DEMILLY a écrit dans le message de news <4b952f5e@news.pcsoft.fr>
:
Bonjour,

Mets le code suivant dans la section "Affichage d'une ligne" de la table:
SI COL_Validitepermis..Valeur = DateSys() ALORS
TABLE_Ambulanciers.MaColonne..Couleur = iVertFoncé
sinon
TABLE_Ambulanciers.MaColonne..Couleur = idéfaut
FIN
Evidemment il faut remplacer MaColonne par une colonne de la table. Si tu
veux traiter toute la ligne, il me semble que tu es obligé de passer
toutes
les colonnes en revue.

Frédéric.
"nono944" <noechristophe@msn.com> a écrit dans le message de
news:9e61cea387b69feb4b0a070ff1b177a8@news.pcsoft...


Le code suivant est mis dans initialisation de la table :

POUR TOUTE LIGNE DE TABLE_Ambulanciers

i est un entier= TABLE_Ambulanciers
SI COL_Validitepermis..Valeur = DateSys() ALORS
TABLE_Ambulanciers[i]..Couleur = iVertFoncé
FIN
FIN

Rien ne se passe... si vous savez ce qui cloche, je suis preneur !
Merci en tout cas!



Posté le 22 mars 2010 - 09:41
"Il ne fonctionne pas" C'est à dire ? Pas de coloration, message d'erreur...
?

Frédéric.
"nono944" <noechristophe@msn.com> a écrit dans le message de
news:002dd401962e8b78c70d7ad38a39f5ab@news.pcsoft...

re-bonjour,

je suis toujours sur mon problème. Je suis sous WD14 et les code que vous
m'avez fournis ne fnoctionnent pas pour la ligne en tout cas.
J'ai tenté pleins d'autres trucs sans succès alors je reviens vers vous...

Frédéric DEMILLY a écrit dans le message de news
<4b974cc4$1@news.pcsoft.fr> :
Oups, j'ai oublié l'indice de la ligne...
SI COL_Validitepermis[TABLE_Ambulanciers]..Valeur = DateSys() ALORS
TABLE_Ambulanciers.MaColonne[TABLE_Ambulanciers]..Couleur = iVertFoncé
sinon
TABLE_Ambulanciers.MaColonne[TABLE_Ambulanciers]..Couleur = idéfaut
FIN

Frédéric.
"nono944" <noechristophe@msn.com> a écrit dans le message de
news:2613707f97a846f76d65cbf298e63c4d@news.pcsoft...

Bonjour,
Ce code fonctionne mais il colore toute la colonne et non juste la
ligne
correspondant à la date dépassée.
Si vous avez une idée!?

Frédéric DEMILLY a écrit dans le message de news
<4b952f5e@news.pcsoft.fr>
:
Bonjour,

Mets le code suivant dans la section "Affichage d'une ligne" de la
table:
SI COL_Validitepermis..Valeur = DateSys() ALORS
TABLE_Ambulanciers.MaColonne..Couleur = iVertFoncé
sinon
TABLE_Ambulanciers.MaColonne..Couleur = idéfaut
FIN
Evidemment il faut remplacer MaColonne par une colonne de la table. Si
tu
veux traiter toute la ligne, il me semble que tu es obligé de passer
toutes
les colonnes en revue.

Frédéric.
"nono944" <noechristophe@msn.com> a écrit dans le message de
news:9e61cea387b69feb4b0a070ff1b177a8@news.pcsoft...


Le code suivant est mis dans initialisation de la table :

POUR TOUTE LIGNE DE TABLE_Ambulanciers

i est un entier= TABLE_Ambulanciers
SI COL_Validitepermis..Valeur = DateSys() ALORS
TABLE_Ambulanciers[i]..Couleur = iVertFoncé
FIN
FIN

Rien ne se passe... si vous savez ce qui cloche, je suis preneur !
Merci en tout cas!




Posté le 01 mars 2018 - 01:41
Super et MERCI la méthode de fonctionne Bernard GINET
Membre enregistré
26 messages
Posté le 07 août 2019 - 20:47
Bonjour

Moi je cherche a faire a quatre couleur différente sur ma table.

il reste 30 jours d’abonnement = Vert
il reste 15 jours d’abonnement = Orange
il reste 5 jours d’abonnement = Bleu
et abonnement dépasse = Rouge
et le reste de la table normale

Quelqu'un a déjà fait je suis novice .

Merci a vous
Membre enregistré
44 messages
Posté le 08 août 2019 - 00:49
Bonjour,
Mettre le code ci-dessous dans la section "Affichage d'une ligne de la table"
SELON DateDifference(DateSys(),MaTable.COL_Validité_Abonnement)
CAS < 0 // date Abonnement dépassée
MaTable[MaTable]..CouleurFond=RougeClair

CAS < 6 // reste un délai compris entre 5 à 0 jour
MaTable[MaTable]..CouleurFond=BleuClair

CAS < 16 // reste un délai compris entre 15 à 6 jours
MaTable[MaTable]..CouleurFond=JauneClair

CAS < 31 // reste un délai compris entre 30 à 16 jours
MaTable[MaTable]..CouleurFond=VertClair

AUTRE CAS
MaTable[MaTable]..CouleurFond=CouleurDéfaut
FIN
Membre enregistré
26 messages
Posté le 08 août 2019 - 18:38
Il me dit qu'il y as une erreur
SELON DateDifference (DateSys(),TABLE_Client.COL_Date)
CAS < 0 // date Abonnement dépassée
TABLE_Client[TABLE_Client]..CouleurFond=RougeClair

CAS < 6 // reste un délai compris entre 5 à 0 jour
TABLE_Client[TABLE_Client]..CouleurFond=BleuClair

CAS < 16 // reste un délai compris entre 15 à 6 jours
TABLE_Client[TABLE_Client]..CouleurFond=JauneClair

CAS < 31 // reste un délai compris entre 30 à 16 jours
TABLE_Client[TABLE_Client]..CouleurFond=VertClair

AUTRE CAS
TABLE_Client[TABLE_Client]..CouleurFond=CouleurDéfaut
FIN











Merci a vous
Membre enregistré
1 011 messages
Posté le 08 août 2019 - 20:42
Bonjour, regarde du côté de eyeMagnet comme précisé dans ton autre post traitant du même sujet https://forum.pcsoft.fr/fr-FR/pcsoft.fr.windev/232088-date-couleur/read.awp.
Il me semble aussi que le message d'erreur est explicite. Il suffit d'adapter le format de la colonne ou le code.

--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
26 messages
Posté le 08 août 2019 - 21:52
J'ai avance mes j'ai tous qui et en rouge...





et voila le code
SELON DateHeureDifférence (DateHeureSys(),TABLE_Client.COL_Date)

CAS < 0 // date Abonnement dépassée
TABLE_Client[TABLE_Client]..CouleurFond=RougeClair

CAS < 6 // reste un délai compris entre 5 à 0 jour
TABLE_Client[TABLE_Client]..CouleurFond=BleuClair

CAS < 16 // reste un délai compris entre 15 à 6 jours
TABLE_Client[TABLE_Client]..CouleurFond=JauneClair

CAS < 31 // reste un délai compris entre 30 à 16 jours
TABLE_Client[TABLE_Client]..CouleurFond=VertClair

AUTRE CAS
TABLE_Client[TABLE_Client]..CouleurFond=CouleurDéfaut
FIN


Merci a vous
Membre enregistré
1 011 messages
Posté le 08 août 2019 - 22:13
C'est logique. As tu regardé ce que renvoyait DateHeureDifférence (https://doc.pcsoft.fr/?3027020) en général, et dans ton cas (point d'arrêt+Pas à pas)
Tu compares une chaîne et un entier

Par ailleurs il est préférable d'utiliser CAS 0<*<=5, CAS 5<*<=15 ...
4 est non seulement inférieur à 5, mais aussi à 15, le résultat risque d'être erroné.

--
Il y a peut être plus simple, mais, ça tourne
Message modifié, 08 août 2019 - 22:20
Membre enregistré
44 messages
Posté le 08 août 2019 - 23:19
@Stephane B.

la colonne date client a pour format DateHeure ok
Ne pas utiliser DateHeureDifférence(), mais DateDifférence() comme suit :
SELON DateDifference(DateSys(),Gauche(TABLE_Client.COL_Date),8)

//et le reste du code inchangé.
FIN

D'ailleurs, vous voulez des jours, alors ne pas tenir compte des heures, minutes ... normalement, ça devrait marcher.
Message modifié, 08 août 2019 - 23:24
Membre enregistré
26 messages
Posté le 09 août 2019 - 06:25
erreur sur DateDifference ????










Mercvi a vous
Membre enregistré
1 011 messages
Posté le 09 août 2019 - 06:50
Essaye de comprendre le code.
Il manque une paire de parenthèse.

--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
44 messages
Posté le 09 août 2019 - 13:07
Oups
l'avant dernière parenthèse n'est pas à la bonne place.

Voici la bonne syntaxe
SELON DateDifference(DateSys(),Gauche(TABLE_Client.COL_Date,8))

//et le reste du code inchangé.
FIN
Membre enregistré
26 messages
Posté le 09 août 2019 - 20:28
Super merci ca a marche voila le code complet
SELON DateDifference(DateSys(),Gauche(TABLE_Client.COL_Date,8))
CAS < 0 // date Abonnement dépassée
TABLE_Client[TABLE_Client]..CouleurFond=RougeClair

CAS < 6 // reste un délai compris entre 5 à 0 jour
TABLE_Client[TABLE_Client]..CouleurFond=OrangeClair

CAS < 16 // reste un délai compris entre 15 à 6 jours
TABLE_Client[TABLE_Client]..CouleurFond=JauneClair

CAS < 31 // reste un délai compris entre 30 à 16 jours
TABLE_Client[TABLE_Client]..CouleurFond=VertClair

AUTRE CAS
TABLE_Client[TABLE_Client]..CouleurFond=CouleurDéfaut
FIN

Jai juste un Triangle pourquoi






Encore merci au forum....
Membre enregistré
1 011 messages
Posté le 10 août 2019 - 06:11
Le Warning doit être décrit dans l'onglet débogage (avec le sens interdit.) En passant la souris sur le warning, tu doit avoir sa description.
Tout ça est expliqué dans le manuel d'autoformation.

--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
26 messages
Posté le 11 août 2019 - 10:48
je rencontre un petit problème tous marche très bien mes quand je mes pas de date le programme plante... ????
Pourquoi ????
Il me dit ca
----
Erreur à la ligne 1 du traitement Affichage d'une ligne de TABLE_Client.
Vous avez appelé la fonction DateDifférence.
Date invalide. Le format d'une date est AAAAMMJJ.

----- Informations techniques -----

Projet : Gestion Client

Appel WL :
Traitement de 'Affichage d'une ligne de TABLE_Client' (FEN_TableClients.TABLE_Client), ligne 1, thread 0
Fonction 'DateDifférence', syntaxe 0

Que s'est-il passé ?
Date invalide. Le format d'une date est AAAAMMJJ.

Code erreur : 80134
Niveau : erreur fatale

Dump de l'erreur du module 'wd220std.dll' (22.0.150.6).
Informations de débogage :
Fonction (8,151)
Informations supplémentaires :
EIT_PILEWL :
Affichage d'une ligne de TABLE_Client (FEN_TableClients.TABLE_Client), ligne 1
Clic sur BTN_Modifier (FEN_TableClients.BTN_Modifier), ligne 3
EIT_DATEHEURE : 11/08/2019 10:49:04
EIT_TYPE_WDFILE : <2>
EIT_IDCODE : <21>

------


Merci a vous
Message modifié, 11 août 2019 - 10:50
Membre enregistré
1 011 messages
Posté le 11 août 2019 - 13:47
S'il n'y a aucune date c'est logique, c'est invalide.
A toi de gérer la saisie des données lors de l'enregistrement ou dans l'analyse (saisie obligatoire etc..) et à contrôler la valeur avant l'appel de la fonction.
... Et la grammaire avant de poster.

--
Il y a peut être plus simple, mais, ça tourne
Message modifié, 11 août 2019 - 13:49
Posté le 11 août 2019 - 16:27
Stephane B. a écrit :
je rencontre un petit problème tous marche très bien mes quand je mes pas de date le programme plante... ????
Pourquoi ????


Ma voiture marche très bien.
Quand je met pas d'essence, ça marche plus. Pourquoi ?

Je n'ai pas fait sérieusement le cours d'autoformation.
Je galère avec windev.
Pourquoi ?
Membre enregistré
26 messages
Posté le 11 août 2019 - 18:20
Merci pour l'info mais tu as une petite ligne de code pour ça.

Merci
Posté le 12 août 2019 - 13:02
Il y a une instruction windev qui permet de tester la validité d'une date.
Tu cherches un peu ou tu préfères qu'on le fasse à ta place
Membre enregistré
1 011 messages
Posté le 12 août 2019 - 13:56
J'opte pour la 2° solution.
Il est étonnant qu'il ne nous ait pas encore envoyé le liens pour récupérer son code en demandant de terminer son boulot.

--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
26 messages
Posté le 12 août 2019 - 22:34
Merci pour vos réponses sympas on n’a peut-être pas tous votre niveau de développement sur WD. Je fais ma première application avec WD j'ai regardé plusieurs autoformations que j’ai trouvées sur le net plusieurs tuto que j’ai trouvée sur Youtube j'ai tout fini la seule chose que personne n’explique c'est les dates pas de tuto pas d'exemple je ne trouve rien sur les dates.
Membre enregistré
44 messages
Posté le 12 août 2019 - 23:17
Membre enregistré
1 011 messages
Posté le 13 août 2019 - 05:26
Stephane B. a écrit :
> je ne trouve rien sur les dates.
Tout est dans le manuel d'auto formation.
Après le système d'aide de Windev est très bien conçu. A la fin de chaque page tu trouve d'autres référence qui traitent du même sujet. Il suffit de fouiller un peu.

Dans ton cas :
Tu as un problème avec DateDifférence. F1, la fonction est décrite avec des exemples.
Et il y a un paragraphe remarques dont voici la première ligne:
La validité des dates passées en paramètre est vérifiée. Un message est affiché en cas de date invalide. Il est possible de tester la validité d'une date avec la fonction DateValide.
Il y a un lien vers DateValide.

Au besoin, on va jusqu'en bas
Et on trouve le paragraphe "Voir aussi".

Si on ne trouve pas son bonheur avec ça...

.

--
Il y a peut être plus simple, mais, ça tourne
Message modifié, 13 août 2019 - 05:38
Membre enregistré
26 messages
Posté le 13 août 2019 - 19:24
Bonjour
J'ai encore une petite question elle est peut-être bête dans ma colonne date je peux écrire un texte à la place de la date...

Merci a vous.
Posté le 14 août 2019 - 16:36
Au lieu de poser la question et attendre ...
Essaye !
Tu vas vite comprendre
Membre enregistré
26 messages
Posté le 15 août 2019 - 07:59
bonjour Christian
Je sais qu'écrire directement dans un champ date ne marche pas je veux juste savoir s'il existe une fonction ou un code pour écrire sur une cellule date
Merci
Membre enregistré
44 messages
Posté le 15 août 2019 - 21:35
DateDifférence(<Date de début> , <Date de fin>)
La validité des dates passées en paramètre est vérifiée. Un message est affiché en cas de date invalide (Date de début ou Date de fin)
par exemple Date de fin = à blanc , c'est une date invalide.

lorsque tu ajoutes dans la table; une ligne à blanc, pour faire la saisie, la colonne "Date de fin" est à blanc (vide) et là, l'erreur de date invalide est générée, du fait du code "à chaque affichage d'une ligne de la table" qui contient la fonction "DateDifférence".

Pour régler ce problème, le code actuel "des couleurs de la table", que vous voulez garder, devra être soumis à une condition, soit le test de validité de la date (colonne Date) avec la fonction DateHeureValide(). Il est à noter que DateHeureValide() renvoie le résultat : Vrai ou Faux.
https://doc.pcsoft.fr/fr-FR/index.awp?1000020940
Message modifié, 15 août 2019 - 21:43
Membre enregistré
26 messages
Posté le 04 septembre 2019 - 21:11
Bonjour a tous je cherche toujours une solution et pourtant je cherche.
Quand je fait ça j'ai plus de couleur sur ma table mais j'arrive a saisir dans ma ligne DATE
SI DateValide(TABLE_Client.COL_Date) ALORS

SELON DateDifference (DateSys(),Gauche(TABLE_Client.COL_Date,8))

CAS < 0 // date Abonnement dépassée
TABLE_Client[TABLE_Client]..CouleurFond=RougeClair

CAS < 6 // reste un délai compris entre 5 à 0 jour
TABLE_Client[TABLE_Client]..CouleurFond=OrangeClair

CAS < 16 // reste un délai compris entre 15 à 6 jours
TABLE_Client[TABLE_Client]..CouleurFond=JauneFoncé

CAS < 31 // reste un délai compris entre 30 à 16 jours
TABLE_Client[TABLE_Client]..CouleurFond=VertClair

AUTRE CAS
TABLE_Client[TABLE_Client]..CouleurFond=CouleurDéfaut
FIN
FIN

Quand je mets pas la ligne de code
SI DateValide(TABLE_Client.COL_Date) ALORS

j'ai les couleurs mais j'arrive pas a saisir dans la ligne DATE...

Help
Membre enregistré
44 messages
Posté le 05 septembre 2019 - 00:01
Bonjour,

Quelle version windev utilisez-vous ?
Membre enregistré
26 messages
Posté le 05 septembre 2019 - 06:35
midou23175 a écrit :
Bonjour,

Quelle version windev utilisez-vous ?


22
Membre enregistré
1 011 messages
Posté le 05 septembre 2019 - 10:33
Qu'entend tu par "j'arrive pas" ?

--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
44 messages
Posté le 05 septembre 2019 - 17:29
une colonne de type date permet de manipuler (saisie, affichage) des données au format : date "AAAAMMJJ" ou date heure "AAAAMMJJHHmmSS"

lors du contrôle de la validité d'une date, on utilise les fonctions :
DateValide() pour tester une date au format "AAAAMMJJ"
et DateHeureValide() pour tester une date au format "AAAAMMJJHHmmss"

Vous avez mis : SI DateValide(TABLE_Client.COL_Date) ALORS
ça ne marche pas ... tout simplement parce que colonne Date est au format de saisie "JJMMAAAAHHmmss"

tester la 2ème fonction en mettant : SI DateHeureValide(TABLE_Client.COL_Date) ALORS
ça devrait marcher. Pourquoi ça marche, lire l'aide DateValide() et DateHeureValide()

Bon dev
Membre enregistré
26 messages
Posté le 05 septembre 2019 - 18:11
midou23175 a écrit :
une colonne de type date permet de manipuler (saisie, affichage) des données au format : date "AAAAMMJJ" ou date heure "AAAAMMJJHHmmSS"

lors du contrôle de la validité d'une date, on utilise les fonctions :
DateValide() pour tester une date au format "AAAAMMJJ"
et DateHeureValide() pour tester une date au format "AAAAMMJJHHmmss"

Vous avez mis : SI DateValide(TABLE_Client.COL_Date) ALORS
ça ne marche pas ... tout simplement parce que colonne Date est au format de saisie "JJMMAAAAHHmmss"

tester la 2ème fonction en mettant : SI DateHeureValide(TABLE_Client.COL_Date) ALORS
ça devrait marcher. Pourquoi ça marche, lire l'aide DateValide() et DateHeureValide()

Bon dev



Super merci ca marche........