ONYX - 9.0 - Utilisation

Fonctionnalités avancées de ONYX Designer

De MappingDoc
Cette page contient des modifications qui ne sont pas marquées pour la traduction.

Autres langues :
English • ‎français

Fonctionnalités avancées

Code à barre

Création d’un code à barre

Pour créer un code à barre dans Designer, il suffit de créer une zone de type Code Barre et de sélectionner le sous-type de code à barre voulu.

Les types de codes à barre

  • EAN 8 Ce code à barre sert à tracer des unités logistiques, à identifier des unités de stockage. La version huit caractères sert au colis de petite taille. Les données doivent contenir sept chiffres. Le huitième caractère est un caractère de contrôle qui est calculé par l'ordinateur.
  • EAN 13 Ce code à barre sert à tracer des unités logistiques, à identifier des unités de stockage. Dans un EAN 13 les deux premiers caractères sont les identifiants du pays d'origine, les 10 autres sont les données et le dernier est le caractère de contrôle qui est calculé par l'ordinateur. Les données doivent donc contenir 12 chiffres.
  • Code 39

    Ce code à barre sert à coder des données alphanumériques. Il est utilisé dans presque toutes les industries mais pas dans le commerce de détail. Les données peuvent être de longueur variable et peuvent contenir des lettres et des chiffres.

    L'information peut être de longueur quelconque et contenir des chiffres, des majuscules et les signes « espace », « plus », « moins », « divise », « point », « pourcentage » et « dollar ».

  • Code 128 Ils permettent de coder des données alphanumériques générales et des données ASCII. Ces codes à barre sont utilisés dans de nombreuses industries pour la gestion de stocks. Les données sont de longueur variable. Le code 128 C doit contenir un nombre pair de caractères (sinon un zéro est ajouté en début de code barre) et ne peut contenir que des chiffres. Code 128 B accepte la totalité des caractères ASCII, alors que le code 128 A n'en accepte qu'une certaine partie. L’information à coder peut être de longueur quelconque et propose un choix d'encodage :
    • Optimisé : chiffres, majuscules, minuscules, signes ASCII affichables ou non d’ordre inférieur à 128, et tous signes et caractères de fonction prévus par le Code 128 dans les jeux A, B et C, avec optimisation systématique de longueur
    • N/optimisé : chiffres, majuscules, minuscules, signes ASCII affichables et caractères de fonction prévus par le Code 128 dans le jeu B, sans optimisation de longueur
    • Numérique : chiffres et caractère de fonction prévu par le Code 128 dans le jeu C, avec optimisation systématique de longueur.
  • Code 2/5 entrelacé Ce codage de nombres privilégie la densité, en réponse à un cahier des charges spécifiques. La sécurité obtenue par cette symbologie est faible, sauf à employer des moyens optionnels de sécurisation (caractère de contrôle, messages de longueur fixe et contrôlée à la lecture).
    • Bien que le nombre de longueur est quelconque, le principe d'entrelacement impose :
    • Un nombre pair de chiffres lorsque le caractère optionnel de contrôle n'est pas mis en œuvre.
    • Un nombre impair de chiffres lorsque le caractère optionnel de contrôle est mis en œuvre.
  • Code 2/5 industriel Cette symbologie ancienne a été très utilisée dans l'industrie, principalement automobile. La sécurité de cette symbologie est faible, sauf mise en œuvre de message de longueur fixe et contrôlée à la lecture. Les données doivent contenir de 1 à 32 chiffres
    • Codage d'information numérique privilégiant la facilité de mise en œuvre.
    • Évolution ou modification d'applications préexistantes.
  • EAN128 Alpha n/optimisé Il s'agit du code GS1-128 Utilisé pour l’identification des unités d’expédition (la palette, éventuellement le carton).
    • Codage d'information alphanumérique,
    • Longueur variable,
    • Auto-contrôlé Continu Bidirectionnel.
  • EAN128 numérique Il s'agit du code GS1-128 Utilisé pour l’identification des unités de d’expédition (la palette, éventuellement le carton).
    • Codage d'information numérique,
    • Longueur variable,
    • Auto-contrôlé Continu Bidirectionnel.
  • PDF 417 Utilisé dans tous secteurs d'activité. Le code PDF417 est le seul code à barres bidimensionnel pouvant être lu à l'aide d'un lecteur linéaire (1D) car, en tant que symbologie linéaire empilée, il partage les caractéristiques des codes à barres linéaires et bidimensionnels.
    • Bidimensionnel,
    • Longueur 2000 Alphanumérique,
    • Huit niveaux de sécurité.
  • Data Matrix Ce code permet d’encoder jusqu’à 2335 caractères. Divers types d’encodage sont disponibles (ASCII, C40, Text et Base 256), le mode par défaut est le mode automatique qui permet d’optimiser l’encodage en permutant d’un mode à l’autre suivant les données. Il existe également un système de détection/correction d’erreur pour réparer toute dégradation.
  • Postnet Le code à barres Postnet est utilisé par le service postal des États-Unis. Il est remplacé par l'USPS ou Intelligent Mail barcode.
  • Planet Le code à barres Planet est utilisé par le service postal des États-Unis. Il est remplacé par l'USPS ou Intelligent Mail barcode.
  • QR Code Il a la particularité de pouvoir encoder un très grand nombre de caractères (7336 en mode numérique). Ce type de code barre est très répandu au Japon. Il existe quatre types d’encodage (alphanumérique, numérique, octets, Kanji) permettant de compresser plus ou moins les données selon leur type. Par défaut, un mode automatique est utilisé afin de choisir l'encodage qui donnera le meilleur taux de compression (basculement de mode en cours de traitement). Des codes de détection/correction d’erreur sont ajoutés aux données, ce qui permet de résister à des dommages sans perte de données. Il existe quatre niveaux de détection/correction d’erreur.
  • MaxiCode Le code à barres MaxiCode, développé par UPS – United Parcel Service, est défini par la norme ISO 16023-2000. Contrairement aux autres, il a une taille fixe, ce qui limite le nombre de caractères à encoder. En effet, le nombre de caractères maximum est de 93 caractères alphanumériques ou de 138 caractères numériques. Il existe deux types d’encodage. Le premier encode uniquement une chaîne de caractères contenant des données suivant un encodage classique et une détection / correction d’erreur standard. Le second type encode, en plus de la chaîne de données, trois autres champs (le pays codé sur 3 chiffres suivant la norme ISO 3166, le code postal codé sur 6 caractères et enfin un type de service sur 3 chiffres). Ces trois champs sont encodés en utilisant un mode de correction d’erreur étendu contrairement à la chaîne de données dont le mode de correction est classique.
  • Japan Postal Le code à barres Japan Postal est utilisé par le service postal du Japon.
  • Codabar (NW7) Au Japon, le Codabar Monarch est aussi appelé NW-7. La composition relativement simple du Codabar Monarch fait qu'il est fréquemment utilisé pour coder des numéros de série pour les applications de banques de transfusion sanguine, services de livraisons à domicile, bibliothèques, etc.
  • USPS USPS = United States Postal Service. Le nom officiel est plutôt Intelligent Mail Barcode. Il s'agit du nouveau code à barres postal américain qui doit remplacer le Planet et le Postnet. L’Intelligent Mail Barcode est un code à barres à quatre états composé de 65 barres.
  • UPC-A Le code à barres UPC-A est un équivalent américain du code à barres EAN13, dont le premier chiffre serait 0. Il sert principalement à identifier les produits en magasin. Le code à barres UPC-A permet l’encodage de 11 chiffres, un Number System, cinq chiffres pour le Manufacturing Code et cinq chiffres pour le Product Code. Un 12eme chiffre est calculé à partir des onze premiers pour servir de contrôle.
  • UPC-E Le code à barres UPC-E est une version courte du code à barres UPC-A, les dix chiffres du code à barres UPC-A (Manufacturing et Product Code) sont réduits à six chiffres en supprimant des zéros superflus. Avec le Number System et le chiffre de contrôle un code à barres UPC-E se compose donc de huit chiffres. MapDraw permet l’encodage de code à barres UPC-A (11 chiffres) en UPC-E, mais aussi de code réduit de 6, 7 ou 8 chiffres.
  • MSI Le code à barres MSI est utilisé principalement pour le contrôle des stocks, le marquage des conteneurs de stockage et des étagères dans des environnements d'entrepôt. Un code à barres MSI utilise une ou deux clé de contrôle, calculée par modulo 10 ou modulo 11 et permet d’encoder des valeurs numériques de taille indéfinie. Designer permet l’encodage soit avec une clé de contrôle modulo 10, une clé de contrôle modulo 11, deux clés modulo 10, ou encore une modulo 11 suivie d’une clé modulo 10.

La taille du code à barre

La taille du code à barre peut être définie de deux manières :

  • La première consiste à choisir l'option Adapter à la zone dans la vue des propriétés, le code à barre s'adaptera alors du mieux possible à la taille de la zone, selon sa norme.
  • Si l'option Adapter à la zone est décochée, la taille du code à barre peut être réglée par la taille de la police de la zone. Cette taille influe sur la largeur et la hauteur du code. La hauteur peut être réduite en réduisant le pourcentage du paramètre Hauteur de la zone.

Cumul de données

Il est possible de cumuler, dans un code à barre, des données qui se trouvent à différents endroits dans le spool. Pour cela, il faut créer autant de zones mémoires qu’il y a de données à récupérer dans le spool puis il faut cumuler toutes ces zones dans le label de la zone code à barre.

  • Dans la partie Map R :

cid:image002.png@01D170A6.CBD745A0

  • Dans la partie Propriétés :

cid:image003.png@01D170A6.CBD745A0

  • Dans cet exemple, les zones mémoires ont pour valeurs:
    • MEM_FACT : 0012601
    • MEM_DTFACT : 14/10/99
  • Résultat :

cid:image004.png@01D170A7.20EEB820

Il est aussi possible d’ajouter du texte qui ne se trouve pas dans le spool grâce à l’utilisation des zones Mémoire (détaillées dans le paragraphe 6.4.a.3 Type de zones) : [[MEM1]]TEXT[[MEM2]].

Si vous utilisez des zones de remplacement dans une zone Code à Barre, il faut que la longueur de la zone code à barre soit égale à 0.

Cas particulier : EAN128

L’encodage de l’EAN128 est identique à l’encodage du Code128, c’est pour cela que nous utilisons les mêmes polices. La différence est que l’EAN128 est structuré afin de normaliser les informations qu’il contient. Pour cela, entre chaque information est inséré un AI (Application Identifier) qui permet d’identifier la donnée encodée.

Structure de l’EAN128 : START FNC1 AI DATA (FNC1) AI DATA .... (FNC1) AI DATA CRC END

FNC1 : Caractère séparateur de l’EAN128.

AI : Application Identifier, permet de coder plusieurs informations normalisées dans un même code (date+heure+...).

Le premier FNC1 est ajouté automatiquement par Designer. Il est obligatoire, en effet il permet de différencier un code barre EAN128 d’un code barre CODE128.

Par contre, les FNC1 suivants sont optionnels. En effet, ils sont obligatoires uniquement lorsque la donnée précédente n’est pas de longueur fixe, dans ce cas, ils permettent de séparer chaque donnée.

Si vous souhaitez insérer le caractère FNC1, il vous faut mettre dans votre spool la suite de caractères {FNC1}. Ces caractères seront remplacé automatiquement en caractère FCN1 par MAPPING.

Ex: SPOOL ----> MAPPING

AI DATA ----> START FNC1 AI DATA CRC END

AI DATA {FNC1} AI DATA ----> START FNC1 AI DATA FNC1 AI DATA CRC END

Si vous ne pouvez pas modifier votre spool pour ajouter les caractères « {FNC1} » ou si vous souhaitez cumuler plusieurs données qui se trouvent à différents endroits du spool (voir paragraphe précédent : 8.1.b. Cumul de données), vous pouvez utiliser les zones mémoires.

Cas particulier : code 128

Il y a trois modes d’encodage des codes à barre 128 :

  • mode A (alphanumérique),
  • mode B (alphanumérique). Le code 128 Alphanumérique encode en mode B,
  • mode C (numérique). Le code 128 Numérique encode en mode C.

Le code 128 Alphanumérique Optimisé bascule du mode B au mode C en automatique afin d’optimiser la taille du code à barre.

Par contre, il est possible que vous ayez à respecter un formatage particulier de votre code à barre, c'est-à-dire respecter un certain nombre de caractères en mode A, B ou C.

Par exemple, le code à barre qui correspond à l’identifiant de suivi des courriers de « La Poste » contient 13 caractères. Les trois premiers doivent être encodés en mode B et les dix derniers en mode C.

Pour réaliser ce code à barre avec Designer, vous devez créer une zone de type « Code 128 N/Optimisé » puis saisir un masque de formatage dans les options Avancées de cette zone.

Exemple :

Soit la donnée suivante : 1J45034500751

Vous souhaitez encoder :

- les trois premiers caractères (1J4) en mode B

- les dix derniers caractères (5034500751) en mode C

Votre masque de formatage doit donc être BBBCCCCC.

Vous pouvez remarquer que bien qu’il y ait dix chiffres à encoder en mode C, on ne précise que cinq ‘C’ dans le masque de formatage. Cela est dû au fait qu’un caractère en mode C encode deux chiffres.

Cas particulier : Code Barre 2D

Aujourd’hui, MAPPING gère quatre types de codes à barre 2D : PDF417, DATA MATRIX, QR CODE et MAXICODE.

Si l'option « Adapter à la zone » n'est pas cochée, c’est le paramètre « Largeur de code barre » qui va modifier la taille du code à barre. Dans ce cas il faut savoir que la taille des codes à barre peut varier en hauteur et largeur suivant le contenu à encoder.

L’avantage des codes à barre 2D est de pouvoir encoder un nombre important d’informations. Si les données que vous devez encoder se trouvent à différents endroits du spool, reportez-vous au paragraphe 8.1.b. Cumul de données afin de pouvoir les cumuler dans un code à barre unique.

QR code

Le code à barre QR CODE a été développé suivant la norme internationale ISO/IEC 18004. Il a la particularité de pouvoir encoder un très grand nombre de caractères (7336 en mode numérique).

Ce type de code barre est très rependu au Japon. Il est utilisé dans l’industrie mais également par le grand public depuis que les téléphones portables sont capables de le décoder.

Il existe quatre types d’encodage (alphanumérique, numérique, octets, Kanji) permettant de compresser plus ou moins les données selon leur type. Par défaut, le mode automatique est utilisé afin de choisir l’encodage qui donnera le meilleur taux de compression (basculement de mode en cours de traitement). Par exemple, supposons que le début de la chaine contient des données de type alphanumérique. Dès que le programme détecte une chaine d’au moins 13 caractères numériques, il change de mode d’encodage.

Des codes de détection/correction d’erreur sont ajoutés aux données. Ces codes permettent de résister à des dommages sans perte de donnée. Il existe quatre niveaux de détection/correction d’erreur. Nous utilisons par défaut le niveau trois dont les codes utilisent approximativement 25% du code à barre final.

Onyxdesigner-image75.png

Options avancées disponibles :

  • Largeur du code barre : Valeur comprise entre 1 et 15 définissants la taille du code barre.
  • Error Level : (7%, 15%, 25% et 30%).
  • FCN1 :
    • ECI protocol not implemented.
    • ECI protocol not implemented, FNC1 implied in first position.
    • ECI protocol not implemented, FNC1 implied in second position Dans ce dernier cas, un caractère de séparation (application identifier) doit être précisé.
  • Application Identifier : Caractère de séparation, utilisé uniquement avec le FCN1 implicite en deuxième position.
  • Type d’encodage :
    • AUTO : Encodage automatique des données avec changement de mode en fonction des données.
    • ALPHA : Encodage Alphanumérique.
    • NUMERIC : Encodage Numérique.
    • BYTE : Encodage en octet.

DATAMATRIX

Le code à barres Datamatrix est défini par la norme internationale ISO/IEC 16022 (ECC200). Ce code permet d’encoder jusqu’à 2335 caractères.

Divers types d’encodage sont disponibles (ASCII, C40, Text et Base 256) et le mode par défaut est le mode automatique qui permet d’optimiser l’encodage en permutant d’un mode à l’autre suivant les données.

Il existe également un système de détection/correction d’erreur pour réparer toute dégradation.

Onyxdesigner-image76.png

Options avancées :

  • Largeur du code barre : Valeur comprise entre 1 et 15 définissant la taille du code barre.
  • Type d’encodage :
    • AUTO : Encodage automatique des données avec changement de mode en fonction des données.
    • ASCII : L’encodage ASCII est un plan tacite pour encoder les données ASCII.
    • C40 : L’encodage C40 transforme 3 caractères alphanumériques en deux codewords.
    • TEXT : L’encodage Text est utilisé pour encoder les caractères minuscules.

PDF 417

Le PDF 417 est défini par la norme internationale ISO/IEC 15438. Ce type de code à barre permet d’encoder jusqu'à 2700 caractères numériques.

Il existe trois types d’encodage de données (alphanumérique, numérique et octets). Le mode automatique permet de choisir le meilleur taux de compression et de changer de mode en cours d’encodage.

Il existe également un mode de détection/correction d’erreur sur huit niveaux. En mode automatique, le niveau sera choisi en fonction du nombre de caractères à encoder.

Onyxdesigner-image77.png

Options avancées :

  • Largeur du code barre : Valeur comprise entre 1 et 15, définissant la taille du code barre.
  • Error Level :
    • AUTO : choix automatique.
    • 0 - 8
  • Mode compact : Activation du mode compact ou non.
  • Ratio : Permet de déterminer le ratio hauteur/largeur du code barre.
  • Colonnes fixes : permet de définir le nombre de colonnes.
  • Lignes fixes : permet de définir le nombre de lignes.

La sélection d’un ratio empêche de définir le nombre de lignes et de colonnes.

UPS MAXICODE

Ce type de code à barre, développé par UPS – United Parcel Service, est décrit dans la norme ISO 16023-2000. Contrairement aux autres, il a une taille fixe ce qui limite le nombre de caractères à encoder. En effet, le nombre de caractères maximum est de 93 caractères alphanumériques ou de 138 caractères numériques.

Il existe deux types d’encodage :

  • Le premier encode uniquement une chaine de caractères contenant des données suivant un encodage classique et une détection / correction d’erreur standard.
  • Le second type encode, en plus de la chaine de données, trois autres champs stockés dans trois espaces mémoire de MapDraw. Ces champs sont : le pays codé sur 3 chiffres suivant la norme ISO 3166 (appelé map_countr), le code postal codé sur 6 caractères (map_zipcod) et enfin un type de service sur 3 chiffres (map_servic). Ces trois champs sont encodés en utilisant un mode de correction d’erreur étendu contrairement à la chaine de données dont le mode de correction est classique.

Onyxdesigner-image78.png

Options avancées disponibles :

  • Largeur du code barre : Valeur comprise entre 1 et 15, définissant la taille du code barre.

Automatisation

L’automatisation de Designer permet de créer des fichiers images correspondant à la preview d’un projet ainsi que de générer un projet ou une association de projets. Le tout en ligne de commande, en mode caché ou non.

Le principe est de construire la commande grâce à un .BAT ou à une remote commande par exemple.

  • -InFile : fichier .PAG ou .XML à maquetter.
  • -OutFile : Fichier image de sortie.
  • -ProjectFile : Projet à ouvrir (.MPP).
  • -ProjectAsso : Association de projet à générer (.MPA).
  • -MPIFile : Fichier .MPI à ouvrir (onglet MAP).
  • -MPWFile : Fichier .MPW à ouvrir (onglet DRAW).
  • -Hide : Pour lancer Designer en mode caché.
  • -Color : Utilisation de couleur ou non pour la création de l’image.
  • -Rotation : angle de rotation de l’image (défaut : 0).
  • -Resolution : Résolution de l’image (défaut : 300).
  • -Specimen : Ajout d’un texte au-dessus de l’image (texte à préciser en argument).
  • -Mode : Choix du mode SPOOL ou XML (défaut SPOOL).
  • -Generate : Pour lancer la génération du projet indiqué en argument.
  • -FtpUse : 0 = n’utilise pas FTP ; 1 = utilise FTP.
  • -FtpFolder : répertoire FTP.
  • -FtpLogin : Login FTP.
  • -FtpPassword : Mot de passe FTP.
  • -FtpIPAddress : Adresse IP du serveur.
  • -ShareFolder : Répertoire de partage.
  • -ServerName : Nom du serveur (descriptif).
  • -Rename : change le FORMAT et SEQUENCE du projet en utilisant son nom. Ex : Facture00010.mpp.

Exemple 1 : Projet généré en PCL, en couleur et 300 dpi

C:\Mapping\M-Designer\M-Designer.exe "-Hide" "-ProjectFile:C:\Mapping\M-Processing_Server \Import\docpc\test.mpp" "-Generate"

Lors de l’utilisation du paramètre « -Generate » (indiquant une génération de projet), le paramètre « -ProjectFile : » ou « -ProjectAsso : » doit être présent pour indiquer le projet à générer.

Si les deux paramètres « -ProjectFile : » et « -ProjectAsso : » sont présents, le projet sera prioritaire pour la génération et l’association de projets sera ignorée.

Exemple 2 : création d’une image BMP couleur, avec rotation de 90°, en 203 dpi et avec l’inscription SPECIMEN par-dessus

C:\Mapping\M-Designer\M-Designer.exe "-InFile:c:\test.xml" "- OutFile:c:\image.bmp" "-ProjectFile:C:\ Mapping\M-Processing_Server \Import\docpc\test.mpp" "-Hide" "-Rotation:90" "- Resolution:203" “-Color” "-Mode:XML" "-Specimen:SPECIMEN"

Pour la création d’une image, les paramètres « -InFile » et « -ProjectFile » sont obligatoires.

Si « -OutFile » est absent, le fichier de sortie prend le nom du fichier d’entrée avec l’extension .BMP.

Le mode par défaut est SPOOL et si le fichier d’entrée est de type XML, vous devez préciser le mode.

Attention : Les guillemets autour de chaque paramètre sont obligatoires.

Vous pouvez également vous référer à la document de M-Designer.exe en ligne de commande : Utilisation de Designer.exe en ligne de commande

Remplacement de caractère

L'objectif est d'expliquer comment remplacer une chaîne de caractères du fichier d'entrée par une autre.

Le principe de fonctionnement est l'utilisation d'un fichier texte comme table de correspondance entre la valeur à remplacer et la nouvelle valeur.

Pour utiliser cette table de correspondance, il faut :

  • Définir la zone en mode Type = Texte / Sous-type = Substitution.

Onyxdesigner-image79.png

  • Terminer et générer la maquette
  • Ouvrir le fichier ReplaceValue.txt dans un éditeur de texte (type Notepad mais pas Word). La syntaxe du fichier est la suivante :

Valeur à remplacer Tabulation Nouvelle valeur

Onyxdesigner-image80.png

Ici, le caractère "]" sera remplacé par le caractère ">" et le "Nom" sera remplacé par "Name" (si la valeur à remplacer se trouve dans une zone de Type Texte \ Substitution).

Warning-300px.png Attention: il est impératifs que le fichier replacevalue.txt ai le même encodage que le projet Onyx Designer. Par exemple, replaceValue.txt doit être unicode si le projet est unicode.

  • Sauvegarder le fichier ReplaceValue.txt dans le sous-répertoire lgobitmap de Mapping (par défaut /apps/mapping/import/lgobitmap sur Unix)

Dessiner un tableau

Dessiner un tableau statique

Pour obtenir un tableau parfaitement dessiné et aligné, sans utiliser l'outil Tableau Statique de la vue Fond de page, les étapes à suivre sont :

  • tracer d’abord le rectangle du contour du tableau,
  • tracer des lignes verticales pour définir les colonnes,
  • tracer éventuellement des traits horizontaux pour définir les lignes si besoin (entêtes de colonnes par exemple),
  • sélectionner enfin l’ensemble des éléments du tableau puis appuyer sur la touche « a » minuscule du clavier :

Onyxdesigner-image83.png

Onyxdesigner-image84.png

Remarque :

Cette aide à la conception est opérationnelle en vue Fond de page et vue Dynamique du projet. En vue Dynamique, il est possible de tracer un tableau à l'intérieur d'un Groupe et de placer, par exemple, une condition d'exécution sur une ligne horizontale pour tracer dynamiquement un trait pour chaque nouvelle ligne de données.

Dessiner un tableau dynamique

Comme annoncé dans les options disponibles pour un groupe (cf. paragraphe 6.4.b.2. Créer un groupe fixe), le mode 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.

Remarque :

Redimensionner ou déplacer une zone impacte la taille et le positionnement des zones adjacentes.

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.

Onyxdesigner-image85.png

Construction d’un graphique

Depuis la partie Map :

  • Créer un graphique depuis l’onglet Graphique :

Onyxdesigner-image86.png

  • Et lui donner un nom (ici « GRAPH1 ») :

Onyxdesigner-image87.png

A partir de là, le graphique complexe peut se construire de deux façons différentes présentées ci-dessous.

Par sélection des zones une à une

  • Sélectionner, dans le spool, les zones qui seront utilisées dans le graphique,
  • Dans les Propriétés, pour chaque zone définie :
    • Les nommer toutes avec le même nom que le graphique (ici ça sera donc « GRAPH1 »)
    • Renseigner le Type = « Graphique » :

Onyxdesigner-image88.png

  • Selon l’utilité de la zone dans le graphique, sélectionner le Sous-type correspondant dans la liste proposée :

Onyxdesigner-image89.png

  • Aller dans les Propriétés du graphique et cliquer sur Edition :

Onyxdesigner-image90.png

  • Paramétrer votre graphique en choisissant dans les onglets :
    • Type :
      • Nom du Graphique : qui sera repris dans le nom des zones,
      • Nombre de zones qui va composer le graphique,
      • Type de graphique : Camembert, Histogramme ou Ligne :

Onyxdesigner-image91.png

NB : pour le type de graphique = Histogramme, il est possible de définir l’espacement entre les barres à droite et à gauche (en %). Cette option peut permettre, par exemple, de superposer deux graphiques en jouant sur l’espacement des barres de chaque graphique.

Onyxdesigner-image92.png

  • Attributs : permet de choisir le remplissage, le contour, l’épaisseur du contour, le motif, …

Onyxdesigner-image93.png


  • Positionnement : permet de placer les titres (X, Y, du graphique) et la légende, de redimensionner le graphique selon les préférences de l’utilisateur.

NB : La zone d’impression du graphique est celle délimitée par le grand rectangle donc tout ce qui ne sera pas dedans ne sera pas visible à l’impression (ex : la zone « Legend » est à l’extérieur du rectangle dans la première image ci-dessous alors qu’elle est dedans dans la deuxième).

Onyxdesigner-image94.png

Onyxdesigner-image95.png

  • La Légende se construit en sélectionnant les zones dans le spool qui serviront de légende pour les attributs choisis. Comme pour toute autre donnée, il faut nommer la zone comme le nom du graphique et renseigner les propriétés de la zone avec Type = « Graphique » et Sous-type = « Données de la légende ».

NB : Attention à respecter l’ordre des attributs en sélectionnant les zones qui serviront à la légende car elles suivront le même ordre que celui des attributs.

En créant un groupe

Le principe est le même que celui décrit ci-avant sauf que les données sont regroupées dans un groupe. Cette option est possible si les données du graphique se suivent dans le spool.

  • Créer un groupe qui définira les données à prendre en compte pour la construction du graphique et y déposer les zones sélectionnées qui contiennent les données, les titres, légende, ...
  • Nommer la/les zone(s) du même nom que le graphique et renseigner ses propriétés avec Type = « Graphique » et le Sous-type selon le rôle de la zone (titre, données, légende…).

La suite de la construction du graphique est la même que celle décrite précédemment.

Opérations arithmétiques dans un groupe

Pour simplifier la gestion de calcul dans un groupe et notamment la gestion de « total » et « sous-total », un outil a été intégré à Designer. Il permet d’effectuer des traitements sur un fichier XML d’entrée à l’aide de scripts. Ces scripts sont exécutés avant l’application de la maquette.

Onyxdesigner-image96.png

Onyxdesigner-image97.png

L’ajout de calcul dans un groupe, par l’intermédiaire de cet outil, se fait par la fonction de script « addline ». La fonction addline permet d’ajouter une ligne à un groupe, en lui précisant une séquence de couples « nom du champ/valeur » à ajouter.

De plus, les paramètres de type « chaine de caractère » devront être entourés de doubles guillemets et les noms de champ dans les formules par des simples guillemets.

Syntaxe :

addline(nom du groupe, nom de la ligne, ligne de type saut de page, nom du 1er champ, valeur du 1er champ, pré-calcul du 1er champ, nom du 2ème champ, valeur du 2ème champ, pré-calcul du 2ème champ, etc…) ;

La fonction addline commence par les arguments suivants :

  • Nom du groupe : Contient le nom du groupe sur lequel la ligne doit s’ajouter.
  • Nom de la ligne : Nom de la ligne à ajouter.

Puis, elle se compose d’une séquence illimitée de couples champ / valeur :

  • Nom du champ : Nom du champ que possèdera la ligne.
  • Valeur du champ : La valeur du champ possédé par la ligne.
  • Pré-calcul: Valeur booléenne. (0 ou 1, yes ou no). Si le champ possède un calcul alors cela permet de définir quand le calcul doit s’effectuer :
    • Yes : Le calcul est résolu lors de l’exécution du script, prenant en compte toutes les valeurs du xml.
    • No : Le calcul est résolu lors de l’utilisation de la valeur dans une maquette et ne prend donc en compte que les valeurs présentes dans la page en cours.

Par exemple, le script suivant ajoute cette ligne au groupe nommé "groupe" :

addline("groupe","ligne",yes,"champ1","valeur1",no,"champ2","valeur2",no);

<group name="groupe">

<line name="ligne" pagebreak=”1”>
<field name="champ1">valeur1</field>
<field name="champ2">valeur2</field>
</line>
</group>

La valeur du champ peut contenir un calcul dont la syntaxe est la suivante :

SUM('''''opération''''') pour calculer une somme sur l’ensemble des lignes du groupes.

AVG('''''opération''''') pour calculer une moyenne sur l’ensemble des lignes du groupes.

Ici, « opération » est un calcul mathématique utilisant les noms des champs présents dans les lignes du groupe. Les noms de champs doivent être entourés par des simples guillemets.

Prenons l’exemple de ce groupe :

<group name="invoice">
<line name="item">
<field name="name">item 1</field>
<field name="price">10</field>
<field name="quantity">2</field>
</line>
<line name="item">
<field name="name">item 2</field>
<field name="price">5</field>
<field name="quantity">3</field>
</line>
<line name="item">
<field name="name">item 3</field>
<field name="price">12</field>
<field name="quantity">4</field>
</line>
<line name="item">
<field name="name">item 4</field>
<field name="price">5.5</field>
<field name="quantity">3</field>
</line>
</group>

Pour ajouter une ligne de total à ce groupe, il faudra utiliser ce script :

addline("invoice", "LigneTotal",no

"total", "total = SUM('price'*'quantity')", yes

"moyenne", "moyenne = AVG('price'*'quantity')", yes

);

Ce script aura pour effet d’ajouter une ligne de total à la fin du groupe :

<group name="invoice">

<line name="item">
<field name="name">item 4</field>
<field name="price">5.5</field>
<field name="quantity">3</field>
</line>
<line name="LigneTotal">
<field name="total">total = 99.5</field>
<field name="moyenne">moyenne = 24.875</field>
</line>
</group>

L’utilisation de l’option Pré-calcul à « no » permet de ne pas exécuter les calculs lors de l’ajout de la ligne au groupe mais lors de son exécution par la maquette. L’intérêt de cette option est de pouvoir effectuer des calculs uniquement avec les données écrites sur la page en cours, permettant donc l’écriture de sous-totaux.

Pour ajouter une ligne de sous-total au groupe précédant, il faudra utiliser ce script :

addline("invoice","LineSubtotal",yes, "subtotal","sous-total = SUM('price'*'quantity')",no);

Ce script aura pour effet d’ajouter une ligne de total à la fin du groupe :

<group name="invoice">

<line name="item">
<field name="name">item 4</field>
<field name="price">5.5</field>
<field name="quantity">3</field>
</line>
<line name="LineSubtotal" pagebreak=”1”>
<field name="subtotal">sous-total = SUM('price'*'quantity')</field>
</line>
</group>

Gestion de la pagination

La gestion de l’écriture d’information de pagination tels que le nombre de page total, le nombre de lot et le nombre de page dans le lot est possible dans Designer grâce aux deux options suivantes.

Rupture de lot

L’option Rupture de lot se trouve dans les Propriétés de la maquette (présentée dans le paragraphe 4.2. Création d’un projet). Elle permet de définir une zone de type Métadonnée qui sera utilisée pour regrouper les pages du document final en lot.


Lors du traitement de la page :

  • Si la zone Métadonnée récupère une nouvelle valeur alors un nouveau lot sera créé. La page en cours appartiendra à ce nouveau lot.
  • Si la zone Métadonnée récupère une valeur déjà récupérée précédemment, la page en cours sera déplacée vers le lot correspondant à cette valeur.
  • Si aucune valeur n’est récupérée par la zone Métadonnée, la page reste dans le même lot que la page précédente.


C’est le système de multi-document du XPS qui est utilisé pour représenter les lots, le fichier de sortie est donc trié par lot (d’abord les pages du premier lot puis les pages du second, etc…).

Variables de remplacement

Pour permettre l’écriture des informations de pagination, il existe des variables de type « post-traitement », c’est-à-dire qu’elles ne seront remplacées par leur véritable valeur qu’au moment de l’impression.

ATTENTION : l'ordre d'exécution des zones est TRES important pour ne pas qu'il y ait de décalages. En l'occurence, la zone de type Métadonnée doit être exécutée AVANT d'utiliser les fonctionnalités suivantes si celles-ci sont utilisées au sein de zones "bleues". Pour rappel, l'ordre d'exécution des zones est modifiable via l'onglet "Liste des objets"

La syntaxe d’utilisation est la suivante :

[[PST:nom de la variable;valeur par défaut]]

La « valeur par défaut » est obligatoire et permet d’avoir un texte présent dans la page. Ce texte temporaire sera, par la suite, remplacé par sa vraie valeur. Il est important car c’est grâce à ce texte que les calculs de positionnement se feront. Ce texte doit donc posséder un nombre de caractère au moins égal à la valeur maximale attendue par la variable utilisée.

Par exemple :

[[PST:MAP_TOTAL_PAGE;000]]

Affichera "000" dans la page, mais au moment de l’impression cette valeur sera remplacée par :

  • " 5" s’il y 5 pages au total.
  • " 10" s’il y 10 pages au total.
  • "150" s’il y 150 pages au total.


[[PST:MAP_TOTAL_DOC]] = nombre total de lot.

[[PST:MAP_TOTAL_PAGE_IN_DOC]] = nombre de page dans le lot en cours.


D’autre syntaxes existent aussi, accessibles quant à elles pendant le traitement de la page :

[[VAR:MAP_CURRENT_PAGE]] = numéro de la page en cours.

[[VAR:MAP_CURRENT_DOC]] = numéro du lot en cours (la zone Métadonnée gérant la rupture de lot doit être définie avant l’utilisation de cette variable).

[[VAR:MAP_CURRENT_PAGE_IN_DOC]] = numéro de la page en cours dans le lot en cours.

Et de manière générale :

[[VAR:variable d’env]] = récupère le contenu de la variable d’environnement.

Gestion des veuves et orphelines

Une gestion complexe des veuves et orphelines est possible grâce à deux fonctionnalités : Groupe entier et Répéter un groupe XML.

Groupe entier

Lorsqu’on utilise une génération de saut de page de type Limite, une nouvelle option apparait dans les Propriétés du groupe : Groupe entier. Cette option permet d’indiquer que le groupe ne peut pas être coupé et qu’il doit donc s’imprimer intégralement sur une seule page. Si la limite déclenche un saut de page, aucune ligne du groupe ne sera imprimée, le groupe sera entièrement traité sur la page suivante.

Onyxdesigner-image99.png

Répétition de groupe XML

La répétition de groupe XML part du principe que le groupe apparait plusieurs fois dans le fichier XML d’entrée. Cette fonctionnalité s’active avec le paramètre « Répéter » dans les propriétés du groupe.

Onyxdesigner-image100.png

Exemple :

Dans l’exemple ci-dessous, le groupe “invoice” apparait trois fois dans le XML. Par défaut, le groupe de la maquette ne pourra récupérer que les informations de la première apparition du groupe dans le XML. Mais si l’option « Répéter » est cochée, l’exécution du groupe se poursuivra sur toutes les apparitions.

<group name="invoice">
<line name="item">
<field name="name">item 1</field>
<field name="price">10</field>
<field name="quantity">2</field>
</line>
<line name="description">
<field name="description">Description item 1</field>
</line>
</group>
<group name="invoice">
<line name="item">
<field name="name">item 2</field>
<field name="price">5</field>
<field name="quantity">3</field>
</line>
<line name="description">
<field name="description">Description item 2</field>
</line>
</group>
<group name="invoice">
<line name="item">
<field name="name">item 3</field>
<field name="price">12</field>
<field name="quantity">4</field>
</line>
<line name="description">
<field name="description">Description item 3</field>
</line>
</group>

L’utilisation conjointe d’une limite générant des sauts de page avec l’option “Groupe entier” et la répétition active permet de gérer un système complexe de veuves et orphelines.

Dans notre exemple, les lignes « item » et les lignes « description » ne pourront pas être séparées par un saut de page.