ONYX - 9.0 - Usage

Managing groups

De MappingDoc
Révision datée du 29 juillet 2019 à 12:32 par Alestoquoi (discussion | contributions) (Page créée avec « The rectangle is positioned on the baseline. »)
Autres langues :
English • ‎français

Introduction

This documentation describes how groups of the Designer module work. Understanding these processes is necessary to then understand the documentation on creating dynamic tables on Designer Onyx 9.x or Opale 10.x.

General information

Definition of a group

In Designer, a group is a block which processes several lines in a sequential way.

There are 2 types of input data in Designer:

  1. Paginated text
    In paginated text mode, a group processes the content of a paginated text from one line number to another. (or from one line respecting a specific condition to the next one respecting said condition).
  2. XML
    In XML mode, the group processes all the lines (line type <line name="XX"></line>) which it will own.


note: To process is the verb used, to display or to print are incorrect because the group parses all the lines it will own. For each of them and in a sequential way, it searches for their line condition (or line type) and executes all the objects linked to that condition. If it is the case, all the objects are executed so that they can be displayed. (Line, text zone, zone displaying input file data, etc)

If the group is configured as exclusive condition, then the first condition found executes the objects while other conditions will not be executed.

Otherwise, if the group is configured as non exclusive condition, then all conditions applied are executed with their associated objects.

Vocabulary

Baseline : Line which acts as reference to position the objects of the group.
note: This reference line moves towards the bottom each time a new line is executed, it follows this order:

  1. "Front spacing" shift
  2. Each object of the line is processed
  3. "After spacing" shift

Front spacing: Space dedicated to the line written above the baseline

After spacing: Space dedicated to the line written below the baseline

Work space: Space dedicated to the entire line: i.e Front spacing + After spacing

Content of a group

In paginated text mode

Here is an example of the content of a group. The group processes the content of the page from line 1 to line 10.

OX D GRP 1.jpg

Concerning line conditions or line types, if you wish to process the first line "MAPPING SUITE" differently, then create a line type which only applies to the first line. (For example: there is the term "MAPPING SUITE" on the line or use the "first line" operator)

In XML mode

Here is an example of an XML group.

<group name="MyGroup">
<line name="MyLine1">
<field name="MyField">MAPPING SUITE</field>
</line>
<line name="MyLine2">
<field name="MyField">SAS (simplified joint-stock company) with a capital of 1 000 000 €</field>
</line>
<line name="MyLine3">
<field name="MyField">18 Allée du Chateau blanc</field>
</line>
<line name="MyLige4">
<field name="MyField">59290 WASQUEHAL</field>
</line>
</group>

In this case, if you want to process the "MAPPING SUITE" line differently, create a line condition "If the name of the line is MyLine1"

Group mechanisms

General information

As seen previously, the lines of a group are parsed sequentially and their associated objects are executed. Once a group has been executed, the result is usually a series of lines. (with their associated objects as content: Line, text, rectangle for example)

There needs to be spacing between the lines of the group. If this spacing is higher than 0, than all the lines of the group are overlaid on each over.

This spacing can be configured and is related to the line type (condition) associated with this object.

Which is why we talk about Front spacing and After spacing.

Detailed diagram


The diagram below illustrates the concept of baseline, lines and workspace.


The spacing between two new lines of the group is defined by: Front spacing + After spacing (which corresponds with the workspace).

Position of the different objects in comparison to the baseline

The different objects are not always positioned in the same place in comparison to the baseline.
It is important to understand it to fully master template designing. This concept is useful to understand when creating dynamic tables.

Designer blue zone

Text is positioned on the baseline of the zone.

Horizontal line

The horizontal line is positioned on top of the baseline.

Verticale line

The top of the vertical line is positioned underneath the baseline.

Rectangle

The rectangle is positioned on the baseline.

Image

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

Code-barres 1D

Le code-barres 1D se 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 des groupes et types de lignes (conditions) dans les groupes est donné par cette liste. Les types de lignes (conditions) les plus bas dans le groupe sont exécutés après les types de lignes (conditions) les plus haut. 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 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 tye 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 toute les ligne 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

La combinaison d'un groupe et d'une zone à l'intérieur de ce groupe permet l'affichage de plusieurs lignes. Si cette zone appartient à un type de ligne excluant les lignes à contenu vide, alors cette combinaison ne n'imprimera uniquement les lignes pas vide. Le résultat sera une impression sans ligne blanche.

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 NOT_BLANK : 0.60cm - Espacement après du type de ligne AUCUNE : 0cm

Paramétrage du type de ligne NOT_BLANK :

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

OX D GRP 11.jpg

En suivant la procédure de traitement expliquée précédemment, la zone ADRMAPPING ayant pour type de ligne NOT_BLANK va être exécuté sur les lignes n'ayant pas de ligne vide. 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 non vide) :
    Vérification pour la ligne en cours que le type de ligne (condition) NOT_BLANK corresponde bien --> OUI
    Vérification qu'il y ait bien un objet dans le type de ligne (condition) NOT_BLANK --> OUI il y a ADRMAPPING
    Descendre le curseur de 0.60cm (espacement avant du type de ligne NOT_BLANK)
    Exécuter les objets appartenant au type de ligne NOT_BLANK (la zone ADRMAPPING 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 vide) :
    Vérification pour la ligne en cours que le type de ligne (condition) NOT_BLANK 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 --> NONE (il n'y a pas d'objet)
  3. Traitement de la prochaine ligne du groupe : Ligne 3, passage au point 1

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

Formatage particulier sur la première ligne

La combinaison d'un groupe et de deux zones à l'intérieur de ce groupe permet un affichage particulier pour 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

A COMPLETER