Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Contrôle validité de date | |
| | Auteur | Message |
---|
lepetitmarocain
Nombre de messages : 341 Age : 82 Localisation : Région Parisienne (à mon grand désespoir) Date d'inscription : 04/07/2018
| Sujet: Contrôle validité de date Sam 6 Avr 2019 - 9:30 | |
| Bonjour à tous. Je voudrais savoir s'il existe une commande qui contrôle si une date saisie est valide. Genre ISDATE dans d'autres language. Peut être quelqu'un d'entre vous a développé un sous programme a insérer dans celui que l'on écrit? Merci par avance | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Contrôle validité de date Sam 6 Avr 2019 - 10:16 | |
| Bonjour Lepetitmarocain ! - Citation :
- s'il existe une commande qui contrôle si une date saisie est valide
La commande souhaitée n'existe pas en Panoramic. En 100% Panoramic, tu peux t'inspirer, voire utiliser le programme de Bignono/Nardo26 >> ici << Et bien sûr, tu as la DDL de Klaus qui permet ce contrôle. Regarde dans l'aide de KGF, la fonction MaskEdit. res% = DLL_call6("MaskEdit",f%,obj%, p1%,p2%,p3%,p4%)
Bonne programmation !
Dernière édition par Marc le Dim 7 Avr 2019 - 8:31, édité 1 fois | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 6 Avr 2019 - 18:03 | |
| Valide par rapport à quoi ? C'est à toi de faire la fonction en fonction de tes critères. | |
| | | Jack Admin
Nombre de messages : 2395 Date d'inscription : 28/05/2007
| Sujet: Re: Contrôle validité de date Sam 6 Avr 2019 - 18:56 | |
| Lepetitmarocain a ouverts 3 posts sur le même sujet. J'en ai fusionné deux et supprimé le troisième. _________________ username : panoramic@jack-panoramic password : panoramic123 | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Contrôle validité de date Sam 6 Avr 2019 - 20:12 | |
| Salut tout le monde. J’ai publié un code Panoramic contenant un script VBS qui répond parfaitement à la demande. C’est iciVoici un rappel du code en question : - Code:
-
rem ============================================================================ rem Fonction pour vérifier si une date est valide rem ============================================================================
message IsDateValide("32/02/2018") : ' <--- 0 message IsDateValide("10/08/1950") : ' <--- 1 message IsDateValide("janvier 18,2014") : ' <--- 1 message IsDateValide("01-01-01") : ' <--- 1
end rem ============================================================================ ' Script VBS vérifiant la validité d'une date ' La fonction IsDateValide(d$) retourne la valeur ' 1 si le paramètre transmis d$ représente une date valide, ' sinon elle retourne 0 ' ------------------------------------------------------------------------------ ' Les différentes formes de dates suivantes sont acceptées ' Exemples d'appel : ' IsDateValide("32/02/2014") : ' ---> 0 ' IsDateValide("29/02/2016") : ' ---> 1 ' IsDateValide("29/02/2014") : ' ---> 0 ' IsDateValide("janvier 18,2014") : ' ---> 1 ' IsDateValide("18 janvier 2014") : ' ---> 1 ' IsDateValide("01-01-01") : ' ---> 1 ' IsDateValide("2014, Février, 10") : ' ---> 1 ' IsDateValide("18,01,2014") : ' ---> 1 ' ------------------------------------------------------------------------------ FNC IsDateValide(d$) dim_local f$,retour$,resultat$,g$ f$ = "IsDate.vbs" : ' Fichier temporaire contenant le script retour$ = "retour.txt" : ' Fichier temporaire contenant le résultat de la fonction g$ = chr$(34) : ' caractère guillemet ' Enregistrer le script dans le fichier temporaire f$ FILE_OPEN_WRITE 9999, f$ file_writeln 9999, "DIM bValeur,fso,MyFile" : ' debut du script file_writeln 9999, "Set fso = CreateObject("+g$+"Scripting.FileSystemObject"+g$+")" file_writeln 9999, "Set MyFile = fso.CreateTextFile("+g$+retour$+g$+", True)" file_writeln 9999, "bValeur = IsDate("+g$+d$+g$+")" file_writeln 9999, "MyFile.WriteLine(bValeur)" file_writeln 9999, "MyFile.Close" : ' Fin du script FILE_CLOSE 9999 : ' Fin de l'enregistrement EXECUTE_WAIT f$ : ' Exécution du script FILE_DELETE f$ : ' supprimer le fichier du script file_open_read 9999,retour$ : ' ouvrir le fichier contenant la sortie du script file_readln 9999,resultat$ : ' Recuperer la valeur de la fonction file_close 9999 : ' Fermer le fichier file_delete retour$ : ' Supprimer le fichier temporaire if resultat$ = "True" then RESULT 1 : else : RESULT 0 : ' Résultat de la fonction END_FNC rem ============================================================================
| |
| | | lepetitmarocain
Nombre de messages : 341 Age : 82 Localisation : Région Parisienne (à mon grand désespoir) Date d'inscription : 04/07/2018
| Sujet: Controle validité de date Dim 7 Avr 2019 - 15:56 | |
| Bonjour à tous.
Merci pour les réponses à cette demande
Merci Papydall pour ta réponse.
Je ne sais pas comment passer la date à, ton sous programme, sachant que les dates à contrôler sont des dates saisie dans un
KGFGRID et que je contrôle avant de mettre à jour
Merci pour ta prochaine réponse
| |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Contrôle validité de date Dim 7 Avr 2019 - 19:01 | |
| Salut tout le monde. Du Vieux Tunisien au Petit Marocain Personnellement je n’ai jamais utilisé KGFGRID , mais je te propose ce code pour démontrer comment contrôler une date saisie dans un objet quelconque (un EDIT pour cet exemple). C'est à toi de l'adapter à tes besoins. - Code:
-
rem ============================================================================ rem Exemple d’utilisation de la fonction IsDateValide(d$) rem ============================================================================ label Verif top 0,100: left 0,200 : height 0,200 alpha 10 : font_bold 10 : top 10,50 : left 10,50 : caption 10,"Saisir une date" edit 20 : font_bold 20 : top 20,50 : left 20,150 : set_focus 20 button 30 : font_bold 30 : top 30,45 : left 30,300 : width 30,150 caption 30,"Vérifier la date" : on_click 30,verif end rem ============================================================================ ' Vérifier la validité de la date saisie dans l'EDIT Verif: if IsDateValide(text$(20)) = 0 message "La date saisie est non valide !!!" + chr$(13) + "Veuillez recommencer SVP !" text 20,"" : set_focus 20 else message "Validation de la date : OK" end_if return rem ============================================================================ ' Script VBS vérifiant la validité d'une date ' La fonction IsDateValide(d$) retourne la valeur ' 1 si le paramètre transmis d$ représente une date valide, ' sinon elle retourne 0 ' ------------------------------------------------------------------------------ ' Les différentes formes de dates suivantes sont acceptées ' Exemples d'appel : ' IsDateValide("32/02/2014") : ' ---> 0 ' IsDateValide("29/02/2016") : ' ---> 1 ' IsDateValide("29/02/2014") : ' ---> 0 ' IsDateValide("janvier 18,2014") : ' ---> 1 ' IsDateValide("18 janvier 2014") : ' ---> 1 ' IsDateValide("01-01-01") : ' ---> 1 ' IsDateValide("2014, Février, 10") : ' ---> 1 ' IsDateValide("18,01,2014") : ' ---> 1 FNC IsDateValide(d$) dim_local f$,retour$,resultat$,g$ f$ = "IsDate.vbs" : ' Fichier temporaire contenant le script retour$ = "retour.txt" : ' Fichier temporaire contenant le résultat de la fonction g$ = chr$(34) : ' caractère guillemet ' Enregistrer le script dans le fichier temporaire f$ FILE_OPEN_WRITE 9999, f$ file_writeln 9999, "DIM bValeur,fso,MyFile" : ' debut du script file_writeln 9999, "Set fso = CreateObject("+g$+"Scripting.FileSystemObject"+g$+")" file_writeln 9999, "Set MyFile = fso.CreateTextFile("+g$+retour$+g$+", True)" file_writeln 9999, "bValeur = IsDate("+g$+d$+g$+")" file_writeln 9999, "MyFile.WriteLine(bValeur)" file_writeln 9999, "MyFile.Close" : ' Fin du script FILE_CLOSE 9999 : ' Fin de l'enregistrement EXECUTE_WAIT f$ : ' Exécution du script FILE_DELETE f$ : ' supprimer le fichier du script file_open_read 9999,retour$ : ' ouvrir le fichier contenant la sortie du script file_readln 9999,resultat$ : ' Recuperer la valeur de la fonction file_close 9999 : ' Fermer le fichier file_delete retour$ : ' Supprimer le fichier temporaire if resultat$ = "True" then RESULT 1 : else : RESULT 0 : ' Résultat de la fonction END_FNC rem ============================================================================
- Date Valide:
- Date non valide:
| |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Contrôle validité de date Dim 7 Avr 2019 - 19:20 | |
| Bonsoir à tous ! - Papydall a écrit:
- J’ai publié un code Panoramic contenant un script VBS...
Oups ! Pardonne-moi Papydall, lors de ma première réponse j'ai oublié que tu avais partagé ce code. Ton code fonctionne parfaitement bien, mais... lors de la saisie d'une date au format mm/jj/aaaa, il nous dit aussi que c'est correct. Ainsi, il est possible de taper par exemple 12/29/2001 sans avoir de message d'erreur. | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Contrôle validité de date Lun 8 Avr 2019 - 5:39 | |
| Merci Marc pour la remarque ! Le script considère comme valide une date sous les formes suivantes (c'est le comportement normal de la fonction VBS IsDate) : jj/mm/aaaa jj-mm-aaaa jj,mm,aaaa jj mm aaaa mm/jj/aaaa etc. aaaa jj mm etc. Bon, j’avoue que ça peut poser problème avec la notation anglaise mm/jj/aaaa contrairement de la notation française jj/mm/aaaa. J'ai modifié le code pour tenir compte de ces différents formats de date. Désormais, le code accepte seulement les formats suivants : JJ/MM/AAAA JJ MM AAAA JJ,MM,AAAA Il accepte aussi l’année sur 1, 2, 3 ou 4 chiffres, tandis que le jour et le mois, ils doivent être saisis sur deux chiffres chacun. - Code:
-
rem ============================================================================ rem Exemple d’utilisation de la fonction IsDateValide(d$) rem ============================================================================ label Verif dim err$ : err$ = "La date saisie est non valide !!!" + chr$(13) + "Veuillez recommencer SVP !" dim t$ top 0,100: left 0,200 : height 0,200 alpha 10 : font_bold 10 : top 10,50 : left 10,10 t$ = "Saisir une date" + chr$(13) + "sous forme : JJ/MM/AAAA" + chr$(13) t$ = t$ + string$(18," ") + "JJ MM AAAA" + chr$(13) t$ = t$ + string$(18," ") + "JJ,MM,AAAA" caption 10,t$ edit 20 : font_bold 20 : top 20,55 : left 20,170 : set_focus 20 button 30 : font_bold 30 : top 30,50 : left 30,300 : width 30,150 caption 30,"Vérifier la date" : on_click 30,verif end rem ============================================================================ ' Vérifier la validité de la date saisie dans l'EDIT Verif: if (numeric(mid$(text$(20),4,2)) = 0) message err$ : text 20,"" : set_focus 20 : return end_if if (val(mid$(text$(20),4,2)) > 12) or IsDateValide(text$(20)) = 0 message err$ : text 20,"" : set_focus 20 else message "Validation de la date : OK" end_if return rem ============================================================================ ' Script VBS vérifiant la validité d'une date ' La fonction IsDateValide(d$) retourne la valeur ' 1 si le paramètre transmis d$ représente une date valide, ' sinon elle retourne 0 ' ------------------------------------------------------------------------------ ' Les différentes formes de dates suivantes sont acceptées ' Exemples d'appel : ' IsDateValide("32/02/2014") : ' ---> 0 ' IsDateValide("29/02/2016") : ' ---> 1 ' IsDateValide("29/02/2014") : ' ---> 0 ' IsDateValide("12/29/2001") : ' ---> 0 ' IsDateValide("01-01-01") : ' ---> 1 ' IsDateValide("18,01,2014") : ' ---> 1 FNC IsDateValide(d$) dim_local f$,retour$,resultat$,g$ f$ = "IsDate.vbs" : ' Fichier temporaire contenant le script retour$ = "retour.txt" : ' Fichier temporaire contenant le résultat de la fonction g$ = chr$(34) : ' caractère guillemet ' Enregistrer le script dans le fichier temporaire f$ FILE_OPEN_WRITE 9999, f$ file_writeln 9999, "DIM bValeur,fso,MyFile" : ' debut du script file_writeln 9999, "Set fso = CreateObject("+g$+"Scripting.FileSystemObject"+g$+")" file_writeln 9999, "Set MyFile = fso.CreateTextFile("+g$+retour$+g$+", True)" file_writeln 9999, "bValeur = IsDate("+g$+d$+g$+")" file_writeln 9999, "MyFile.WriteLine(bValeur)" file_writeln 9999, "MyFile.Close" : ' Fin du script FILE_CLOSE 9999 : ' Fin de l'enregistrement EXECUTE_WAIT f$ : ' Exécution du script FILE_DELETE f$ : ' supprimer le fichier du script file_open_read 9999,retour$ : ' ouvrir le fichier contenant la sortie du script file_readln 9999,resultat$ : ' Recuperer la valeur de la fonction file_close 9999 : ' Fermer le fichier file_delete retour$ : ' Supprimer le fichier temporaire if resultat$ = "True" then RESULT 1 : else : RESULT 0 : ' Résultat de la fonction END_FNC rem ============================================================================
| |
| | | lepetitmarocain
Nombre de messages : 341 Age : 82 Localisation : Région Parisienne (à mon grand désespoir) Date d'inscription : 04/07/2018
| Sujet: controle de validité de date Mar 9 Avr 2019 - 15:44 | |
| Bonjour à tous
Merci Papydall pour ton exemple, que j'ai pu adapter à mon problème.
Bonne soirée sous le soleil Tunisien
| |
| | | Contenu sponsorisé
| Sujet: Re: Contrôle validité de date | |
| |
| | | | Contrôle validité de date | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |