ONYX - 9.0 - Utilisation - Fonctionnement des groupes

Différence entre versions

De MappingDoc
(Traitement des lignes)
(Traitement des lignes)
Ligne 135 : Ligne 135 :
  
 
Le groupe traitera les lignes de la façon suivante :
 
Le groupe traitera les lignes de la façon suivante :
#<span style="color:green">Le groupe analyse la ligne en cours en vérifiant si sa 1ère condition répond à cette ligne (Condition RED)
+
#<span style="color:green">Le groupe analyse la ligne en cours en vérifiant si sa 1ère condition répond à cette ligne. (Condition RED)
 
## OUI --> Passage au point 2
 
## OUI --> Passage au point 2
 
## NON --> Le groupe vérifie si sa prochaine condition répond à cette ligne (Condition NOT_BLANK)
 
## NON --> Le groupe vérifie si sa prochaine condition répond à cette ligne (Condition NOT_BLANK)
 
###OUI --> Passage au point 2
 
###OUI --> Passage au point 2
 
###NON --> Le groupe vérifie si sa prochaine condition répond à cette ligne etc </span>
 
###NON --> Le groupe vérifie si sa prochaine condition répond à cette ligne etc </span>
####PLUS DE CONDITION PRESENTE --> <span style="color:red">Passage au point 5 pour traiter la prochaine ligne du groupe</span>
+
####PLUS DE CONDITION PRESENTE --> <span style="color:red">Passage au point 5 pour traiter la prochaine ligne du groupe. La ligne courant ne sera alors pas imprimée (ou exécutée)</span>
 
#<span style="color:green">Déplacement du curseur vers le bas de ESPACEMENT AVANT de la condition trouvée</span>
 
#<span style="color:green">Déplacement du curseur vers le bas de ESPACEMENT AVANT de la condition trouvée</span>
 
#<span style="color:green">Le groupe exécute tous les objets se trouvant sous elle (Dans notre exemple, ADRMAPROUG pour la condition RED OU ADRMAPPING pour la condition NOT_BLANK)</span>
 
#<span style="color:green">Le groupe exécute tous les objets se trouvant sous elle (Dans notre exemple, ADRMAPROUG pour la condition RED OU ADRMAPPING pour la condition NOT_BLANK)</span>

Version du 4 juin 2019 à 15:45

Préambule

Cette documentation décrit le fonctionnement des des groupes du module Designer de la suite Mapping. Celle-ci est un prérequis à la compréhension de la documentation sur la création de tableaux dynamiques sur Designer Onyx version 9.0 ou Opale 10.

Généralités

Qu'est ce qu'un groupe

Un groupe dans Designer est un bloc traitant de façon séquentielle plusieurs lignes.

Il existe 2 types de données en entrée de Designer :

  1. Texte paginé
    En mode texte paginé, celui-ci traitera le contenu du texte paginé d'un numéro de ligne jusqu'à un autre numéro de ligne. (ou d'une ligne respectant telle condition jusqu'à la prochaine ligne respectant une autre condition).
  2. XML
    En mode XML, ce groupe traitera toutes les lignes (ligne de type <line name="XX"></line>)qui lui appartiendra.


Remarque : Le verbe traiter est bien utilisé et non le verbe afficher ou imprimer. Car le groupe va parser toutes les lignes qui lui appartient, et pour chacune d'elle et de façon séquentielle, va chercher sa condition de ligne (ou type de ligne) et va exécuter tous les objets appartenant à cette condition. Si tel est le cas, ces objets seront exécutés afin de s'afficher. (Ligne, zone de texte, zone affichant des données du fichier d'entrée, etc)

Si le groupe est paramétré en tant que Condition exclusive, alors la première condition trouvée va exécuter ses objets et les autres conditions ne le seront pas.

Par contre le cas échéant, si le groupe est paramétré en tant que Condition non exclusive, alors toutes les conditions qui s'appliquent seront exécutées avec évidement tous leurs objets associés.

vocabulaire

Baseline : Ligne servant de référence pour le positionnement des objets du groupe.
remarque : Cette ligne de référence se déplace vers le bas à chaque exécution d'une nouvelle ligne, dans l'ordre suivant :

  1. Déplacement de "espacement avant"
  2. Traitement de chaque objet de la ligne
  3. Déplacement de "espacement après"

Espacement avant : Espace alloué à la ligne écrite au dessus de la baseline

Espacement après : Espace alloué à la ligne écrite au dessous de la baseline

Espace de travail : Espace alloué à la ligne entière : Soit Espacement avant + Espacement après

Contenu d'un groupe

En mode texte paginé

Voici l'exemple d'une contenu d'un groupe. Le groupe traitera le contenu de la page de la ligne 1 à la ligne 10.

OX D GRP 1.jpg

Pour revenir aux conditions de ligne ou types de ligne, on peut vouloir traiter la ligne première ligne MAPPING SUITE différement. A ce moment là, on créerait un type de ligne qui serait vrai uniquement sur cette première ligne. (Par exemple : Si il y a le mot MAPPING SUITE sur ma ligne ou alors simplement en utilisant l'opérateur "première ligne")

En mode XML

Voici l'exemple d'un groupe en XML.

<group name="MonGroupe">
<line name="MaLigne1">
<field name="MonChamp">MAPPING SUITE</field>
</line>
<line name="MaLigne2">
<field name="MonChamp">SAS au capital de 1 000 000 €uros</field>
</line>
<line name="MaLigne3">
<field name="MonChamp">18 Allée du Chateau blanc</field>
</line>
<line name="MaLigne4">
<field name="MonChamp">59290 WASQUEHAL</field>
</line>
</group>

Dans ce cas là, si on souhaite traiter la ligne MAPPING SUITE de façon différente, il faudra créer une condition de ligne "Si le nom de ma ligne est MaLigne1"

Fonctionnement d'un groupe

Généralités

Comme nous l'avons vu précédemment, les lignes d'un groupe sont séquentiellement balayées et les objets qui y sont associés sont exécutés. De ce fait, le résultat de l'exécution d'un groupe est généralement une suite de lignes. (avec pour contenu leurs objets associés : Ligne, texte, rectangle par exemple)

L'espacement entre les différentes lignes du groupe est primordial. Si cet espacement est égal à 0, alors toutes les lignes du groupe seront superposées les unes sur les autres.

Cet espacement est paramétrable et est porté non pas par l'objet mais sur la condition de ligne associé à cette objet.

Nous parlons alors d'espacement avant et espacement après.

Schéma explicatif


Le schéma ci-dessous explique la notion de baseline, lignes et espace de travail.


Nous pouvons bien voir que l'espace entre deux nouvelles lignes du groupe est bien : Espacement avant + Espacement après (qui correspond à un espace de travail)

Positionnement des différents objets par rapport à la baseline

Le positionnement des différents objets par rapport à la baseline n'est pas toujours le même.
Afin de bien maîtriser le designer des maquettes Designer, il est très important de bien les comprendre. Cela se verra très utile entres autres, notamment dans la création de tableaux dynamiques.

Zone bleu Designer

Le texte se positionne sur la ligne basse de la zone

Ligne horizontale

La ligne horizontale se positionne sur la baseline.

Ligne verticale

Le haut de la ligne verticale se positionne sous la baseline.

Rectangle

Le rectangle se positionne sur la baseline.

Image

L'image se positionne sous la baseline. (par conséquent sous la zone bleu)

Code barre 1D

Le code barre 1D sur positionne sur la baseline. (il réagit de la même façon que le texte)

Traitement des lignes

Dans la liste des objets de Designer nous retrouvons la liste de tous les objets de la maquette (Onglet MAP ou DRAW). L'ordre d’exécution de ces objets est donné par cette liste. Les objets les plus bas dans la liste sont exécutés après les objets les plus haut.

Prenons pour exemple la liste des objets suivant :

OX D GRP 9.jpg

Nous pouvons voir dans cet exemple que nous avons 4 zones qui sont hors groupe (FAC#, DATEFAC, PAGE# et COM#). Nous avons également un groupe (Ma) ayant 2 conditions (RED et NOT_BLANK) chacune avec un un objet (Une zone affichant le contenu de la ligne)

Le groupe traitera les lignes de la façon suivante :

  1. Le groupe analyse la ligne en cours en vérifiant si sa 1ère condition répond à cette ligne. (Condition RED)
    1. OUI --> Passage au point 2
    2. NON --> Le groupe vérifie si sa prochaine condition répond à cette ligne (Condition NOT_BLANK)
      1. OUI --> Passage au point 2
      2. NON --> Le groupe vérifie si sa prochaine condition répond à cette ligne etc
        1. PLUS DE CONDITION PRESENTE --> Passage au point 5 pour traiter la prochaine ligne du groupe. La ligne courant ne sera alors pas imprimée (ou exécutée)
  2. Déplacement du curseur vers le bas de ESPACEMENT AVANT de la condition trouvée
  3. Le groupe exécute tous les objets se trouvant sous elle (Dans notre exemple, ADRMAPROUG pour la condition RED OU ADRMAPPING pour la condition NOT_BLANK)
  4. Déplacement du curseur de ESPACE APRES de cette condition.
  5. Ce traitement se répète pour toutes les autres lignes du groupe

Le groupe peut être de deux types :

  1. Condition Exclusives : Dans le traitement décrit ci-dessous, la première condition qui est vrai sera exécutée. Designer ne vérifiera pas les autres conditions. (Du coup l'ordre des conditions dans la liste des objets est très important. (Dans notre cas la condition RED sera vérifié avant la condition NOT_BLANK)
  2. Condition non Exclusives : Dans les groupes à conditions non Exclusives, Designer vérifiera toutes les conditions du groupe et exécutera toutes celles qui sont vrai.

Exemples

Affichage simple de plusieurs lignes

A COMPLETER

Formatage particulier sur la première ligne

A COMPLETER

Suppression d'une ligne blanche

A COMPLETER

Donner plus de place à la première ligne

A COMPLETER

Création d'un tableau dynamique simple

A COMPLETER