Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 14 October 2009 13:22

Vincent87
Participant actif
Date d'inscription: 26 Jun 2006
Messages: 113

Etiquettes & Vscript aux secours!!!

Bonjour à tous,

Alors voilà je me heurte à un soucis avec mes petites étiquettes et mon code vbscript.

J'ai 7 champs, qui peuvent avoir 6 valeurs différentes.
En fonction de la valeur du champs le texte de l'étiquette sera d'une certaine couleur.

Je dois afficher mes 7 champs dans la même étiquettes.

L'étiquette resemblerait à ça :

TEXTE 1     TEXTE2     TEXTE3
         TEXTE 4     TEXTE5
         TEXTE 6     TEXTE7

Avec chaque TEXTE qui peut avoir une des 6 couleurs diférentes lié à la valeur du champs adhoc.
Champs1= TEXTE1 etc...Etc...

J'ai de façon mathématique : 117649 possbilités...je me vois pas faire une ligne de code pour chaque possibilité

Voila sur 2 champs ce que ça donnerait niveau code :

Code:

Function FindLabel ( [CH1], [CH2]   )

if ( [CH1] ) = "V1" AND [CH2] ="V2" then
FindLabel = "<CLR red = '0' green = '255' blue = '0'>" & "TEXTE1" &"</CLR>" 
&vbnewline&
"<CLR red = '255' green = '0' blue = '0'>" & "TEXTE2" &"</CLR>"
end if
End Function

Et cela il faudrait le faire pour les 7 champs avec à chaque fois toutes les possiblités soit des milliers de ligne de codes...inhumains...

Auriez vous une idée d'un code pouvant faire cela à moindre coups niveau ligne...

Merci de votre aide.

Hors ligne

 

#2 Wed 14 October 2009 13:55

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: Etiquettes & Vscript aux secours!!!

Salut,

pourquoi ne pas remplir un champs supplémentaire avec le code couleur directement.
tu pourrais puiser directement ce code cela t'éviterais des lignes de programme.
A+
Joël

Hors ligne

 

#3 Wed 14 October 2009 14:02

Vincent87
Participant actif
Date d'inscription: 26 Jun 2006
Messages: 113

Re: Etiquettes & Vscript aux secours!!!

J'avoue ne pas saisir...je ne peux pas faire un champs supplémantaire...le must serait de pouvoir rentrer mes valeurs en couleurs dans ma table attributaire comme cela ça serait beaucoup plus facile ^^

Voici ce à quoi doit ressembler l'étiquette :
[img]http://img88.imageshack.us/img88/5622/exempled.jpg[/img]

La seule modification, sera que ce n'est pas le fonds qui sera de couleur mais le texte...

Avec pour chaque petite carré 6 couleurs possibles...

Merci de votre aide

Dernière modification par Vincent87 (Wed 14 October 2009 14:03)

Hors ligne

 

#4 Wed 14 October 2009 14:11

Pierre Dolez
Participant assidu
Lieu: Proville
Date d'inscription: 14 Aug 2008
Messages: 519
Site web

Re: Etiquettes & Vscript aux secours!!!

Bonjour,

Je développe en C, mais je pense que vous n'aurez pas de mal à transposer
La fonction FindLabel a pour paramètre un tableau contenant les  7 textes et un tableau contenant les valeurs qui définissent la couleur.

Code:

Function FindLabel(Txt[7], Val[7])
{
  for (int i=0; i<7; i++)
  {
    switch (Val[i])
    {
      case 1: Txt[i].coul=Coul1; break;  //Couleur 1
      ....
      case 6: Txt[i].coul=Coul6; break;  //Couleur 6
    }
  }
  for (int i=0; i<7; i++)
  {
    switch (i)
    {
      case 0: /* dessin du texte1*/; break;  
      ....
      case 6: /* dessin du texte7*/; break;  
    }
  }
}

La première boucle fixe la couleur des textes, la seconde les dessine.
Je suis sûr que VB dispose d'une syntaxe comparable.

Attention, tel quel ce code n'est pas correct, le mot clé Function n'existe pas en C, il manque les types des paramètres Txt et Val, Le type de la fonction devrait être précisé. et entre /*  et */ c'est du commentaire, il manque le code. 
Cordialement.

Hors ligne

 

#5 Wed 14 October 2009 14:24

Vincent87
Participant actif
Date d'inscription: 26 Jun 2006
Messages: 113

Re: Etiquettes & Vscript aux secours!!!

Je regarde ce que je peux faire car je n'y connais rien en C, et je fais mes premiers pas en Vbscript donc je risque de galérer mais je tente le coups!

Merci beaucoup

Dernière modification par Vincent87 (Wed 14 October 2009 14:24)

Hors ligne

 

#6 Wed 14 October 2009 14:57

Pierre Dolez
Participant assidu
Lieu: Proville
Date d'inscription: 14 Aug 2008
Messages: 519
Site web

Re: Etiquettes & Vscript aux secours!!!

N'hésitez pas à m'envoyer votre code.
En fait il n'y a que 2 mots clés à connaitre (pour cette fonction) "for" et "switch". Ainsi que la syntaxe des paramètres de fonction. Les structures existe-t-elle en VisualBasic?

Hors ligne

 

#7 Fri 26 November 2010 10:47

Razorbak
Participant assidu
Lieu: Clermont Ferrand
Date d'inscription: 7 Oct 2007
Messages: 505

Re: Etiquettes & Vscript aux secours!!!

Bonjour,

Je relance le sujet concernant les arrière-plans des étiquettes...
Je suis en train de créer une étiquette comportant 2 lignes.
J'arrive à changer la couleur du texte (avec la balise CLR) mais j'aimerais également changer la couleur du fonds de chaque ligne...
Est-ce possible ?
Dois-je passer par un tableau ? Et si oui, comment faire pour en créer un en passant par une expression d'étiquettes ?

Je vous remercie.

Hors ligne

 

Pied de page des forums

Powered by FluxBB