Vous pouvez utiliser des expressions en tant que valeurs pour presque tous les paramètres de style. Utilisez le générateur d'expression pour styliser les objets sur la base à la fois des attributs de classe d'objets et des attributs des objets associés, ou sur la base de toute valeur calculée à partir des valeurs d'attribut.
Le générateur d'expression permet de créer des propriétés calculées qui peuvent être utilisées pour la stylisation dynamique. Le modèle métier propose deux fonctions de texte.
TB_SQL : utilisez cette fonction de texte pour interroger les attributs à partir d'une classe d'objets associée. Les attributs peuvent servir pour la stylisation. La commande SQL doit correspondre aux règles suivantes :
Pour tester la commande SQL, exécutez SELECT g.FID, (commande SQL) FROM <nom classe d'objets> g. Par exemple, utilisez SQL Sheet pour exécuter la commande.
Utilisez cette fonction de texte pour créer une propriété de texte calculée destinée à fournir une variable définie par l'utilisateur pour la stylisation thématique. Les variables sont stockées dans la table système TB_VARIABLE. Vous pouvez définir de telles variables pour chaque connexion personnelle.
Par exemple, dans TB_VARIABLE, vous définissez une variable BUILDING dont la valeur représente le FID. Dans le gestionnaire d'affichage, vous utilisez la variable pour styliser le bâtiment. Pour mettre en surbrillance un seul bâtiment de la carte, vous entrez son FID dans TB_VARIABLE. Pour mettre en surbrillance un autre bâtiment, vous n'avez pas besoin de modifier le modèle d'affichage, mais vous pouvez entrer le nouveau FID dans TB_VARIABLE.
Utilisez ces fonctions pour définir un thème pour un attribut d'affichage, comme la couleur ou l'épaisseur de ligne. Elles sont compatibles avec de nombreux types de données : chaîne, nombre réel, entier, booléen, couleur et date-heure. Chaque paramètre peut être une constante ou une expression qui fournit une chaîne ou une valeur numérique.
If
If('Condition', ValeurVrai, ValeurFaux)
Le paramètre Condition est une chaîne contenant une expression qui fournit une valeur booléenne (principalement un filtre). Il peut s'agir d'une simple comparaison, comme "population > 1000", où "population" représente une propriété d'objet du calque. "ValeurVrai" et "ValeurFaux" sont les expressions qui sont évaluées et renvoyées lorsque la condition est respectivement vérifiée ou non. Les deux expressions doivent fournir le même type de données (chaîne ou nombre).
Cet exemple pourrait être utilisé pour faire pivoter un symbole représentant une flèche vers le haut, afin d'indiquer l'augmentation ou la diminution des populations : If('pop2005 > pop2000', 0.0, 180.0)
Lookup
Lookup(Expression, ValeurParDéfaut, Clé1, Valeur1, … CléN, ValeurN)
Cette fonction met en oeuvre une table de recherche où chaque clé est associée à une seule valeur. "Expression" fournit une clé (chaîne ou nombre). Cette clé est comparée aux paramètres "Clé#" constants restants pour sélectionner le paramètre "Valeur#" constant qui doit être renvoyé. Si la clé recherchée est introuvable, le paramètre "ValeurParDéfaut" est renvoyé. Le type de données des paramètres "Expression" et "Clé" doit être identique, tout comme celui des paramètres "ValeurParDéfaut" et "Valeur#". Le nombre de paires clé-valeur n'est pas fixe.
Cet exemple pourrait être utilisé pour affecter des couleurs à des parcelles en fonction du zonage :
Lookup(zonage, 0xff888888, 'Industriel', 0xffff0000, 'Commercial', 0xff00ff00, 'Résidentiel', 0xff0000ff)
Range
La fonction Range compare la clé "Expression" à un ensemble d'intervalles, et une clé respecte un intervalle si MIN <= CLE < MAX :
Range(Expression, ValeurParDéfaut, Min1, Max1, Valeur1, … MinN, MaxN, ValeurN)
Les intervalles sont précisés par les paramètres "Min#" et "Max#" et chacun possède un paramètre "Valeur#" associé. Si la clé requise ne correspond à aucun des intervalles spécifiés, le paramètre "ValeurParDéfaut" est renvoyé. En cas de chevauchement des intervalles, le premier qui correspond à la clé est choisi. Le type de données des paramètres "Expression", "Min" et "Max" doit être identique, tout comme celui des paramètres "ValeurParDéfaut" et "Valeur#". Le nombre de paires intervalle-valeur n'est pas fixe.
Cet exemple peut être utilisé pour spécifier la taille de symbole en fonction des populations des villes :
Range(population, 4.0, 100000, 1000000, 6.0, 1000000, 10000000, 8.0)