ONYX - 9.0 - Utilisation - Fonctionnement des groupes

Différence entre versions

De MappingDoc
(vocabulaire)
 
(184 révisions intermédiaires par 5 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
=Préambule=
+
<languages/>
 +
<translate>
 +
=Préambule= <!--T:1-->
  
Cette documentation décrit le fonctionnement des espaces de travail dans les groupes du module Designer de la suite Mapping.
+
<!--T:2-->
Celle-ci est un prérequis à la compréhension de la documentation sur la création de tableau dynamique sur Designer Onyx version 9.0 ou Opale 10.
+
Cette documentation décrit le fonctionnement 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 9.x ou Opale 10.x.
  
=Généralités=
+
=Généralités= <!--T:3-->
  
==Qu'est ce qu'un groupe==
+
==Qu'est ce qu'un groupe== <!--T:4-->
 
Un groupe dans Designer est un bloc '''traitant''' de façon séquentielle plusieurs lignes.  
 
Un groupe dans Designer est un bloc '''traitant''' de façon séquentielle plusieurs lignes.  
  
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).
+
<!--T:5-->
 +
Il existe 2 types de données en entrée de Designer :
  
En mode XML, ce groupe '''traitera''' toutes les lignes qui lui appartiendra.
+
<!--T:6-->
 +
#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).
 +
#XML
 +
#:En mode XML, ce groupe '''traitera''' toutes les lignes (ligne de type '''<line name="XX"></line>''')qui lui appartiendra.
  
 +
 +
<!--T:7-->
 
<u>Remarque</u> : 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)<br><br>
 
<u>Remarque</u> : 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)<br><br>
  
 +
<!--T:8-->
 
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.<br>
 
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.<br>
  
 +
<!--T:9-->
 
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.
 
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=
+
==Vocabulaire== <!--T:10-->
  
 +
<!--T:11-->
 
'''Baseline'''        : Ligne servant de référence pour le positionnement des objets du groupe.<br>
 
'''Baseline'''        : Ligne servant de référence pour le positionnement des objets du groupe.<br>
<u>remarque</u> : Cette ligne de référence se déplace vers le bas à chaque exécution d'une nouvelle ligne, avec dans l'ordre :
+
<u>remarque</u> : Cette ligne de référence se déplace vers le bas à chaque exécution d'une nouvelle ligne, dans l'ordre suivant :
  
 +
<!--T:12-->
 
#Déplacement de "espacement avant"
 
#Déplacement de "espacement avant"
 
#Traitement de chaque objet de la ligne
 
#Traitement de chaque objet de la ligne
 
#Déplacement de "espacement après"<br><br>
 
#Déplacement de "espacement après"<br><br>
  
 +
<!--T:13-->
 
'''Espacement avant''' : Espace alloué à la ligne écrite au dessus de la baseline<br><br>
 
'''Espacement avant''' : Espace alloué à la ligne écrite au dessus de la baseline<br><br>
 
'''Espacement après''' : Espace alloué à la ligne écrite au dessous de la baseline<br><br>
 
'''Espacement après''' : Espace alloué à la ligne écrite au dessous de la baseline<br><br>
'''Espace de travailt''' : Espace alloué à la ligne entière : Soit Espacement avant + Espacement après<br>
+
'''Espace de travail''' : Espace alloué à la ligne entière : Soit Espacement avant + Espacement après<br>
  
==Contenu d'un groupe==
+
==Contenu d'un groupe== <!--T:14-->
 
===En mode texte paginé===
 
===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.
 
Voici l'exemple d'une contenu d'un groupe. Le groupe traitera le contenu de la page de la ligne 1 à la ligne 10.
  
 +
<!--T:15-->
 
[[Fichier:OX D GRP 1.jpg|néant|vignette|521x521px]]
 
[[Fichier:OX D GRP 1.jpg|néant|vignette|521x521px]]
  
 +
<!--T:16-->
 
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")
 
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===
+
===En mode XML=== <!--T:17-->
  
 +
<!--T:18-->
 
Voici l'exemple d'un groupe en XML.
 
Voici l'exemple d'un groupe en XML.
  
 +
<!--T:19-->
 
  <group name="MonGroupe">
 
  <group name="MonGroupe">
<line name="MaLigne1">
+
  <line name="MaLigne1">
<field name="MonChamp">MAPPING SUITE</field>
+
    <field name="MonChamp">MAPPING SUITE</field>
</line>
+
  </line>
<line name="MaLigne2">
+
  <line name="MaLigne2">
<field name="MonChamp">SAS au capital de 1 000 000 €uros</field>
+
    <field name="MonChamp">SAS au capital de 1 000 000 €uros</field>
</line>
+
  </line>
<line name="MaLigne3">
+
  <line name="MaLigne3">
<field name="MonChamp">18 Allée du Chateau blanc</field>
+
    <field name="MonChamp">18 Allée du Chateau blanc</field>
</line>
+
  </line>
<line name="MaLigne4">
+
  <line name="MaLigne4">
<field name="MonChamp">59290 WASQUEHAL</field>
+
    <field name="MonChamp">59290 WASQUEHAL</field>
</line>
+
  </line>
</group>
+
  </group>
  
 +
<!--T:20-->
 
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"
 
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=
+
=Fonctionnement d'un groupe= <!--T:21-->
 
==Généralités==
 
==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.
 
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)
 
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)
  
 +
<!--T:22-->
 
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.
 
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.  
+
<!--T:23-->
 +
Cet espacement est paramétrable et est porté non pas par l'objet mais sur le type de ligne (condition) associé à cet objet.  
  
 +
<!--T:24-->
 
Nous parlons alors d''''espacement avant''' et '''espacement après'''.
 
Nous parlons alors d''''espacement avant''' et '''espacement après'''.
  
==Schéma explicatif==
+
A noter que par défaut, une nouvelle ligne est créée avec les paramètres suivants : '''esp. avant''' = 0 et '''esp. après''' = 0,42. Il est très fortement recommandé d'intervertir ces 2 valeurs afin que la ligne spécifie son propre espacement et non l'espacement de la ligne suivante.
 +
 
 +
==Schéma explicatif== <!--T:25-->
 
<br />
 
<br />
[[Fichier:OX D GRP 2.jpg|néant|vignette|737x737px]]
+
 
 +
<!--T:26-->
 +
Le schéma ci-dessous explique la notion de baseline, lignes et espace de travail.
 +
 
 +
<!--T:27-->
 +
[[Fichier:OX D GRP 22.jpg|alt=|néant|vignette|1099x1099px]]
 
<br />
 
<br />
 +
 +
<!--T:28-->
 +
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== <!--T:29-->
 +
 +
<!--T:30-->
 +
Le positionnement des différents objets par rapport à la baseline n'est pas toujours le même. <br>
 +
Afin de bien maîtriser la conception des maquettes Designer, il est très important de bien les comprendre. Cela s'avèrera très utile entres autres lors de la création de tableaux dynamiques.
 +
 +
===Zone bleue Designer=== <!--T:31-->
 +
[[Fichier:OX_D_GRP_6.jpg|alt=|néant|vignette|1099x1099px]]
 +
 +
<!--T:32-->
 +
Le texte se positionne sur la ligne basse de la zone
 +
 +
===Ligne horizontale=== <!--T:33-->
 +
[[Fichier:OX_D_GRP_3.jpg|alt=|néant|vignette|1099x1099px]]
 +
 +
<!--T:34-->
 +
La ligne horizontale se positionne sur la baseline.
 +
 +
===Ligne verticale=== <!--T:35-->
 +
[[Fichier:OX_D_GRP_4.jpg|alt=|néant|vignette|1099x1099px]]
 +
 +
<!--T:36-->
 +
Le haut de la ligne verticale se positionne sous la baseline.
 +
 +
===Rectangle=== <!--T:37-->
 +
 +
<!--T:38-->
 +
[[Fichier:OX_D_GRP_5.jpg|alt=|néant|vignette|1099x1099px]]
 +
 +
<!--T:39-->
 +
Le rectangle se positionne sur la baseline.
 +
 +
===Image ou code barre 2D=== <!--T:40-->
 +
[[Fichier:OX_D_GRP_7.jpg|alt=|néant|vignette|1099x1099px]]
 +
 +
<!--T:41-->
 +
L'image se positionne sous la baseline (par conséquent sous la zone bleue dessinée).
 +
 +
===Code-barres 1D=== <!--T:42-->
 +
[[Fichier:OX_D_GRP_8.jpg|alt=|néant|vignette|1099x1099px]]
 +
 +
<!--T:43-->
 +
Le code-barre 1D se positionne sur la baseline (il se comporte comme un texte).
 +
 +
==Traitement des lignes== <!--T:44-->
 +
 +
<!--T:45-->
 +
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 des groupes et types de lignes (conditions) dans les groupes est donné par cette liste : en effet, les différents types de lignes (conditions) sont traités dans l'ordre d'apparition dans  la liste.
 +
Dans notre exemple ci-dessous, le type de ligne (condition) '''RED''' sera vérifié avant le type de ligne '''NOT_BLANK'''
 +
 +
<!--T:46-->
 +
<u>Remarque</u> :
 +
 +
<!--T:47-->
 +
Les objets hors groupes sont exécutés dans l'ordre suivant :
 +
#Zone (hors groupe)
 +
#Groupes
 +
#Zones de texte
 +
#Graphiques
 +
 +
<!--T:48-->
 +
Prenons pour exemple la liste des objets suivants :
 +
 +
<!--T:49-->
 +
[[Fichier:OX D GRP 9.jpg|néant|vignette|521x521px]]
 +
 +
<!--T:50-->
 +
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 objet (une zone affichant le contenu de la ligne).
 +
Dans cette documentation, nous allons nous focaliser sur ce groupe (Ma)
 +
 +
<!--T:51-->
 +
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 celle-ci répond aux conditions du premier type de ligne. (Condition RED)
 +
#: OUI --> '''Passage au point 2'''
 +
#: NON --> Le groupe vérifie si son prochain type de ligne (condition) répond à cette ligne (Type de ligne NOT_BLANK)
 +
#:: OUI --> '''Passage au point 2'''
 +
#::NON --> Le groupe vérifie si son prochain type de ligne (condition) répond à cette ligne etc </span>
 +
#::: Si plus de type de ligne (condition) personnalisé présente, alors le type de ligne AUCUNE est exécuté (Type de ligne toujours présente et vrai). Passage au point 2
 +
#<span style="color:green">Vérification de la présence d'un objet dans ce type de ligne (condition)
 +
#: OUI --> Passage au point 3
 +
#: NON --> '''Passage au point 6'''</span>
 +
#<span style="color:green">Déplacement du curseur vers le bas de ESPACEMENT AVANT du type de ligne (condition) trouvé</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) ou aucun objet pour le type de ligne AUCUNE</span>
 +
#<span style="color:green">Déplacement du curseur de ESPACEMENT APRES de ce type de ligne (condition).</span>
 +
#<span style="color:green">Le groupe passe à la prochaine ligne afin de la traiter. '''Passage au point 1'''</span>
 +
 +
<!--T:52-->
 +
<u>Remarque</u> : Ce traitement se répète pour toutes les lignes du groupe.
 +
 +
<!--T:53-->
 +
<u>Le groupe peut être de deux types</u> :
 +
#'''Condition Exclusives''' : Dans le traitement décrit ci-dessous, le premier type de ligne (condition) qui est vrai sera exécutée. Designer ne vérifiera pas les autres les types de ligne (conditions). (Du coup l'ordre des conditions dans la liste des objets est très important. Dans notre cas le type de ligne RED sera vérifié avant NOT_BLANK)
 +
#'''Condition non Exclusives''' : Dans les groupes à conditions non Exclusives, Designer vérifiera tous les types de ligne du groupe et exécutera tous ce qui sont vrai. (Type de ligne AUCUNE inclus)
 +
 +
<!--T:54-->
 +
<u>Remarque</u> : Il est possible de changer l'ordre d'exécution des types de ligne. Pour ce faire, il faut sélectionner le type de ligne à modifier et le monter ou descendre avec '''les flèches du haut ou du bas''' présentent dans la fenêtre de la liste des objets.
 +
 +
=Exemples= <!--T:55-->
 +
==Affichage simple de plusieurs lignes==
 +
La combinaison d'un groupe et d'une zone à l'intérieur de ce groupe permet l'affichage de plusieurs lignes
 +
 +
<!--T:56-->
 +
<u>Paramétrage du groupe</u> : Condition exclusive, Espacement avant du type de ligne AUCUNE : 0.60cm, Espacement après du type de ligne AUCUNE : 0cm
 +
 +
<!--T:57-->
 +
[[Fichier:OX D GRP 10.jpg|néant|vignette|950x800px]]
 +
 +
<!--T:58-->
 +
En suivant la procédure de traitement expliquée précédemment, la zone ADRMAPPING ayant pour type de ligne AUCUNE (NONE) va être exécuté sur toutes les lignes du groupe. L'espacement avant du type de ligne aucune étant de 0.60cm, le groupe va alors :
 +
# Vérification pour la ligne en cours que le type de ligne (condition) AUCUNE  corresponde bien --> OUI
 +
# Vérification qu'il y ait bien un objet dans le type de ligne (condition) AUCUNE --> OUI il y a ADRMAPPING
 +
#Descendre le curseur de 0.60cm (espacement avant du type de ligne AUCUNE)
 +
#Exécuter les objets appartenant au type de ligne AUCUNE (la zone ADRMAPPING imprimant le contenu du flux d'entrée)
 +
#Descendre le curseur de 0cm (espacement après)
 +
 +
<!--T:59-->
 +
Et répéter ce traitement pour toutes les autres lignes du groupe.
 +
 +
==Suppression des lignes blanches== <!--T:60-->
 +
 +
Il est courant d'avoir des blocs "adresse" avec des lignes blanches (absence de lieu-dit ou de complément d'adresse par exemple).
 +
 +
Pour supprimer ces lignes "blanches", nous allons créer une nouvelle condition de ligne, que nous appellerons "BLANK_LINE", prenant en charge ces dernières et permettant de ne pas générer de saut de ligne.
 +
 +
<u>Paramétrage du groupe</u> :
 +
:- Conditions exclusives : Oui
 +
 +
<u>Procédure</u> :
 +
# Créer une nouvelle zone, par exemple "BLANK"
 +
# Modifier les propriété de cette zone
 +
# En fonction du type de flux de données en entrée :
 +
#: SPOOL texte : Colonne=1, Longueur=0
 +
#: XML : ne pas spécifier le nom du champ XML à récupérer
 +
# Cette zone "BLANK" étant sélectionnée, créer une nouvelle condition "BLANK_LINE"
 +
# Modifier les propriété de cette condition
 +
#: Espacement "avant" = 0
 +
#: Espacement "après" = 0
 +
# Ajouter les critères de conditions suivants :
 +
#:- Opérateur : "est vide"
 +
#:- Ligne : "en cours"
 +
#:- Entre les colonnes : 10<sup>*</sup>
 +
#:- Et : 20<sup>*</sup>
 +
#::<sup>*</sup> : Spécifier les colonnes entre lesquelles se trouve le contenu des lignes
 +
 +
[[Fichier:Designer - Suppression lignes blanche adresses.png|1000px|vignette|centré]]
 +
 +
==Formatage particulier d'une ligne== <!--T:68-->
 +
 +
<!--T:69-->
 +
La combinaison d'un groupe et de deux zones à l'intérieur de ce groupe permet un affichage particulier d'une ligne (par exemple la première ligne du groupe) et un autre pour les autres lignes.
 +
 +
<!--T:70-->
 +
Dans cet exemple, nous allons créer un type de ligne vrai pour la première ligne du groupe (contenu : Mapping entre les colonnes 6 et 12) et laisser le type de ligne AUCUNE afficher le reste du groupe.
 +
 +
 +
<!--T:71-->
 +
<u>Paramétrage du groupe</u> :
 +
:- Condition exclusive
 +
:- Espacement avant du type de ligne AUCUNE : 0.60cm
 +
:- Espacement après du type de ligne AUCUNE : 0cm
 +
:- Espacement avant du type de ligne FIRSTLINE : 0.60cm
 +
:- Espacement après du type de ligne FIRSTLINE : 0cm
 +
 +
<!--T:72-->
 +
<u>Paramétrage du type de ligne FIRSTLINE</u> :
 +
 +
<!--T:73-->
 +
(Il y a sur la ligne en cours de la colonne 6 à la colonne 12 la valeur "Mapping")
 +
 +
<!--T:74-->
 +
[[Fichier:OX D GRP 12.jpg|néant|vignette|1200x1000px]]
 +
 +
<!--T:75-->
 +
En suivant la procédure de traitement expliquée précédemment, la zone ADRMAPPING ayant pour type de ligne FIRSTLINE va être exécuté sur les lignes  ayant '''Mapping''' pour valeur entre leurs colonnes 6 et 12.
 +
L'espacement avant du type de ligne aucune étant de 0.60cm, le groupe va alors :
 +
 +
<!--T:76-->
 +
# Traitement de la ligne en cours (cas d'une ligne <u>Mapping</u>) :
 +
#: Vérification pour la ligne en cours que le type de ligne (condition) FIRSTLINE corresponde bien --> OUI
 +
#: Vérification qu'il y ait bien un objet dans le type de ligne (condition) FIRSTLINE --> OUI il y a ADRMAPROUG
 +
#: Descendre le curseur de 0.60cm (espacement avant du type de ligne FIRSTLINE)
 +
#: Exécuter les objets appartenant au type de ligne FIRSTLINE (la zone ADRMAPROUG imprimant le contenu du flux d'entrée)
 +
#: Descendre le curseur de 0cm (espacement après du type de ligne NOT_BLANK)
 +
#Traitement de la ligne en cours (cas d'une ligne <u>autre que Mapping</u>) :
 +
#: Vérification pour la ligne en cours que le type de ligne (condition) FIRSTLINE corresponde bien --> NON
 +
#: Vérification pour la ligne en cours que le type de ligne (condition) AUCUNE corresponde bien --> OUI
 +
#: Vérification qu'il y ait bien un objet dans le type de ligne (condition) AUCUNE --> OUI il y a ADRMAPPING
 +
#: Exécuter les objets appartenant au type de ligne AUCUNE (la zone ADRMAPPING imprimant le contenu du flux d'entrée)
 +
#: Descendre le curseur de 0cm (espacement après du type de ligne AUCUNE)
 +
# Traitement de la prochaine ligne du groupe : Ligne 3, '''passage au point 2'''
 +
 +
<!--T:77-->
 +
(Et répéter ce traitement pour toutes les autres lignes du groupe)
 +
 +
==Donner plus de place à la première ligne== <!--T:78-->
 +
A COMPLETER
 +
 +
==Création d'un tableau dynamique simple== <!--T:79-->
 +
 +
La documentation suivante décrit une manière simple de construire un tableau avec des bordures dynamiques, notamment en termes de gestion des espacements avant et après, des décalages verticaux et des longueurs de traits.
 +
 +
[[ONYX:9.0:Utilisation:Tableaux_dynamiques]]
 +
 +
</translate>

Version actuelle datée du 2 mai 2024 à 16:27

Autres langues :
English • ‎français

Préambule

Cette documentation décrit le fonctionnement 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 9.x ou Opale 10.x.

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 le type de ligne (condition) associé à cet objet.

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

A noter que par défaut, une nouvelle ligne est créée avec les paramètres suivants : esp. avant = 0 et esp. après = 0,42. Il est très fortement recommandé d'intervertir ces 2 valeurs afin que la ligne spécifie son propre espacement et non l'espacement de la ligne suivante.

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 la conception des maquettes Designer, il est très important de bien les comprendre. Cela s'avèrera très utile entres autres lors de la création de tableaux dynamiques.

Zone bleue 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 ou code barre 2D

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

Code-barres 1D

Le code-barre 1D se positionne sur la baseline (il se comporte comme un 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 des groupes et types de lignes (conditions) dans les groupes est donné par cette liste : en effet, les différents types de lignes (conditions) sont traités dans l'ordre d'apparition dans la liste. Dans notre exemple ci-dessous, le type de ligne (condition) RED sera vérifié avant le type de ligne NOT_BLANK

Remarque :

Les objets hors groupes sont exécutés dans l'ordre suivant :

  1. Zone (hors groupe)
  2. Groupes
  3. Zones de texte
  4. Graphiques

Prenons pour exemple la liste des objets suivants :

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 objet (une zone affichant le contenu de la ligne). Dans cette documentation, nous allons nous focaliser sur ce groupe (Ma)

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

  1. Le groupe analyse la ligne en cours en vérifiant si celle-ci répond aux conditions du premier type de ligne. (Condition RED)
    OUI --> Passage au point 2
    NON --> Le groupe vérifie si son prochain type de ligne (condition) répond à cette ligne (Type de ligne NOT_BLANK)
    OUI --> Passage au point 2
    NON --> Le groupe vérifie si son prochain type de ligne (condition) répond à cette ligne etc
    Si plus de type de ligne (condition) personnalisé présente, alors le type de ligne AUCUNE est exécuté (Type de ligne toujours présente et vrai). Passage au point 2
  2. Vérification de la présence d'un objet dans ce type de ligne (condition)
    OUI --> Passage au point 3
    NON --> Passage au point 6
  3. Déplacement du curseur vers le bas de ESPACEMENT AVANT du type de ligne (condition) trouvé
  4. 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) ou aucun objet pour le type de ligne AUCUNE
  5. Déplacement du curseur de ESPACEMENT APRES de ce type de ligne (condition).
  6. Le groupe passe à la prochaine ligne afin de la traiter. Passage au point 1

Remarque : Ce traitement se répète pour toutes les lignes du groupe.

Le groupe peut être de deux types :

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

Remarque : Il est possible de changer l'ordre d'exécution des types de ligne. Pour ce faire, il faut sélectionner le type de ligne à modifier et le monter ou descendre avec les flèches du haut ou du bas présentent dans la fenêtre de la liste des objets.

Exemples

Affichage simple de plusieurs lignes

La combinaison d'un groupe et d'une zone à l'intérieur de ce groupe permet l'affichage de plusieurs lignes

Paramétrage du groupe : Condition exclusive, Espacement avant du type de ligne AUCUNE : 0.60cm, Espacement après du type de ligne AUCUNE : 0cm

OX D GRP 10.jpg

En suivant la procédure de traitement expliquée précédemment, la zone ADRMAPPING ayant pour type de ligne AUCUNE (NONE) va être exécuté sur toutes les lignes du groupe. L'espacement avant du type de ligne aucune étant de 0.60cm, le groupe va alors :

  1. Vérification pour la ligne en cours que le type de ligne (condition) AUCUNE corresponde bien --> OUI
  2. Vérification qu'il y ait bien un objet dans le type de ligne (condition) AUCUNE --> OUI il y a ADRMAPPING
  3. Descendre le curseur de 0.60cm (espacement avant du type de ligne AUCUNE)
  4. Exécuter les objets appartenant au type de ligne AUCUNE (la zone ADRMAPPING imprimant le contenu du flux d'entrée)
  5. Descendre le curseur de 0cm (espacement après)

Et répéter ce traitement pour toutes les autres lignes du groupe.

Suppression des lignes blanches

Il est courant d'avoir des blocs "adresse" avec des lignes blanches (absence de lieu-dit ou de complément d'adresse par exemple).

Pour supprimer ces lignes "blanches", nous allons créer une nouvelle condition de ligne, que nous appellerons "BLANK_LINE", prenant en charge ces dernières et permettant de ne pas générer de saut de ligne.

Paramétrage du groupe :

- Conditions exclusives : Oui

Procédure :

  1. Créer une nouvelle zone, par exemple "BLANK"
  2. Modifier les propriété de cette zone
  3. En fonction du type de flux de données en entrée :
    SPOOL texte : Colonne=1, Longueur=0
    XML : ne pas spécifier le nom du champ XML à récupérer
  4. Cette zone "BLANK" étant sélectionnée, créer une nouvelle condition "BLANK_LINE"
  5. Modifier les propriété de cette condition
    Espacement "avant" = 0
    Espacement "après" = 0
  6. Ajouter les critères de conditions suivants :
    - Opérateur : "est vide"
    - Ligne : "en cours"
    - Entre les colonnes : 10*
    - Et : 20*
    * : Spécifier les colonnes entre lesquelles se trouve le contenu des lignes
Designer - Suppression lignes blanche adresses.png

Formatage particulier d'une ligne

La combinaison d'un groupe et de deux zones à l'intérieur de ce groupe permet un affichage particulier d'une ligne (par exemple la première ligne du groupe) et un autre pour les autres lignes.

Dans cet exemple, nous allons créer un type de ligne vrai pour la première ligne du groupe (contenu : Mapping entre les colonnes 6 et 12) et laisser le type de ligne AUCUNE afficher le reste du groupe.


Paramétrage du groupe :

- Condition exclusive
- Espacement avant du type de ligne AUCUNE : 0.60cm
- Espacement après du type de ligne AUCUNE : 0cm
- Espacement avant du type de ligne FIRSTLINE : 0.60cm
- Espacement après du type de ligne FIRSTLINE : 0cm

Paramétrage du type de ligne FIRSTLINE :

(Il y a sur la ligne en cours de la colonne 6 à la colonne 12 la valeur "Mapping")

OX D GRP 12.jpg

En suivant la procédure de traitement expliquée précédemment, la zone ADRMAPPING ayant pour type de ligne FIRSTLINE va être exécuté sur les lignes ayant Mapping pour valeur entre leurs colonnes 6 et 12. L'espacement avant du type de ligne aucune étant de 0.60cm, le groupe va alors :

  1. Traitement de la ligne en cours (cas d'une ligne Mapping) :
    Vérification pour la ligne en cours que le type de ligne (condition) FIRSTLINE corresponde bien --> OUI
    Vérification qu'il y ait bien un objet dans le type de ligne (condition) FIRSTLINE --> OUI il y a ADRMAPROUG
    Descendre le curseur de 0.60cm (espacement avant du type de ligne FIRSTLINE)
    Exécuter les objets appartenant au type de ligne FIRSTLINE (la zone ADRMAPROUG imprimant le contenu du flux d'entrée)
    Descendre le curseur de 0cm (espacement après du type de ligne NOT_BLANK)
  2. Traitement de la ligne en cours (cas d'une ligne autre que Mapping) :
    Vérification pour la ligne en cours que le type de ligne (condition) FIRSTLINE corresponde bien --> NON
    Vérification pour la ligne en cours que le type de ligne (condition) AUCUNE corresponde bien --> OUI
    Vérification qu'il y ait bien un objet dans le type de ligne (condition) AUCUNE --> OUI il y a ADRMAPPING
    Exécuter les objets appartenant au type de ligne AUCUNE (la zone ADRMAPPING imprimant le contenu du flux d'entrée)
    Descendre le curseur de 0cm (espacement après du type de ligne AUCUNE)
  3. Traitement de la prochaine ligne du groupe : Ligne 3, passage au point 2

(Et répéter ce traitement pour toutes les autres lignes du groupe)

Donner plus de place à la première ligne

A COMPLETER

Création d'un tableau dynamique simple

La documentation suivante décrit une manière simple de construire un tableau avec des bordures dynamiques, notamment en termes de gestion des espacements avant et après, des décalages verticaux et des longueurs de traits.

ONYX:9.0:Utilisation:Tableaux_dynamiques