vendredi, mars 16, 2007

Combo : clic sur la flèche

Comment afficher dans une combo, la liste des bases disponibles sur un serveur Hyper File, au clic sur la flèche (Ouverture de la combo) de la combo ?

Il faut utiliser l'événement : WM_NCLBUTTONDOWN.


Ne pas oublier de mettre EXTERN "WinConst.wl" dans la déclaration globale de la fenêtre.


Branchement de l'évènement : (Code global de la fenêtre)

Evénement("RemplitComboBaseHF","COMBO_Base",WM_NCLBUTTONDOWN)


Création de la procédure "RemplitComboBaseHF" :

PROCEDURE RemplitComboBaseHF()

// Ouverture de la connexion

SI PAS HOuvreConnexion("Moi",SAI_LoginHFCS,SAI_MdpHFCS,SAI_Serveur+":"+SAI_Port,"",hAccèsHFClientServeur) ALORS

Erreur()

SINON

// Récupération de la liste des bases disponibles

ListeBase est une chaîne = HListeBaseDeDonnées("Moi",hLstNormal)

ListeSupprimeTout(COMBO_Base)

s est une chaîne

// Ajout des bases dans la combo

POUR TOUTE CHAINE s DE ListeBase SEPAREE PAR TAB

ListeAjoute(COMBO_Base,s)

FIN

// Sélection de la première base.

SI ListeOccurrence(COMBO_Base) > 0 ALORS ListeSelectPlus(COMBO_Base,1)

HFermeConnexion("Moi")

FIN

vendredi, mars 09, 2007

Nouveau sur le Site Progwdm

Une nouvelle version de l'utilitaire WD Véhicule est disponible.
Développé en version 11 de WinDev Mobile, l'utilitaire s'enrichit d'un clavier virtuel à grosse touche, permettant la saisie sans le stylet, et gère maintenant le véhicule bi-carburation.
La mise à jour de application est automatique. Tous les 7 jours au lancement, WD Véhicule vérifie si une mise à jour est disponible.

[En savoir plus..]

Suggestion, signalement bug : progwdm@free.fr

vendredi, mars 02, 2007

VérifieExpressionRegulière (bis)

Dans un précédent poste, j'avais déjà abordé l'utilisation de la fonction VérifieExpressionRégulière.


Récemment, j'ai eu l'occasion de l'utiliser avec récupération d'éléments dans des variables.


Le but : vérifier un format de Date comme :


Tue, 11 Apr 2006 18:25:09 +0200

ou

Thu, 1 Mar 2007 04:12:26 +0100 (CET)


Etape par étape :


Chaine / Format

Chaine

Expression régulière

Commentaires

Tue,

[A-Za-z]{3,3}[,]



[ ]*

Il peut y avoir 1 à plusieurs espaces

11 Apr 2006

([0-9]{1,2}) ([A-Za-z]{3,3}) ([0-9]{4,4})


18:25:09

([0-9]{2,2}[:][0-9]{2,2}[:][0-9]{2,2})


+0200

[\+][0-9]{4,4}



[ ]*


(CET)

[\(]*[A-Z]*[\)]*

* siginifie 0 ou plusieurs fois


Les parenthèses en permettent de définir des parties de l'expression régulière que l'on veut extraire.

Dans ce cas, on peut vérifier et récupérer la date et l'heure en 1 opération.

Il faut ajouter des parenthèses dans l'expression régulière. Ce qui donne au final :


[A-Za-z]{3,3}[,][ ]*([0-9]{1,2}) ([A-Za-z]{3,3}) ([0-9]{4,4}) ([0-9]{2,2}[:][0-9]{2,2}[:][0-9]{2,2}) [\+][0-9]{4,4}[ ]*[\(]*[A-Z]*[\)]*


Ainsi voici le code obtenu :


sJour,sMois,sAnnée,sheure,sDateAVerif sont des chaînes

sDateAVerif = "Tue, 11 Apr 2006 18:25:09 +0200"

SI PAS VérifieExpressionRégulière(sDateAVerif ,"[A-Za-z]{3,3}[,][ ]*([0-9]{1,2}) ([A-Za-z]{3,3}) ([0-9]{4,4}) ([0-9]{2,2}[:][0-9]{2,2}[:][0-9]{2,2}) [\+][0-9]{4,4}[ ]*[\(]*[A-Z]*[\)]*",sJour,sMois,sAnnée,sheure) ALORS

Info("Incorrect")

SINON

Info("Correct",sJour+"/"+sMois+"/"+sAnnée,sheure)

FIN


PS : Comme dirait un vieil ami (très vieux!), lorsqu'on manipule les expressions régulières, il faut un fenêtre de test avec un champ en taille 24. Ainsi on peut voir clairement l'expression régulière.