Problème avec un champ dans windev
luckydu43 Messages postés 3985 Date d'inscription vendredi 9 janvier 2015 Statut Membre Dernière intervention 23 décembre 2024 - 30 août 2024 à 09:21
- Problème avec un champ dans windev
- Télécharger windev 20 complet gratuit - Forum Windev
- Où et comment télécharger WINDEV gratuitement ✓ - Forum Windev
- Windev decompiler - Forum VB / VBA
- Autoformation windev 25 pdf ✓ - Forum Windev
- Windev combo valeur affichée - Forum Windev
2 réponses
Modifié le 27 août 2024 à 14:01
Bonjour,
A lire, le cas me parait simple :
- Transformer la casse des 2 valeurs
- Concaténer
- Stocker dans une variable "Sai_nomcomplet"
Voici un code en Windev:
// Variables pour le nom et le prénom, remplace par tes variables nom et prénom de base sNom est une chaîne = "LEDRU-ROLIN" sPrenom est une chaîne = "jean-baptiste" // Mets le nom en majuscules sNom = Majuscule(sNom) // Mets la première lettre du prénom en majuscule et le reste en minuscule sPrenom = PremièreLettreMajuscule(sPrenom) // Concatène le nom et le prénom avec un espace entre les deux Sai_nomcomplet = sNom + " " + sPrenom // Ici ça affiche le résultat, modifie pour l'afficher à l'écran Info(Sai_nomcomplet)
Dans le cas où cette fois on parle d'une SAISIE :
JE pars du principe que la saisie des nom et prénom est séparée par un espace.
Auquel cas, qu'importe les tirets, tant qu'il y a un espace je gère.
Le process est similaire à au-dessus :
- Déconcaténer en utilisant la valeur espace
- En l'absence d'espace, considérer qu'il ne s'agit que du nom
- Transformer la casse des 2 valeurs
- Reconcaténer ou utiliser ces 2 valeurs
// Récupérer la saisie sSaisie est une chaîne = Sai_nomcomplet // Déconcaténer en Nom et Prénom sNom est une chaîne = "" sPrenom est une chaîne = "" iEspace est un entier = Position(sSaisie, " ") SI iEspace> 0 ALORS sNom = ExtraitChaîne(sSaisie, 1, iEspace-1) sPrenom = ExtraitChaîne(sSaisie, iEspace+1, Longueur(sSaisie)) SINON sNom = sSaisie // Pas de prénom, juste le nom FIN // Mettre le nom en majuscules (gère les tirets) sNom = MaJuscule(sNom, vrai) // Si un prénom existe, mettre la première lettre du prénom en majuscule SI sPrenom <> "" ALORS sPrenom = MaJuscule(PremièreLettre(sPrenom)) + Milieu(sPrenom, 2) FIN // reconcaténer si besoin Sai_nomcomplet = sNom + " " + sPrenom
Tenez au jus !
29 août 2024 à 23:00
Bonjour, merci pour votre réactivité, malheureusement, " PremièreLettreMajuscule", n'existe pas dans la version 25 de Windev que j'utilise.
donc je bute toujours sur cet obstacle d'autant plus que je suis au tout début de mon initiation à la programmation et précisément ce langage.
Merci en tout cas pour main tendue.
Modifié le 30 août 2024 à 09:51
Vous pouvez créer votre propre procédure.
PROCEDURE PremièreLettreMajuscule(sPrenom est une chaîne) : Chaîne sPrenomModifie est une chaîne = "" tabPrenoms est un tableau de chaînes = ExtraitChaîne(sPrenom, "-") POUR TOUT tabPrenom DE tabPrenoms SI sPrenomModifie <> "" ALORS sPrenomModifie += "-" FIN sPrenomModifie += Majuscule(Gauche(tabPrenom, 1)) + Milieu(tabPrenom, 2) FIN RENVOYER sPrenomModifie
En entrée, si sPrenom reçoit "jean-baptiste", sPrenomModifie renverra "Jean-Baptiste"
Sans faire de procédure, utilisez directement le code de la procédure à la place de "sPrenom = PremièreLettreMajuscule(sPrenom)" et remplacez la dernière ligne par "Sai_nomcomplet = sNom + " " + sPrenomModifie"