ONYX - 9.0 - Utilisation - Partie Dynamique de ONYX Designer/en
Différence entre versions
(Page créée avec « *'''Text''': prints plain text. **''Normal'': copies the values located in the positions defined by the zone whether they are letters, numbers or blanks. **''Optimized'':... ») |
(Page créée avec « *'''Barcode''': encodes and prints barcodes. The list of available barcodes can be seen in ''<span class="underline">8.1 Barcodes</span>'' ») |
||
Ligne 228 : | Ligne 228 : | ||
− | *''' | + | *'''Barcode''': encodes and prints barcodes. The list of available barcodes can be seen in ''[[#code-à-barre|<span class="underline">8.1 Barcodes</span>]]'' |
Version du 25 juillet 2019 à 13:21
Sommaire
Dynamic Part (Map Tab)
Definition
The Map part of a project corresponds to the dynamic part of designs that are made according to the datastreams processed by the template. The main elements which can be placed in this part are data files printable information.
To design this part, select the "Map F" tab (and "Map B" for the duplex of the document). In this view, elements of the "Draw" part are displayed as watermarks so that positioning the data to be printed is easier.
" Spooled File"
To retrieve and identify data to be printed, designing a Designer project is done using an example file. This example file is an image of the production spooled file to format.
Designer supports two types of data files in native mode: paginated text files and XML files in Mapping format. Input file types are configured in the project properties.
Designer processes files with .PAG or .TXT extensions. Text files usually have a ".PAG" extension because they need to be paginated. Text files can be paginated by running the "MAPPAGIFS" command in Onyx Server where an argument specifying the number of lines per page ("Overflow") will be given.
XML files need to respect a particular syntax so that the application can properly process them. (see 6.3 XML Mode: syntax and specifications).
To open and display an example file in DESIGNER, the spooled file view needs to be activated in the Display Menu:
In the "Home" tab, click on and select the file you want to load in the application.
The spooled file view then displays the data from the spooled file to format.
To help you design your project, you can preview the result without having to print the document. To do so, click on the Preview button in the Home menu.
XML: syntax and specifications
In XML mode, the design principles are the same and are put in application using an example file loaded in the application.
As stated in 4.2. Creating a project, to load a .xml document, it is important not to forget to go to the project Properties and check that in Parameters > Mode = XML.
The Spooled file view is then called the XML view and displays the content of the file in a tree view.
Data structure
XML files that are processed by Designer in native mode have to respect a specific pattern and syntax, such as:
<page name="..."> … </page> tags mark out the pages of the document. In the last example, there is only one page.
- <field name="...">value1</field> tags correspond to unit-based information (the equivalent of ‘zones’/'fields' in Designer).
- <group name="..."> … </group> tags refer to a particular number of lines which contain zones, such as a ‘group’ in Designer.
- <line name="…"> … <line> tags correspond to the lines inside of these groups.
If we were to use this structure with a paper invoice:
- <page name="..."> … </page> corresponds to the pages of the invoice.
- <group name="..."> … </group> marks out the body of the invoice (from the first line to the last).
- <line name="…"> … <line> describes every line in the body of the invoice.
- <field name="...">value1</field> can correspond to two things:
- If this tag is on the outside of a group, it corresponds to unit-based information in the invoice. In which case, value1 corresponds to the invoice number in the header, for instance, or to the client number, the type of invoice, etc.
- If this tag is inside a group, value1 corresponds to the value of the zone in the line. For instance, the product code, its name, price, etc.
XML pattern specifications
The specifications needed for Designer to process the file are the following:
The XML header needs to specify the file encoding.
Example : <?xml version="1.0" encoding="UTF-16" standalone="yes" ?>
The root tag of XML data needs to be called doc.
All tags mentioned hereafter need to have at least one attribute named name. Information will be identified, retrieved and formatted by the application via the use of this attribute.
The tags and attributes names are case-sensitive and need to be written in lowercase letters.
For the application to access it, data must be placed in pages in between the <page name="…"> and </page> tags. One document can contain several pages.
Inside a page, data is organised per unit-based fields (balise <field name="…">) or per information groups (balise <group name="…">).
Information groups are composed of lines (balise <line name="…">).
The lines contain unit-based informations (balise <field name="…">).
Here is an example of an XML file:
XML data can be placed on the outside of a page as information linked to the overall document and not to the page in particular. However this data will not be accessible to Designer and thus cannot be processed to design the document. Nonetheless, this data can be used in the M-Processing Server engine.
XML view in Designer
An XML example file is loaded in DESIGNER in the same way that is use to load a text file. In the XML view, data is displayed as a list of elements.
Page break on an XML field value
In the Proprieties of a group, the page break generation can now trigger on the change in XML field value.
Par example:
<group name="groupe">
<line name="ligne">
<field name="id">1</field>
<field name="data"> data </field>
</line>
<line name="ligne">
<field name="id">1</field>
<field name="data"> data </field>
</line>
<line name="ligne">
<field name="id">2</field>
<field name="data"> data </field>
</line>
<line name="ligne">
<field name="id">2</field>
<field name="data"> data </field>
</line>
…
</group>
In this example, if the field used to generate a page break is the field "id" then the page break will be generated after the execution of the second line.
There are several options in the interface for the Page break parameter:
- None: the group does not generate any page break.
- Limit: the group triggers a page break on a positioning limit.
- XML Field: the group triggers a page break on a XML field value change.
- Limit and XML Field: the group triggers a page break on a positioning limit and on a XML field value change.
When generating automatic page breaks, managing the recovery of headers is possible with the options "Header" and "Last header":
- Header: to choose the name of the line of the XML file which acts as header.
- Last header: if checked, only the last header is kept. The box is checked by default.
When generating a page break, the last header (or all of the above headings, if the option is unchecked) is used at the start of the new page.
In the XML, if two header lines follow each other, they are considered as one single header.
If a page break is triggered just after a header line, it is not printed and is carried over to the next page.
Edit a variable list of items as a table
To display a list of items in an XML group as a table, the script tool must be used.
The rowtotable feature rearranges the lines of a group so as to obtain a horizontal distribution of the elements.
Syntax:rowtotable(name of the group, maximal number of columns in the table);
The rowtotable feature has two settings:
- Name of the group: contains the name of the group to be reorganized in a table, surrounded by double quotes.
- Maximal number of columns in the table: Maximal number of columns in the table.
Note: All the lines of a group should have the same name.
For example:
<group name="invoice">
<line name="item">
<field name="name">item 1</field>
</line>
<line name="item">
<field name="name">item 2</field>
</line>
<line name="item">
<field name="name">item 3</field>
</line>
<line name="item">
<field name="name">item 4</field>
</line>
<line name="item">
<field name="name">item 5</field>
</line>
<line name="item">
<field name="name">item 6</field>
</line>
<line name="item">
<field name="name">item 7</field>
</line>
<line name="item">
<field name="name">item 8</field>
</line>
</group>
To rearrange this group as a three-column table, use the following script:
rowtotable("invoice",3);
This script will effectively change the group which then becomes:
<group name="invoice">
<line name="item">
<field name="name_1">item 1</field>
<field name="name_2">item 2</field>
<field name="name_3">item 3</field>
</line>
<line name="item">
<field name="name_1">item 4</field>
<field name="name_2">item 5</field>
<field name="name_3">item 6</field>
</line>
<line name="item">
<field name="name_1">item 7</field>
<field name="name_2">item 8</field>
</line>
</group>
Dynamic elements
This part of the documentation presents the basic elements that can be added in the dynamic part of a project in order to get started with the main features of the application.
Zone
Definition
A zone is the main element, which allows you to retrieve information in the input data in order to position and format them in the final graphical document.
In text mode, the information is identified by the following three elements of data:
- a row number,
- a column number,
- a length.
In XML mode, it is identified by the name of the XML field (field tag).
A zone can only read one row at a time.
It is represented in the following two ways in the designing space:
- The zone is empty, no data is associated with it: an icon appears in its upper right corner.
- The zone is associated with an element of data, it appears without an icon.
A zone is identified by its name, defined in the properties window (see a.2 Creating a zone for more details).
Creating a zone
There are two methods you can use to create a zone:
Select the corresponding icon and its type in the Data tab and hold the button of your mouse down where you want the element to be placed. This method creates an empty zone. To link the zone to an element of data from the source file, select the data in the spooled file view (see the second method below) then, drag and drop it in the zone which was created previously, by holding down the Ctrl key.
Select the data to be recovered in the Spooled file view then, drag and drop it where you want, in the designing space to create a zone automatically linked to the data you selected.
Once the zone has been created, select it and display the 'Properties view to fill in the following information:
Name :
Name (of the zone): this information is used as internal information in Designer, it identifies the different objets in the project. When creating an empty zone, this field is also empty and equals to the value of the data as the zone is created from the Spooled file view.
Text printed before/after: to add text before and/or after the retrieved information.
Position :
Position of the information in the data spooled file: column, length, beginning line.
This is also used to extract a certain quantity of information in XML mode.
Position in the document:
to change the position of the zone on the page.
Data Type:
defines how the Designer application processes the information retrieved (see a.3 Types of zones).
Font:
To set all formatting options: font, size, colour, framing, orientation, etc.
Types of zones
The Designer application offers various processing options according to the type of data to process:
- Text: prints plain text.
- Normal: copies the values located in the positions defined by the zone whether they are letters, numbers or blanks.
- Optimized: copies the characters located in these positions except for blanks at the beginning and end of these positions. The framing to the left or to the right is always observed. There is no shift due to blanks in the spool.
- Substitution: used to replace a value of the spool by another one stored in a file called replacevalue.txt. By default, this file is in its blank state in the Designer installation folder. To carry out the substitutions, place it in the lgobitmap folder. The folder needs to contain the values to be replace followed by replacement values and separated by a tab. This sub-type is explained in further detail in 8.3. Replacing characters.
- Translate: substitutes a value for its translation in another language. A zone type Tools / Set Lang is used beforehand to define the file with the translated values. The program searches for the corresponding input in the translation file for each Texte / Translate zone which is defined in the template. The file must be placed in the lgobitmap folder and its name must start with "Translate_".
- Compressed: zone displaying the recovered text into the dedicated space. The text occupies the width of the zone and adjusts the font size between a maximum and a minimum so that the text covers all the dedicated space.. If the minimum font size does not display the entire text, it is truncated and followed by "…".
- Truncated: zone displaying the recovered text into the space allowed by the zone width. If the text cannot be fully displayed, it is truncated followed by "...".
- Barcode: encodes and prints barcodes. The list of available barcodes can be seen in 8.1 Barcodes
- Outils : permet d’insérer un numéro de page, des images, … mais aussi d’afficher le nombre total de pages, de pages dans le lot en cours, …
- N° Page : permet d'imprimer le numéro de la page éditée. Ce numéro n'est pas forcément le même que le numéro de page du spool initial. En effet, si M-Processing Server est conditionné afin d'exclure certaines pages, le nombre de pages éditées n'est pas forcément le même que le nombre de pages du spool d'origine.
- N° Lot : permet d’afficher le numéro du lot.
- N° Page (Lot) : permet d’afficher le numéro de la page dans le lot.
- Nombre total de pages : permet d’afficher le nombre total de pages dans le document entier.
- Nombre total de lots : permet d’afficher le nombre total de lots dans le document entier.
- Nombre total de pages (Lot) : permet d’afficher le nombre total de pages dans le lot.
- Remplacement spécifique : remplace une valeur présente dans le spool traité par une autre valeur récupérée dans un fichier. Par exemple, vous pouvez remplacer le numéro de client qui apparaît dans le spool par le nom de ce client que vous récupérez dans un fichier base de données.
- Image : imprime une image différente en fonction d'une valeur du spool.
- Export : ce type de zone permet de récupérer une information du spool et de l'exporter vers un fichier physique.
- Rempl. Fichier : récupère du texte dans un fichier. Le nom de la zone doit correspondre au nom du fichier. Celui-ci doit se trouver dans le dossier lgobitmap et s’appeler data_NOMDELAZONE.txt (où NOMDELAZONE est le nom réel de la zone). Les paramètres de ligne et longueur de la zone indiquent la ligne de texte et la longueur du texte à récupérer.
- Input Text : permet de créer champs de saisie en interactif pour concevoir des formulaires SOAP au format PDF ou HTML. Lorsque l'utilisateur ouvre le formulaire ainsi généré dans Adobe Reader ou un navigateur internet, celui-ci peut remplir les champs de saisie et envoyer les données sur une URL M-Processing Server dans un point d’entrée Web en cliquant sur le bouton SUBMIT, celui-ci étant en réalité une zone Outils / Input Text appelée SUBMIT (nom système).
- HyperLink : ajoute un lien URL.
- Set Lang : permet de spécifier le fichier contenant les traductions. Celui-ci doit se trouver dans le dossier lgobitmap et son nom doit commencer par Translate_. Cette zone particulière ne s’imprime pas dans le document final, elle n’est visible ni à la visualisation ni au re-maquettage. Le nom de cette zone n’est pas très important, en revanche elle doit être déclarée avant toute autre zone Designer nécessitant une traduction. Ensuite, pour chaque zone de type Texte / Translate définie dans la maquette, le programme cherchera l'entrée correspondante à la valeur de la zone dans le fichier qui contient les traductions.
- Message XPS : permet d’insérer dans la page en cours un fichier XPS. La zone est en fait un lien vers un fichier XPS présent sur le serveur M-Processing Server. Ce fichier ne doit contenir qu’une seule page et se trouver dans le répertoire lgobitmap (directement ou dans un sous-répertoire). La casse n’a pas d’importance. Si vous modifiez le fichier XPS, cela impactera tous les projets utilisant celui-ci.
- Fichier XPS : par opposition avec les Messages XPS, les fichiers insérés à l’aide de zones de type Fichier XPS :
- peuvent contenir plusieurs pages.
- sont des pages entières.
- créent des pages supplémentaires dans le fichier de sortie.
- Métadonnée : permet d’indexer le document pour l’archivage (zones non imprimées). La longueur des métadonnées est iilimitée.
- Index : zone index par défaut et utilisable dans les manipulations XPS et dans M-Storage Manager en tant que critère.
- MapFrom : index réservé pour l’envoi de mail. La valeur portée par cette zone sera utilisée pour définir l’expéditeur du mail.
- MapSend : index réservé pour l’envoi de mail. La valeur portée par cette zone sera utilisée pour définir le destinataire du mail.
- MapCopy : index réservé pour l’envoi de mail. La valeur portée par cette zone sera utilisée pour définir le destinataire en copie.
- MapBCopy : index réservé pour l’envoi de mail. La valeur portée par cette zone sera utilisée pour définir le destinataire en copie cachée.
- MapNote : index réservé pour l’envoi de mail. La valeur portée par cette zone sera utilisée pour définir le corps du mail.
- MapSubject : index réservé pour l’envoi de mail. La valeur portée par cette zone sera utilisée pour définir le sujet du mail.
- MapOrg : index réservé pour l’envoi de fax. La valeur portée par cette zone sera utilisée pour définir l’expéditeur.
- MapTo : index réservé pour l’envoi de fax. La valeur portée par cette zone sera utilisée pour définir le destinataire.
- MapUser : index réservé pour l’envoi de fax. La valeur portée par cette zone sera utilisée pour définir le propriétaire.
- MapFormat : index réservé pour l’envoi de fax. La valeur portée par cette zone sera utilisée pour définir le format du document (.BMP, .JPG, .EXE, .PAG, .PDF, .TIF, .TIF_FAX, .TXT, .XLS).
- Mémoire : permet d’insérer et de mémoriser des informations (non imprimées) qui seront reprises et réutilisées par la suite dans la maquette. (Cf. paragraphe 8.1.b. Cumul de données)
- Texte : mise en mémoire d'une information alphanumérique et suppression des espaces après le texte.
- Texte avec espaces : mise en mémoire d'une information alphanumérique en conservant les espaces après le texte.
- Entier : mise en mémoire d'une information numérique de type entier.
- Flottant : mise en mémoire d'une information numérique de type flottant.
- SQL : mise en mémoire d’une information alphanumérique retrouvée dans une base de données par l’exécution d’une requête SQL.
- Protect SQL : mise en mémoire d’une information alphanumérique retrouvée dans une base de données par l’exécution d’une requête SQL protégée.
- Calcul Mathématique : utilisation des zones mémoire pour effectuer un calcul.
- Remplacement Mémoire : impression des informations mises en mémoire.
- Memory Translate : mise en mémoire d’une information alphanumérique, résultat de la traduction automatique de l’information récupérée dans le spool.
- Graphique : permet de générer un graphique à partir de plusieurs données
- Données du graphique.
- Données de l'axe X.
- Données de l'axe Y.
- Titre du graphique.
- Titre de l'axe X.
- Titre de l'axe Y.
- Données de la légende.
- Valeur minimum de l'axe Y.
- Valeur maximum de l'axe Y.
- Nombre d'intervalles de l'axe Y.
- Arrondir à n près de l'axe Y.
- Origine de l'axe Y.
La construction d’un graphique est détaillée dans le paragraphe 8.6. Construction d’un graphique.
Designer a la possibilité de convertir automatiquement les anciens types de graphique en graphiques complexes. Cette fonctionnalité permet de faciliter la conversion d’anciens projets en projets XPS.
- Conversion : permet de convertir des données numériques selon les règles de conversion (Euro à Dollar par exemple) définies dans Onyx Server > Gestion des Formats M-Designer > Gestion des Taux (01=E1 ; 02=E2 ; …)
- XPS PrintTicket :
- Copy : nombre d’exemplaire à imprimer.
- Input Bin : numéro de bac d’entrée (alimentation de papier sur imprimante).
- Output Bin : numéro de bac de sortie.
- Media Type : Type de papier (A4, A5, etc...).
- Force Front Side : Conditionne le mode Recto, Recto / Verso lors de l’impression.
- Commandes : permet d’ajouter des données dans le flux d’impression directement en langage d’impression. Tout comme pour les propriétés du projet Document et Page (cf. 4.2. Création d’un projet), une zone « Commandes » permet de définir des données en langage imprimante pour les langages suivants : PCL5, APFDS, PDF, ZPL, DPL, TEC, IGP, IPL et EPL. Une zone peut contenir des données pour plusieurs langages différents. Lors de la conversion du XPS vers le langage de sortie, la donnée correspondante au langage de sortie sera utilisée.
Langage : sélection du langage.
Activer : Active la zone pour le langage sélectionné.
Pré- et Post-Imprimé : Donnée écrite avant et après la donnée récupérée du spool.
L’écriture de données hexadécimales dans le « pré- » et « post-imprimé » est possible en utilisant la syntaxe suivante : \x suivit de la valeur hexadécimale sur deux caractères.
Un Groupe
Définition
Un groupe permet de récupérer plusieurs lignes d’un flux. Il est caractérisé par une ligne de début et une ligne de fin. Sur l’espace de conception, il est représenté en rouge :
Un groupe peut être fixe (lignes de début et de fin fixes) ou variable (lignes de début et de fin variables).
Créer un groupe fixe
Pour créer un groupe fixe, les méthodes disponibles sont équivalentes à la création d'une zone.
- Créer un groupe vide à partir du menu Ruban, sélectionner les données du fichier source et de les glisser-déposer dans le groupe précédemment créé en maintenant la touche Ctrl enfoncée.
- Sélectionner directement les données dans la vue Spool et utiliser le glisser-déposer à l'endroit désiré sur l'espace de conception pour créer automatiquement un groupe lié à la zone de sélection du spool.
Une fois le groupe créé, il faut renseigner ses informations dans la vue des Propriétés :
Nom :
- Nom (du groupe) : information interne à Designer, permettant d’identifier les différents objets dans le projet. Ce champ est vide lors d'une création d'un groupe à vide et vaut la valeur de la première ligne de la sélection de données lors de la création d'un groupe à partir de la vue Spool
- Position dans le document :
- Permet de modifier le positionnement du groupe dans la page.
- Position :
- Identification des lignes de début et fin du bloc d’information à récupérer.
- Décalage : position d’impression de la première ligne par rapport au groupe.
- Option :
- Conditions exclusives : pour une ligne du groupe, une condition vraie s’exécutera de manière exclusive sans tester les suivantes.
- Tableau : permet aux zones du groupe de se comporter comme les cellules d’un tableau. Les zones d’une même ligne se retrouvent donc automatiquement collées. Redimensionner ou déplacer une zone impacte la taille te le positionnement des zones adjacentes. De plus, les lignes du groupe (ou conditions) sont visuellement représentées dans la fenêtre de conception. Les zones sont, quant à elles, réparties verticalement en fonction de leur ligne. Cette option est détaillée dans le paragraphe 8.5.b. Dessiner un tableau dynamique.
- Variable :
- Permet de changer le type de groupe : de fixe (les lignes de début et de fin sont statiques) à variable (les lignes de début et de fin sont variables et définies par des conditions).
Si l’utilisateur demande un aperçu, aucune information ne sera imprimée. En effet, un groupe ne définit que des bornes entre lesquelles de l’information doit être récupérée dans le spool.
Les bornes de la zone de sélection des données étant définies grâce aux champs ligne de début et ligne de fin du groupe, il convient maintenant de récupérer les données en créant une ou plusieurs Zones à l'intérieur du groupe.
En résumé :
- On configure la zone de sélection du bloc de données par la création d'un Groupe :
- On récupère les données à l'intérieur de ce bloc de données par la création d'une Zone :
- Nous pouvons alors constater que toutes les lignes de notre bloc de données sont récupérées grâce à l'aperçu (Ctrl+w). Il est possible de créer plusieurs Zones issues du bloc de données, de les placer dans le groupe et de conditionner leur mise en page (voir 6.4.c. Une condition).
Créer un groupe variable
Le principe du groupe variable est identique au groupe fixe c’est-à-dire qu’il permet de récupérer plusieurs lignes d’information dans le spool. Lorsque la ligne de début ou la ligne de fin du groupe n'est pas toujours au même endroit dans le spool ou que vous voulez que les informations ne soient pas toujours imprimées au même endroit dans la page, vous devez alors utiliser un groupe variable.
Un groupe variable utilise une condition de début et une condition de fin. Le groupe commence à s'exécuter quand une condition est validée et il s'arrête lorsqu'une autre condition est validée ou lorsqu'il a exécuté un certain nombre de lignes. Un groupe variable peut-être exécuté une ou plusieurs fois dans la page.
De plus, la position des valeurs imprimées par un groupe variable peut être variable.
Vous pouvez définir, par exemple, que les valeurs imprimées par un groupe se positionnent après les valeurs imprimées par un autre groupe. Nous parlerons alors de positionnement relatif.
Vous pouvez aussi définir que le total de la facture s'imprime toujours un centimètre après la dernière ligne de produits (qu'il y ait 5 ou 20 lignes). La position du total facture changera donc en fonction du nombre de lignes de produits que contient cette facture.
Un groupe peut être variable en :
- taille : les lignes de début et de fin sont déterminées dynamiquement par conditions.
- position d’impression : les groupes variables peuvent être chainés les uns à la suite des autres, le groupe n+1 commençant à s’imprimer dès que le groupe n est terminé.
Ces deux types de variable peuvent exister de façon distincte ou conjointe.
Pour créer un groupe variable, il suffit de cliquer sur l’icône puis de dessiner le groupe sur l’espace de conception.
La vue Propriétés s’affiche pour renseigner les informations du groupe :
- Nom :
- Nom (du groupe) : information interne à Designer, permettant d’identifier les différents objets dans le projet. Ce champ est vide lors d'une création d'un groupe à vide.
- Position dans le document :
- Permet de modifier le positionnement du groupe dans la page.
- Position :
- Décalage : position d’impression de la première ligne par rapport au groupe.
- Option :
- Conditions exclusives : pour une ligne du groupe, une condition vraie s’exécutera de manière exclusive sans tester les suivantes.
- Répéter : si la condition de début apparaît plusieurs fois, le groupe s'exécutera plusieurs fois à condition que la condition de fin ait été validée entre temps.
- MapOffice : permet de vérifier la conception d’un groupe MapOffice (voir la documentation Connect pour la conception d’un document Office).
- Tableau : permet aux zones du groupe de se comporter comme les cellules d’un tableau. Les zones d’une même ligne se retrouvent donc automatiquement collées. Redimensionner ou déplacer une zone impacte la taille te le positionnement des zones adjacentes. De plus, les lignes du groupe (ou conditions) sont visuellement représentées dans la fenêtre de conception. Les zones sont, quant à elles, réparties verticalement en fonction de leur ligne.
- Variable :
- Permet de changer le type de groupe : de fixe (les lignes de début et de fin sont statiques) à variable (les lignes de début et de fin sont variables et définies par des conditions).
- Espacement : Espacement avant l'impression du groupe.
- Type de condition d'arrêt : Permet de conditionner la fin de l'exécution du groupe variable.
- Groupe précédent : Indique après quel groupe fixe le groupe variable s'exécute.
Une Condition
Condition d'Exécution
Les conditions d'exécution permettent d'exécuter, ou non, l'objet conditionné en fonction d'une valeur dans le spool.
Une condition peut s’appliquer à la fois sur une page, un composant, un groupe, une zone, une ligne ou un rectangle.
Si la condition est validée alors l'objet est exécuté. Dans le cas contraire, aucune autre action n'est réalisée. Pour réaliser deux actions différentes en fonction de la présence ou non d'une valeur de spool, il vous faut donc créer deux objets.
Exemple : Vous voulez écrire différemment en noir quand il y a la valeur Facture et en rouge quand il y a la valeur Avoir dans une ligne de spool. Vous créez alors une zone avec une police noire quand il y a Facture, et une zone qui utilise une police rouge quand il y a Avoir car la création d’une seule condition dans une même zone : « police noire si Facture et police rouge si Avoir » n’est pas possible.
Les conditions sont gérées différemment si l'objet est fixe ou s'il appartient à un groupe. En effet, dans un groupe, la condition est nommée et elle est rattachée au groupe. Nous pouvons donc associer plusieurs objets à une même condition sans devoir ressaisir celle-ci à chaque fois.
Condition de début
La condition de début détermine la première ligne d'exécution du groupe variable. Le groupe commence à s'exécuter sur la ligne où la condition de début est vraie.
Onyx Server teste la validité de la condition à partir de la première ligne du spool (ligne 1). Dès que la condition est vérifiée, le groupe commence à s'exécuter. Il s'arrête lorsque la condition de fin est vérifiée à son tour.
Il est également nécessaire de définir au niveau de la condition de début si le groupe est imprimé de manière fixe sur la page ou s'il est imprimé en positionnement relatif par rapport à un autre groupe. Il est aussi possible de choisir que le groupe s'imprime un centimètre après la fin d'un autre groupe.
Si la condition de début de groupe n'est vérifiée sur aucune des lignes du spool, le groupe n'est pas exécuté.
Si la condition de début est vérifiée sur plusieurs lignes du spool, le groupe ne s'exécute qu'une seule fois : à partir de la première ligne où la condition est vérifiée.
Condition de fin
La ligne de fin d'un groupe variable peut être définie de deux manières :
- nombre de lignes d'exécution,
- condition de fin.
En connaissant le nombre de lignes que doit exécuter le groupe variable, Il est alors possible de paramétrer ce nombre en entrée après avoir coché Nombre de lignes.
La condition d'arrêt n'est pas un test de comparaison par rapport à une valeur présente dans le spool mais le nombre de ligne après lesquelles le groupe s'arrête.
La condition de fin détermine la dernière ligne d'exécution du groupe variable. Le groupe arrête de s'exécuter sur la ligne où la condition de fin est vraie. De plus, cette ligne peut être exclue (non exécutée) ou incluse (exécutée).
Condition Exclusive
Dans un groupe, il est possible de gérer plusieurs conditions. Par défaut, il y en a une seule qui est la condition Aucune et qui s'applique pour toutes les nouvelles zones créées.
Exemple :
Dans un groupe contenant des lignes de produit, il peut y avoir des lignes de sous-totaux. Il est possible d’utiliser plusieurs zones pour imprimer ces différents types de ligne (pour mettre les sous-totaux en gras par exemple) grâce à une condition.
Ici, il y a donc, à la base, deux conditions : une condition Sous-total à laquelle est rattachée au moins une zone qui imprime en gras et la condition Aucune à laquelle est rattachée la zone qui écrit en standard pour les lignes de produit.
Si le groupe fonctionne en conditions exclusives, une seule condition est appliquée par ligne, même si plusieurs sont vraies (seule la première créée est appliquée). Les lignes de produit sont imprimées en standard par la zone sous la condition Aucune et les lignes de sous-totaux sont imprimées en gras par la zone sous la condition "Sous-total".
Si le groupe fonctionne en conditions non exclusives, toutes les conditions vérifiées sont appliquées par ligne. Dans ce cas, les lignes de sous-totaux sont imprimées deux fois, une fois en gras par la zone sous la condition Sous-total et une fois en standard par la zone sous la condition Aucune. En effet, la condition Aucune est toujours vraie.
Le fonctionnement en conditions non exclusives est très peu utilisé. Il oblige à ajouter dans les filtres d'une condition les conditions inverses des autres conditions. Dans ce type de fonctionnement, la condition Aucune n'est pas utilisée. Il sert uniquement à répéter l'impression d'une information, ou à imprimer sur deux lignes des informations figurant sur une même ligne de spool.
La condition Aucune ne peut pas être supprimée. Si vous ne souhaitez pas l'utiliser, il faut n'y rattacher aucun objet.
Type de comparaison
Lors du paramétrage des conditions, vous pouvez tester :
L'existence dans la ligne : il y a dans une ligne ou dans toute la page.
L'absence dans la ligne : il n'y a pas dans une ligne ou dans toute la page.
La supériorité stricte (numérique) : >.
L'égalité ou la supériorité (numérique) : =>.
L'infériorité stricte (numérique) : <.
L'égalité ou l'infériorité (numérique) : =<.
Le numéro de la page.
Le numéro de la ligne.
Ces tests permettront à Designer de valider ou pas une condition.