PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV (earlier versions) → [WD14] Couleur ligne de table
[WD14] Couleur ligne de table
Started by Christophe, Feb., 27 2010 9:13 PM - 46 replies
Posted on February, 27 2010 - 9:13 PM
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 !
Posted on February, 28 2010 - 12:33 PM
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
Posted on February, 28 2010 - 12:34 PM
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
Posted on February, 28 2010 - 5:54 PM
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
Posted on March, 08 2010 - 6:19 PM
merci pour votre aide !
petit problème, la fonction "pour toute ligne..." génère une erreur.(erreur de syntaxe) ?
Posted on March, 08 2010 - 7:01 PM
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!
Posted on March, 08 2010 - 7:10 PM
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!
Posted on March, 09 2010 - 12:33 PM
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
Posted on March, 09 2010 - 2:01 PM
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!

Posted on March, 09 2010 - 2:26 PM
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
Posted on March, 09 2010 - 6:19 PM
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 ?
Posted on March, 10 2010 - 12:05 AM
ça marche toujours pas.
c'est déroutant!
Posted on March, 10 2010 - 9:52 AM
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!


Posted on March, 20 2010 - 1:53 AM
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!



Posted on March, 22 2010 - 9:41 AM
"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!




Posted on March, 01 2018 - 1:41 AM
Super et MERCI la méthode de fonctionne Bernard GINET
Registered member
26 messages
Posted on August, 07 2019 - 8:47 PM
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
Registered member
46 messages
Popularité : -1 (9 votes)
Posted on August, 08 2019 - 12:49 AM
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
Registered member
26 messages
Posted on August, 08 2019 - 6:38 PM
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
Registered member
3,878 messages
Popularité : +227 (347 votes)
Posted on August, 08 2019 - 8:42 PM
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
Registered member
26 messages
Posted on August, 08 2019 - 9:52 PM
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
Registered member
3,878 messages
Popularité : +227 (347 votes)
Posted on August, 08 2019 - 10:13 PM
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 modified, August, 08 2019 - 10:20 PM
Registered member
46 messages
Popularité : -1 (9 votes)
Posted on August, 08 2019 - 11:19 PM
@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 modified, August, 08 2019 - 11:24 PM
Registered member
26 messages
Posted on August, 09 2019 - 6:25 AM
erreur sur DateDifference ????










Mercvi a vous
Registered member
3,878 messages
Popularité : +227 (347 votes)
Posted on August, 09 2019 - 6:50 AM
Essaye de comprendre le code.
Il manque une paire de parenthèse.

--
Il y a peut être plus simple, mais, ça tourne
Registered member
46 messages
Popularité : -1 (9 votes)
Posted on August, 09 2019 - 1:07 PM
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
Registered member
26 messages
Posted on August, 09 2019 - 8:28 PM
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....
Registered member
3,878 messages
Popularité : +227 (347 votes)
Posted on August, 10 2019 - 6:11 AM
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
Registered member
26 messages
Posted on August, 11 2019 - 10:48 AM
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 modified, August, 11 2019 - 10:50 AM
Registered member
3,878 messages
Popularité : +227 (347 votes)
Posted on August, 11 2019 - 1:47 PM
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 modified, August, 11 2019 - 1:49 PM
Posted on August, 11 2019 - 4:27 PM
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 ?
Registered member
26 messages
Posted on August, 11 2019 - 6:20 PM
Merci pour l'info mais tu as une petite ligne de code pour ça.

Merci
Posted on August, 12 2019 - 1:02 PM
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
Registered member
3,878 messages
Popularité : +227 (347 votes)
Posted on August, 12 2019 - 1:56 PM
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
Registered member
26 messages
Posted on August, 12 2019 - 10:34 PM
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.
Registered member
46 messages
Popularité : -1 (9 votes)
Posted on August, 12 2019 - 11:17 PM
Registered member
3,878 messages
Popularité : +227 (347 votes)
Posted on August, 13 2019 - 5:26 AM
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 modified, August, 13 2019 - 5:38 AM
Registered member
26 messages
Posted on August, 13 2019 - 7:24 PM
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.
Posted on August, 14 2019 - 4:36 PM
Au lieu de poser la question et attendre ...
Essaye !
Tu vas vite comprendre
Registered member
26 messages
Posted on August, 15 2019 - 7:59 AM
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
Registered member
46 messages
Popularité : -1 (9 votes)
Posted on August, 15 2019 - 9:35 PM
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 modified, August, 15 2019 - 9:43 PM
Registered member
26 messages
Posted on September, 04 2019 - 9:11 PM
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
Registered member
46 messages
Popularité : -1 (9 votes)
Posted on September, 05 2019 - 12:01 AM
Bonjour,

Quelle version windev utilisez-vous ?
Registered member
26 messages
Posted on September, 05 2019 - 6:35 AM
midou23175 a écrit :
Bonjour,

Quelle version windev utilisez-vous ?


22
Registered member
3,878 messages
Popularité : +227 (347 votes)
Posted on September, 05 2019 - 10:33 AM
Qu'entend tu par "j'arrive pas" ?

--
Il y a peut être plus simple, mais, ça tourne
Registered member
46 messages
Popularité : -1 (9 votes)
Posted on September, 05 2019 - 5:29 PM
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
Registered member
26 messages
Posted on September, 05 2019 - 6:11 PM
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........