Altova DatabaseSpy 2024 Professional Edition

Formatage conditionnel

Accueil Préc Haut Suivant

Quand vous exécutez les instructions SELECT dans votre Éditeur SQL, les données extraites sont affichées dans la fenêtre de Résultat (ou de multiples fenêtres de Résultat, si de multiples requêtes ont été exécutées). Vous pouvez modifier l’apparence des données extraites (telle la couleur, l’arrière-plan, l’épaisseur de la police) basée sur les conditions SQL personnalisées. Par exemple, vous pouvez avoir certaines valeurs dans la grille de résultat formatées avec un arrière-plan jaune si elles dépassent un certain seuil.

 

L’image ci-dessous illustre un exemple de formatage conditionnel dans une base de données SQLite. Cet exemple de projet est disponible dans le chemin suivant : <% DBSPY-TUT%>\. Dans cet exemple, l’objectif est d’appliquer le formatage conditionnel comme suit :

 

Les enregistrements dont le nombre dépasse 200 doivent avoir un arrière-plan en corail et une police en gras

Les enregistrements dont le nombre est inférieur à 10 doivent avoir un arrière-plan en turquoise et une police en italique.

ds_condformat_01

Formatage conditionnel dans la syntaxe SQLite

Tel qu’illustré ci-dessus, et afin de prendre en charge le formatage conditionnel, l’instruction SQL doit inclure une colonne alias qui doit être appelée de manière conventionnelle DbSpyRowSettings. Ceci dit à DatabaseSpy de traiter cette colonne comme instructions de formatage conditionnel. Notez que cette colonne alias consiste en une construction « CASE ». La branche WHEN est une expression SQL où vous fournissez la condition à vérifier dans la grammaire de la base de données correspondante. La branche THEN est un string qui spécifie les styles de formatage tels l’épaisseur de la police ou la couleur d’arrière-plan. Ce string doit être entre guillemets, dans la grammaire spécifique à la base de données, pour qu’il ait l’air d’un string de la base de données.

 

La syntaxe SQL qui définit la colonne alias dépend du type de base de données. Voir ci-dessous pour des exemples spécifiques aux différents genres de base de données. Pour les détails, référez-vous à la documentation du vendeur de la base de données.

 

Les styles que vous pouvez utiliser sont les suivants :

 

Style

Remarques

Exemple

Style du texte

Le texte peut être formaté en gras, italique ou souligné.

police:gras

police:italique

police:souligné

Taille de police

La taille de la police peut être exprimée en unités fixées (les mêmes unités que celles dans la boîte de dialogue Options) ou comme pourcentage. Une valeur de pourcentage est relative à la taille de la police définie dans la boîte de dialogue Options.

Taille de la police:10

Taille de la police: 150 %

Famille de police

Contrairement à d’autres styles, les noms de police sont sensibles à la casse. Les noms de police peuvent être entre guillemets aussi longtemps que l’instruction SQL reste valide.

Famille de police:Arial

Couleur du texte

La couleur du texte peut être exprimée comme valeur hexadécimale (insensible à la casse) ou en tant que couleur nommée. Pour référence de toutes les couleurs nommées que vous pouvez utiliser, voir https://www.w3.org/TR/2003/REC-SVG11-20030114/types.html, Section 4.2.

couleur:jaune

couleur:#FFFF00

Couleur d’arrière-fond :

Les couleurs d’arrière-plan peuvent avoir les mêmes valeurs que les couleurs du texte.

Couleur d’arrière-plan:doré

couleur d’arrière-plan:#FFD700

 

Remarques :

 

Vous pouvez utiliser des multiples styles séparés par des points-virgules, par exemple : background-color:gold; font: bold; color: blue;. Les espaces blancs entre les styles ne sont pas pertinents.

Si les styles que vous avez saisi ne sont pas reconnus, DatabaseSpy les ignorera sans afficher des erreurs ou avertissements.

La colonne DbSpyRowSettings peut apparaître à tout emplacement dans la liste de colonne.

Le cas de la colonne DbSpyRowSettings ou le cas des styles n’est pas pertinent (excepté pour les noms de police, voir ci-dessus).

Lorsqu’une cellule, colonne ou ligne formatée de manière conditionnelle est dans le focus (sélectionnée), la couleur d’arrière-plan n’a pas d’effet. Seules la couleur du texte et la police sont appliquées.

Pour de meilleurs résultats d’affichage, vous allez vouloir désactiver la case à cocher Afficher la grille avec des couleurs alternantes dans les options Mode des Résultats.

 

Formatage conditionnel dans différents genres de base de données

Les exemples suivants sont des exemples spécifiques à la base de données d’instructions SQL qui utilisent un formatage conditionnel. Notez que ces exemples ci-dessous illustrent juste quelques manières d’appliquer le formatage conditionnel. Si pris en charge par la base de données, il est également possible d’arriver au même résultat avec plus de techniques complexes, telles que les sous-requêtes, les procédures stockées, etc.

 

Type de base de données

Exemple

Accès

Utiliser la fonction SWITCH, voir https://support.office.com/en-us/article/Switch-Function-D750C10D-0C8E-444C-9E63-F47504F9E379

 

SELECT [id],
      [name],
      [quantity],
      SWITCH ([quantity] > 200, 'color:blue') AS [DbSpyRowSettings]
FROM   [products];

 

En alternative, utilisez la fonction IIF, voir https://support.office.com/en-us/article/IIf-Function-32436ECF-C629-48A3-9900-647539C764E3

 

SELECT [id],
      [name],
      [quantity],
      IIF ([quantity] > 200, 'color:blue','') AS [DbSpyRowSettings]
FROM   [products];

IBM DB2

IBM DB2 pour i

Oracle

PostgreSQL

Progress OpenEdge

SQLite

Sybase

Teradata

SELECT "id",
      "name",
      "quantity",
      CASE WHEN "quantity" > 200 THEN 'color:blue;' END AS "DbSpyRowSettings"
FROM   "products";

IBM Informix

SELECT id,
      name,
      quantity,
      CASE WHEN quantity > 200 THEN 'color:blue;' END AS DbSpyRowSettings
FROM   products;

MariaDB

MySQL

SELECT `id`,
      `name`,
      `quantity`,
    CASE WHEN `quantity` > 200 THEN 'color:blue;' END AS `DbSpyRowSettings`
FROM   `products`;

Serveur SQL

SELECT [ProductID],
      [Name],
      [Quantity],
[DbSpyRowSettings] = CASE WHEN [Quantity] > 200 THEN 'color:blue;' END
FROM   [Products];

© 2017-2023 Altova GmbH