ONYX - 9.0 - Utilisation

Partie Dynamique de ONYX Designer

De MappingDoc

Autres langues :

Partie Dynamique (Onglet Map)

Définition

La partie Map d’un projet correspond à la partie dynamique des éditions dépendant de chaque flux de données traité par ce modèle. Les éléments principaux pouvant être placés dans cette partie sont, tout d’abord, les informations imprimables des fichiers de données.

L’élaboration de cette partie se fera en sélectionnant l’onglet Map R (Map V pour le verso du document). Dans cette vue de conception, les éléments de la partie Draw apparaissent en filigrane pour faciliter les positionnements des données à imprimer.

Notion de "Fichier Spool"

Pour repérer et identifier les données à imprimer, la conception d’un projet Designer s’appuie sur un fichier exemple. Ce fichier exemple est l’image du spool de production à mettre en forme.

Deux types de fichiers de données sont pris en charge nativement dans Designer : des fichiers textes paginés et des fichiers XML au format Mapping. Le paramétrage du type de fichier en entrée est fait dans les propriétés du projet.

Les fichiers traités par Designer peuvent avoir une extension .PAG ou .TXT. Historiquement, les fichiers textes ont pour extension .PAG car ils doivent être paginés. Un fichier non paginé peut être paginé grâce à la commande MAPPAGIFS depuis Onyx Server où un argument précisant le nombre de lignes par page ("Overflow") sera notamment précisé.

Les fichiers XML doivent respecter une syntaxe prédéfinie pour être correctement exploitables dans l’application (voir chapitre 6.3 Mode XML : syntaxe et spécifications).

Pour ouvrir et afficher un fichier d’exemple dans Designer, la vue spool doit être activée dans le menu Affichage :

Onyxdesigner-image33.png

Pour charger le fichier spool dans l’application, dans l’onglet Accueil, il faut cliquer sur Onyxdesigner-image34.png et sélectionner le fichier à charger.

La vue Spool affiche alors les données à mettre en forme :

Onyxdesigner-image35.png

Onyxdesigner-image36.png

Pour aider l’utilisateur dans la conception de son projet, il est possible de pré-visualiser le résultat sans avoir à imprimer le document. Pour cela, il suffit de cliquer simplement sur le bouton Aperçu dans le menu Accueil.

Mode XML : syntaxe et spécifications

En mode XML, les principes de conceptions sont les mêmes et s’appuient sur un fichier d’exemple chargé dans l’application.

Comme décrit dans le paragraphe 4.2. Création d’un projet, pour charger un document .xml, il ne faut surtout pas oublier d’aller dans les Propriétés du projet et vérifier que dans Paramètres > Mode = XML.

Onyxdesigner-image37.png

La vue Spool s’appelle alors Vue XML et présente le contenu du fichier sous forme d’arborescence.

Onyxdesigner-image38.png

Structure de données

Les fichiers XML nativement pris en charge par Designer doivent respecter un schéma et une syntaxe prédéfinis dont voici une illustration :

Les balises <page name="..."> … </page> permettent de délimiter les pages du document. Dans l’exemple précédent, il n’y a qu’une page.

  • Les balises <field name="...">value1</field> représentent une information unitaire (l’équivalent des zones dans Designer).
  • Les balises <group name="..."> … </group> désignent un certain nombre de lignes contenant des zones, comme un groupe dans Designer.
  • Les balises <line name="…"> … <line> représentent les lignes à l’intérieur de ces groupes.

En procédant par analogie avec une facture papier :

  • <page name="..."> … </page> représente les pages de la facture.
  • <group name="..."> … </group> représente la délimitation du corps de la facture (de sa première ligne à sa dernière ligne).
  • <line name="…"> … <line> décrit le contenu de chaque ligne du corps de la facture.
  • <field name="...">value1</field> peut représenter deux possibilités :
    • Si cette balise est en dehors d’un groupe, il s’agit d’une information unitaire dans la facture. Dans ce cas, value1 représente le n° de facture dans l’entête par exemple, ou le n° de client, le type de facture, etc.
    • Si elle se trouve à l’intérieur de la définition d’un groupe, value1 désigne la valeur de la zone dans la ligne. Par exemple, le code produit, désignation, prix, etc.

Spécifications du schéma XML

Les spécifications attendues par Designer sont les suivantes :

  • L’entête XML doit préciser l’encodage du fichier.

    Exemple : <?xml version="1.0" encoding="UTF-16" standalone="yes" ?>

  • La balise racine des données XML doit s’appeler doc.

  • Toutes les balises mentionnées ci-après doivent avoir au moins un attribut nommé name. C’est par cet attribut que les informations seront identifiées, récupérées et mises en forme par l’application.

  • Les noms des balises et des attributs sont sensibles à la casse et doivent être écrits en lettres minuscules.

  • Pour être accessibles par l’application, les données doivent être localisées dans des pages entre les balises <page name="…"> et </page>. Un même document peut contenir plusieurs pages.

  • A l’intérieur d’une page, les données sont ensuite organisées par champs unitaires (balise <field name="…">) ou par groupes d’informations (balise <group name="…">).

  • Les groupes d’informations sont composés de lignes (balise <line name="…">).

  • Les lignes contiennent des informations unitaires (balise <field name="…">).

Voici un exemple de fichier XML :

Onyxdesigner-image40.png

Des données XML peuvent se situer en dehors d’une page comme des informations liées au document dans son ensemble et non à une page en particulier. Elles ne seront, cependant, pas visibles par l’application M-Designer et donc non utilisables pour la conception du document. Elles pourront en revanche être utilisées dans le moteur M-Processing Server.

Vue XML dans Designer

Onyxdesigner-image41.png

Le chargement d’un fichier d’exemple XML dans Designer se fait de la même manière qu’un fichier texte. Dans la vue XML, la présentation des données apparait sous forme d'une liste d'éléments.

Rupture de page sur valeur d'un champ XML

Dans les Propriétés d’un groupe, la génération d’un saut de page peut à présent se déclencher sur le changement de valeur d’un champ XML.

Par exemple :

<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>

Dans cet exemple, si le champ utilisé pour générer un saut de page est le champ "id", un saut de page sera alors généré après l’exécution de la deuxième ligne.

Dans l’interface, le paramètre « Saut de page » d’un groupe possède plusieurs choix :

Onyxdesigner-image42.png

Onyxdesigner-image43.png

Onyxdesigner-image44.png

Onyxdesigner-image45.png

  • Aucun : le groupe ne génère aucun saut de page.
  • Limite : le groupe déclenche un saut de page sur une limite de positionnement.
  • Champ XML : le groupe déclenche un saut de page sur changement de la valeur d’un champ XML.
  • Champ XML et Limite : le groupe déclenche un saut de page sur changement de la valeur d’un champ XML et sur une limite de positionnement.

La gestion de la reprise d’en-têtes, lors de la génération de sauts de page automatiques, est possible grâce aux options « En-tête » et « Dernier en-tête » :

Onyxdesigner-image46.png

  • En-tête : permet de choisir le nom de la ligne du fichier XML servant d’en-tête.
  • Dernier en-tête : si cochée, cette option permet de ne conserver que le dernier en-tête. La case est cochée par défaut.

Lors de la génération d’un saut de page, le dernier en-tête (ou tous les en-têtes précédents, si l’option est décochée) sont repris en début de la nouvelle page.

Si dans le XML deux lignes d’en-tête se suivent, elles sont alors considérées comme un seul en-tête.

Si un saut de page se déclenche juste après une ligne d’en-tête, celle-ci n’est pas imprimée et est reporté sur la page suivante.

Éditer une liste variable d’éléments sous forme de tableau

Pour pouvoir afficher une liste d’éléments présents dans un groupe XML sous forme de tableau, il faut passer par l’outil de scripts.

La fonction rowtotable permet de réorganiser les lignes d’un groupe de manière à obtenir une répartition horizontale des éléments.

Syntaxe :
rowtotable(nom du groupe, nombre maximal de colonne);

La fonction rowtotable possède deux paramètres :

  • Nom du groupe : Contient le nom du groupe devant être réorganisé en tableau, entouré de doubles guillemets.
  • Nombre maximum de colonne : Nombre maximum de colonne du tableau.

Remarque : Toutes les lignes du groupe doivent avoir le même nom.

Prenons l’exemple de ce groupe :

<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>

Pour réorganiser ce groupe sous la forme d’un tableau de trois colonnes, il faut utiliser le script suivant :

rowtotable("invoice",3);

Ce script aura pour effet de modifier le groupe qui devient alors :

<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>

Eléments Dynamiques

Cette partie de la documentation présente les éléments de base pouvant être ajoutés dans la partie dynamique d’un projet ce qui permet une prise en main des fonctionnalités principales de l’application.

Zone

Définition

Une zone est l’élément principal qui permet de récupérer des informations dans les données en entrée afin de les positionner et de les mettre en forme dans le document graphique final.

En mode texte, l’information est identifiée par trois données :

  • un numéro de ligne,
  • un numéro de colonne
  • une longueur.

En mode XML, elle est identifiée par le nom du champ XML (balise field).

Une zone ne peut lire qu’une seule ligne à la fois.

Dans l’espace de conception, elle est représentée de deux façons :

  • La zone est vide, aucune donnée ne lui est associée : une icône apparait dans le coin supérieur droit de celle-ci.

Onyxdesigner-image47.png

  • La zone est associée à une donnée, elle apparait sans icône.

Onyxdesigner-image48.png

Une zone est identifiée par son nom, défini dans la fenêtre des propriétés (plus de détails dans a.2 Créer une zone).

Créer une zone

Pour créer une zone, deux méthodes sont possibles :

  • Sélectionner l’icône correspondante et son type dans l’onglet Donnée puis cliquer (sans relâcher) à l’endroit où cet élément doit être positionné. Cette méthode crée une zone vide. Pour lier la zone à une donnée du fichier source il suffit de sélectionner la donnée dans la vue Spool (voir la deuxième méthode ci-dessous) et de la glisser-déposer dans la zone précédemment crée en maintenant la touche Ctrl appuyée.

    Onyxdesigner-image49.png

Sélectionner directement les données à récupérer dans la vue Spool et utiliser le glisser-déposer à l'endroit désiré sur l'espace de conception pour créer automatiquement une zone liée aux données sélectionnées.

Onyxdesigner-image50.png

Une fois la zone créée, sélectionnez celle-ci et affichez la vue des Propriétés pour renseigner ses informations :

Onyxdesigner-image51.png

  • Nom :

    • Nom (de la zone) : information interne à Designer, permettant d’identifier les différents objets dans le projet. Ce champ est vide lors d'une création de zone à vide et vaut la valeur de la donnée lors d'une création de zone à partir de la vue Spool.

    • Label av/Label ap : possibilités d’ajouter du texte avant et/ou après l’information récupérée.

  • Position :

    • Identification de la position de l'information dans le spool de données : colonne, longueur, ligne de début.

    • Permet également d'extraire une certaine quantité d'information en mode XML.

  • Position dans le document :

    • Permet de modifier le positionnement de la zone dans la page.

  • Type de données :

    • Permet de définir comment l'application Designer doit traiter l'information récupérée (voir a.3 Types de zones).

  • Police :

    • Permet de paramétrer toutes les options de mise en forme de l'information : police, taille, couleur, cadrage, orientation, etc.

Type de zones

L’application Designer propose diverses options de traitement de l’information selon le type de données à traiter :

  • Texte : permet d’imprimer du texte simple.
    • Normal : recopie exactement les valeurs se trouvant aux positions définies par la zone qu'il s'agisse de lettres, de chiffres ou de blancs.
    • Optimisé : recopie les caractères se trouvant à ces positions excepté les blancs au début et à la fin de ces positions. Ainsi, le cadrage à gauche, ou à droite est toujours respecté. Il n'y a pas de décalage dû à la présence de blancs dans le spool.
    • Substitution : permet de remplacer une valeur du spool par une autre stockée dans un fichier appelé replacevalue.txt. Par défaut, ce fichier se trouve à l'état vierge dans le dossier d'installation de M-Designer. Pour faire fonctionner les substitutions, il faut le placer dans le dossier lgobitmap et il doit contenir les valeurs à remplacer suivies des valeurs de remplacement séparées par une tabulation. Ce sous-type est plus détaillé dans le paragraphe 8.3. Remplacement de caractère.
    • Translate : permet de substituer une valeur par son équivalent traduit dans une autre langue. On utilise au préalable une zone de type Outils / Set Lang pour définir le fichier qui contient les traductions. Pour chaque zone Texte / Translate définie dans la maquette, le programme cherche l'entrée correspondante à la valeur de la zone dans le fichier qui contient les traductions. Celui-ci doit se trouver dans le dossier lgobitmap et son nom doit commencer par « Translate_ ».
    • Compressé : zone affichant le texte récupéré dans l’espace alloué. Le texte occupe la largeur de la zone et adapte la taille de police entre un maximum et un minimum afin que le texte soit affiché complètement dans cet espace alloué. Si la taille de police minimum ne permet toujours pas d’afficher le texte complet, celui-ci est tronqué et est suivi de « … ».
    • Tronqué : zone affichant le texte récupéré dans l’espace alloué par la largeur de zone. Si le texte ne peut être complètement affiché, il est tronqué suivi de « … ».


  • Code barre : permet d’encoder et d’imprimer des codes-barres. La liste des codes à barres disponible est détaillée chapitre 8.1 Code à barre


  • 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. Onyxdesigner-image52.png
    • 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 :

Onyxdesigner-image53.png

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.

Onyxdesigner-image54.png

Onyxdesigner-image55.png

  • 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 :

Onyxdesigner-image56.png

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 :

Onyxdesigner-image55.png

  • On récupère les données à l'intérieur de ce bloc de données par la création d'une Zone :

Onyxdesigner-image57.png

  • 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).

Onyxdesigner-image61.png

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 Onyxdesigner-image64.png puis de dessiner le groupe sur l’espace de conception.

La vue Propriétés s’affiche pour renseigner les informations du groupe :

Onyxdesigner-image65.png

  • 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.