PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV (versões anteriores) → [WD14] Couleur ligne de table
[WD14] Couleur ligne de table
Iniciado por Christophe, fev., 27 2010 9:13 PM - 46 respostas
Publicado em fevereiro, 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 !
Publicado em fevereiro, 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
Publicado em fevereiro, 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
Publicado em fevereiro, 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
Publicado em março, 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) ?
Publicado em março, 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!
Publicado em março, 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!
Publicado em março, 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
Publicado em março, 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!

Publicado em março, 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
Publicado em março, 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 ?
Publicado em março, 10 2010 - 12:05 AM
ça marche toujours pas.
c'est déroutant!
Publicado em março, 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!


Publicado em março, 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!



Publicado em março, 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!




Publicado em março, 01 2018 - 1:41 AM
Super et MERCI la méthode de fonctionne Bernard GINET
Membro registado
26 mensagems
Publicado em agosto, 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
Membro registado
46 mensagems
Popularité : -1 (9 votes)
Publicado em agosto, 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
Membro registado
26 mensagems
Publicado em agosto, 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
Membro registado
3.844 mensagems
Popularité : +227 (347 votes)
Publicado em agosto, 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
Membro registado
26 mensagems
Publicado em agosto, 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
Membro registado
3.844 mensagems
Popularité : +227 (347 votes)
Publicado em agosto, 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
Mensagem modificada, agosto, 08 2019 - 10:20 PM
Membro registado
46 mensagems
Popularité : -1 (9 votes)
Publicado em agosto, 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.
Mensagem modificada, agosto, 08 2019 - 11:24 PM
Membro registado
26 mensagems
Publicado em agosto, 09 2019 - 6:25 AM
erreur sur DateDifference ????










Mercvi a vous
Membro registado
3.844 mensagems
Popularité : +227 (347 votes)
Publicado em agosto, 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
Membro registado
46 mensagems
Popularité : -1 (9 votes)
Publicado em agosto, 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
Membro registado
26 mensagems
Publicado em agosto, 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....
Membro registado
3.844 mensagems
Popularité : +227 (347 votes)
Publicado em agosto, 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
Membro registado
26 mensagems
Publicado em agosto, 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
Mensagem modificada, agosto, 11 2019 - 10:50 AM
Membro registado
3.844 mensagems
Popularité : +227 (347 votes)
Publicado em agosto, 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
Mensagem modificada, agosto, 11 2019 - 1:49 PM
Publicado em agosto, 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 ?
Membro registado
26 mensagems
Publicado em agosto, 11 2019 - 6:20 PM
Merci pour l'info mais tu as une petite ligne de code pour ça.

Merci
Publicado em agosto, 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
Membro registado
3.844 mensagems
Popularité : +227 (347 votes)
Publicado em agosto, 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
Membro registado
26 mensagems
Publicado em agosto, 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.
Membro registado
46 mensagems
Popularité : -1 (9 votes)
Publicado em agosto, 12 2019 - 11:17 PM
Membro registado
3.844 mensagems
Popularité : +227 (347 votes)
Publicado em agosto, 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
Mensagem modificada, agosto, 13 2019 - 5:38 AM
Membro registado
26 mensagems
Publicado em agosto, 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.
Publicado em agosto, 14 2019 - 4:36 PM
Au lieu de poser la question et attendre ...
Essaye !
Tu vas vite comprendre
Membro registado
26 mensagems
Publicado em agosto, 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
Membro registado
46 mensagems
Popularité : -1 (9 votes)
Publicado em agosto, 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
Mensagem modificada, agosto, 15 2019 - 9:43 PM
Membro registado
26 mensagems
Publicado em setembro, 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
Membro registado
46 mensagems
Popularité : -1 (9 votes)
Publicado em setembro, 05 2019 - 12:01 AM
Bonjour,

Quelle version windev utilisez-vous ?
Membro registado
26 mensagems
Publicado em setembro, 05 2019 - 6:35 AM
midou23175 a écrit :
Bonjour,

Quelle version windev utilisez-vous ?


22
Membro registado
3.844 mensagems
Popularité : +227 (347 votes)
Publicado em setembro, 05 2019 - 10:33 AM
Qu'entend tu par "j'arrive pas" ?

--
Il y a peut être plus simple, mais, ça tourne
Membro registado
46 mensagems
Popularité : -1 (9 votes)
Publicado em setembro, 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
Membro registado
26 mensagems
Publicado em setembro, 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........