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 Tue 20 September 2005 07:54

Fred
#JeSuisCharlie
Lieu: Paris
Date d'inscription: 24 Jun 2005
Messages: 7682
Site web

Simplification de vbscript pour des etiquettes

Bonjour,

Je voudrais simplifer le code, ci-apres ,car meme s'il fonctionne, il est particulierement lourd !

Je veux toujours afficher mon champ1 mais pour les champ2 et champ3 je ne souhaite afficher ceux-ci que s'ils sont superieur a 0

Ex 1: pour champ1 = 1224, champ2=2, champ3=5
1224
(champ2: 2)
(champ3: 5)

Ex 2: pour champ1 = 1348, champ2=0, champ3=2
1348
(champ3: 2)

....


Code:

Function FindLabel ( [champ1], [champ2], [champ3])
if ([champ2] = 0 and [champ3] = 0) then
    FindLabel = [champ1]
end if
if ([champ2] > 0 and [champ3] = 0) then
    FindLabel = [champ1] & vbcr & "(champ2:" & [champ2]  &")"
end if
if ([champ2] = 0 and [champ3] > 0) then
    FindLabel = [champ1] & vbcr & "(champ3:" & [champ3]  &")"
end if
if ([champ2] > 0 and [champ3] > 0) then
    FindLabel = [champ1] & vbcr & "(champ2:" & [champ2]  &")" & vbcr & "(champ3:" & [champ3]  &")"
end if
End Function

Merci


GeoRezo vous aide ==> Aidez GeoRezo !

Hors ligne

 

#2 Tue 20 September 2005 11:52

Damien BEAUSEIGNEUR
Participant assidu
Lieu: meyzieu
Date d'inscription: 5 Sep 2005
Messages: 425

Re: Simplification de vbscript pour des etiquettes

Une petite solution pour simplifier le code

Code:

Function Findlabel ( [champ1], [champ2], [champ3] )
  dim textetemp as string
  textetemp = [champ1]
  if [champ2] > 0 then
    textetemp = textetemp & vbcr & "(champ2:" & [champ2] & ")"
  end if
  if [champ3] > 0 then
    textetemp = textetemp & vbcr & "(champ3:" & [champ3] & ")"
  end if
  FincdLabel = textetemp
end function

Hors ligne

 

#3 Tue 20 September 2005 12:40

Fred
#JeSuisCharlie
Lieu: Paris
Date d'inscription: 24 Jun 2005
Messages: 7682
Site web

Re: Simplification de vbscript pour des etiquettes

Merci

J'ai pas le temps de le tester mais de ce que j'en comprends cela me parait logique !

Encore merci


GeoRezo vous aide ==> Aidez GeoRezo !

Hors ligne

 

#4 Tue 20 September 2005 14:13

Guillaume Claire
Participant occasionnel
Date d'inscription: 5 Sep 2005
Messages: 27

Re: Simplification de vbscript pour des etiquettes

Essayez ca pour n'avoir que 2 tests au lieu de 4.

Code:

Function FindLabel ( [champ1], [champ2], [champ3])
Dim ichamp2 as integer
Dim ichamp3 as integer
Dim schamp2 as string
Dim schamp3 as string

ichamp2 = [champ2]
ichamp3 = [champ3]

if ichamp2  > 0 then
         schamp2  = vbcr & "(champ2:" & ichamp2  & ")"
end if

if ichamp3  > 0 then
         schamp3  = vbcr & "(champ3:" & ichamp3  & ")"
end if

FindLabel = [champ1] & schamp2 & schamp3 

End Function

Hors ligne

 

Pied de page des forums

Powered by FluxBB