[WD10] tronquer une chaine

Le
Jacques TREPP
Bonjour à tous,

j'ai créé dans une fenètre, un champ libellé qui a la couleur d'une bulle,
mais qui n'en est pas une.
Selon les clics sur un planning, ce champ est alimenté (Chambre, Nom,
prestation, etc)
il se peut que le nom du client dépasse la capacité de la largeur du champ.
J'aimerais dans ce cas analyser la chaine pour la tronquer si besoin était.
exemple de code : texte_bulle est une chaine, nombulle est le champ libellé.

texte_bulle = "Résa Chambre : " + Val(FIR:m_chambre)+" - Date :
"+DateVersChaîne(FIR:m_dtresa)+" - Client :
"+SansEspace(RESA:m_nom_client_reservation)
{nombulle,indChamp} = texte_bulle + RC

je ne peux pas utiliser le mode ellipse sur le champ qui tronque le contenu
du champ.
le resultat actuel :
Résa Chambre : 203 - Date : 18/04/2008 - Client : LECLIENT DONT LE NOM
EST TROP LONG
Prestation : SOIREE ETAPE
Occupant : Jacques TREPP

l'idéal :

Résa Chambre : 203 - Date : 18/04/2008 - Client : LECLIENT DONT LE NOM
Prestation : SOIREE ETAPE
Occupant : Jacques TREPP

Je pensais utiliser la longueur en pixels du champ libellé. Malheureusement,
je n'ai pas réussi à connaitre la taille en pyxels de la variable
texte_bulle.

Merci de votre aide


--
Jacques TREPP
Albygest
3, rue Jean Mermoz
81160 ST-JUERY
(enlevez 'pasdespam' pour me joindre)
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JeAn-PhI
Le #14516071
Jacques TREPP a formulé ce jeudi :
Bonjour à tous,

j'ai créé dans une fenètre, un champ libellé qui a la couleur d'une bulle,
mais qui n'en est pas une.
Selon les clics sur un planning, ce champ est alimenté (Chambre, Nom,
prestation, etc)
il se peut que le nom du client dépasse la capacité de la largeur du champ.
J'aimerais dans ce cas analyser la chaine pour la tronquer si besoin était.
exemple de code : texte_bulle est une chaine, nombulle est le champ libellé.

texte_bulle = "Résa Chambre : " + Val(FIR:m_chambre)+" - Date :
"+DateVersChaîne(FIR:m_dtresa)+" - Client :
"+SansEspace(RESA:m_nom_client_reservation)
{nombulle,indChamp} = texte_bulle + RC

je ne peux pas utiliser le mode ellipse sur le champ qui tronque le contenu
du champ.
le resultat actuel :
Résa Chambre : 203 - Date : 18/04/2008 - Client : LECLIENT DONT LE NOM
EST TROP LONG
Prestation : SOIREE ETAPE
Occupant : Jacques TREPP

l'idéal :

Résa Chambre : 203 - Date : 18/04/2008 - Client : LECLIENT DONT LE NOM
Prestation : SOIREE ETAPE
Occupant : Jacques TREPP

Je pensais utiliser la longueur en pixels du champ libellé. Malheureusement,
je n'ai pas réussi à connaitre la taille en pyxels de la variable
texte_bulle.

Merci de votre aide



MonChampLibellé..Largeur=TexteLargeur(MonChampLibellé,MaLigneLaPlusLongue)
dans votre cas :
{nombulle,indChamp}..Largeur=TexteLargeur(texte_bulle,ExtraitChaîne(texte_bulle,rangPremier,RC))+2

--
Cordialement JeAn-PhI
Jacques TREPP
Le #14515861
"JeAn-PhI" news:
Jacques TREPP a formulé ce jeudi :
Bonjour à tous,

j'ai créé dans une fenètre, un champ libellé qui a la couleur d'une
bulle, mais qui n'en est pas une.
Selon les clics sur un planning, ce champ est alimenté (Chambre, Nom,
prestation, etc)
il se peut que le nom du client dépasse la capacité de la largeur du
champ. J'aimerais dans ce cas analyser la chaine pour la tronquer si
besoin était.
exemple de code : texte_bulle est une chaine, nombulle est le champ
libellé.

texte_bulle = "Résa Chambre : " + Val(FIR:m_chambre)+" - Date :
"+DateVersChaîne(FIR:m_dtresa)+" - Client :
"+SansEspace(RESA:m_nom_client_reservation)
{nombulle,indChamp} = texte_bulle + RC

je ne peux pas utiliser le mode ellipse sur le champ qui tronque le
contenu du champ.
le resultat actuel :
Résa Chambre : 203 - Date : 18/04/2008 - Client : LECLIENT DONT LE NOM
EST TROP LONG
Prestation : SOIREE ETAPE
Occupant : Jacques TREPP

l'idéal :

Résa Chambre : 203 - Date : 18/04/2008 - Client : LECLIENT DONT LE NOM
Prestation : SOIREE ETAPE
Occupant : Jacques TREPP

Je pensais utiliser la longueur en pixels du champ libellé.
Malheureusement, je n'ai pas réussi à connaitre la taille en pyxels de la
variable texte_bulle.

Merci de votre aide



MonChampLibellé..Largeur=TexteLargeur(MonChampLibellé,MaLigneLaPlusLongue)
dans votre cas :
{nombulle,indChamp}..Largeur=TexteLargeur(texte_bulle,ExtraitChaîne(texte_bulle,rangPremier,RC))+2

--
Cordialement JeAn-PhI



Merci JeAn-PhI.

En fait, ça n'est pas exactement ce que je souhaite : la taille de
{nombulle,indChamp} ne doit pas bouger.
j'ai créé un champ libellé nommé texte_bulle hors écran. j'ai indiqué le
mode ellipse 'en fin'. A l'affichage, j'obtiens exactement ce que je
souhaite transférer dans le champ {nombulle,indChamp}...

malheureusement, il ne s'agit que d'un effet d'affichage et la chaine n'est
pas tronquée.

Je vais essayer de jouer avec les tailles en pixels des champs.
je ne m'attendais pas à une telle galère

cordialement
--
Jacques TREPP
Albygest
3, rue Jean Mermoz
81160 ST-JUERY
(enlevez 'pasdespam' pour me joindre)
patrice
Le #14515851
"Jacques TREPP" news:48086f48$0$24589$

En fait, ça n'est pas exactement ce que je souhaite : la taille de
{nombulle,indChamp} ne doit pas bouger.
j'ai créé un champ libellé nommé texte_bulle hors écran. j'ai indiqué le
mode ellipse 'en fin'. A l'affichage, j'obtiens exactement ce que je
souhaite transférer dans le champ {nombulle,indChamp}...

malheureusement, il ne s'agit que d'un effet d'affichage et la chaine


n'est
pas tronquée.

Je vais essayer de jouer avec les tailles en pixels des champs.
je ne m'attendais pas à une telle galère



effectivement tu cherches les problèmes :)
pas facile de prédire le nombre de caractères affichable, surtout avec une
police proportionnelle.
AMHA, fait une boucle genre :
tantque ca_tient_pas_dans_champ,
machaine=gauche(machaine,taille(machaine)-1)

et le ca_tient_pas_dans_le_champ fait à base de textelargeur
Jacques TREPP
Le #14515841
"patrice" news:480871a7$0$696$

"Jacques TREPP" news:48086f48$0$24589$

En fait, ça n'est pas exactement ce que je souhaite : la taille de
{nombulle,indChamp} ne doit pas bouger.
j'ai créé un champ libellé nommé texte_bulle hors écran. j'ai indiqué le
mode ellipse 'en fin'. A l'affichage, j'obtiens exactement ce que je
souhaite transférer dans le champ {nombulle,indChamp}...

malheureusement, il ne s'agit que d'un effet d'affichage et la chaine


n'est
pas tronquée.

Je vais essayer de jouer avec les tailles en pixels des champs.
je ne m'attendais pas à une telle galère



effectivement tu cherches les problèmes :)
pas facile de prédire le nombre de caractères affichable, surtout avec une
police proportionnelle.
AMHA, fait une boucle genre :
tantque ca_tient_pas_dans_champ,
machaine=gauche(machaine,taille(machaine)-1)

et le ca_tient_pas_dans_le_champ fait à base de textelargeur





Merci :)
Pour ne pas y passer l'hiver, j'ai créé un champ de saisie limité à 67
caractères : ça reste cohérent et lisible pour ce que je veux en faire. Le
nom sera suffisamment éloquent.
Et puis, si le client s'appelle :
Syndicat Inter Communal De La Basse Vallée Du Tarn,
et bien il n'aura qu'à l'enregistrer :
SICDLBVDT : éloquent, non ?
et pis c'est tout !

cordialement
--
Jacques TREPP
Albygest
3, rue Jean Mermoz
81160 ST-JUERY
(enlevez 'pasdespam' pour me joindre)
Publicité
Poster une réponse
Anonyme