Aspose Word - Redéfinition et formatage de signets personnalisés
Solution | Version minimum |
---|---|
vdoc.kit | v4.2.0 (pour version MoovApps Process 15.x et +) |
Présentation générale
La valorisation par Bookmark est limitée par la longueur des signets car Microsoft Word n’accepte pas les signets de taille supérieure à 40 caractères. Lors de la conception dans le Studio, il arrive que l’on n’ait pas fait attention à cette limitation en nommant les champs, les DU et/ou les tableaux dynamiques (rappel : génération automatique du nom système à partir du libellé du champ). On se retrouve alors bloqué et obligé de recréer tous les champs qui servent à la valorisation dépassant les 40 caractères avec des noms plus courts (avec perte des données contenues dans les anciens champs trop longs !).
Solution
Vdoc Kit permet de contourner cette limitation en assignant aux champs d’autres signets personnalisés (logique d’alias ou encore de formule de transformation). Le paramétrage s’effectue dans l’application masquée VDocKit dans le DU PrintModelLink et via un XML. Ces éléments de paramétrage sont propres à une application ou à une version d’application.
Pré-requis
- Dans le studio, utiliser “Gérer les applications”. VDoc.Kit Application doit être présent.

- Avoir paramétré un connecteur de valorisation Aspose provenant du VDoc Kit dans l’application Studio qui utilisera ces nouveaux signets.
- La langue par défaut du connecteur de valorisation Aspose doit impérativement être paramétrée comme ci-dessous.

Description détaillée / Paramétrage
Règle d’activation
La surcharge des signets s’active automatiquement pour un document si un XML de définition des nouveaux signets est paramétré pour la version de processus ou le processus associé. Les modèles de surcharge se paramètrent via la table “PrintModelLink” du réservoir de données “DB” de l’application “VDoc.Kit Application”.
Mise à disposition de l’application VDoc.Kit Application
L’application “VDoc.Kit Application” est importée automatiquement à l’installation du kit, mais est masquée dans le Studio par défaut. Si vous souhaitez l’afficher dans la page d’accueil, cliquer sur le bouton “Gérer les applications” à la racine du Studio, puis décocher l’option “Ne pas afficher sur la page d’accueil du studio” dans les propriétés de l’application (voir captures d’écran ci-dessous).
Table de paramétrage PrintModelLink
Cette table permet de définir un modèle Word pour un processus toutes versions confondues, ou bien pour une version de processus précise. Voici les informations à remplir pour chaque modèle d’impression (certaines sont facultatives).
Colonne | Description | Obligatoire | Commentaires |
---|---|---|---|
Sys_Reference | Attribut standard VDoc – référence de la donnée de réservoir | X | |
Processus lié | Processus cible | X | |
Version(s) processus liée(s) | Version(s) de processus cible | ||
Modèle | Fichier attaché Modèle Word (format docx) | X | Le modèle est obligatoire mais le document ne sera pas utilisé pour la valorisation |
Type de valorisation | À l’image de ce qui existe dans le connecteur de valorisation standard, sélection du mode publipostage ou signet | X | Placer sur Avancé |
Langue | À l’image de ce qui existe dans le connecteur de valorisation standard, sélection de la langue de génération | X | Placer sur Français |
Règle nommage fichier valorisé | À l’image de ce qui existe dans le connecteur de valorisation standard, permet de générer le nom du fichier PDF avec des chaînes de caractères fixes et/ou des variables Vdoc (noms de champ par exemple) | X | N’est pas utilisé pour cette fonctionnalité |
Nom système champ destination | Nom système du champ pièce jointe dans lequel le fichier PDF va être sauvegardé | N’est pas utilisé pour cette fonctionnalité | |
Modèle permettant de définir la valorisation des champs | Contenu XML permettant de redéfinir les signets et le formatage des champs | Le XML de paramétrage est à placer ici |
Paramétrages
Voici la description balise par balise de chacun des champs possibles. Un exemple global est présent à la fin du chapitre pour présenter l’utilisation de ce XML de paramétrage.
Champ Texte
Balises XML | Type de champ | Attributs obligatoires | Attributs optionnels |
---|---|---|---|
<text /> |
texte | name, fieldName |
Attributs | Description | Exemple |
---|---|---|
name | Nom du nouveau signet pour Word | name=“monChampANomCourt” |
fieldName | Nom du champ VDoc auquel on associe le nouveau signet | fieldName=“monChampANomBienTropLongQuiFaitDoncPlusDe40Caracteres” |
formula | Formule pour calculer le signet lors de la valorisation | formula=“iResource.values.Affaire.sys_Title” |
Exemple de XML permettant de “raccourcir” un signet
Pour créer un alias :
<text name="sysTitle" fieldName="sys_Title" />
<text name="court" fieldName="monChampANomBienTropLongQuiFaitDoncPlusDe40Caracteres" />
Exemple de XML utilisant une formule pour valoriser un signet texte
Alimenter un champ texte à partir d’un attribut d’un champ utilisateur :
<text name="CreatorPhoneNumber" formula="iResource.values.sys_Creator.phoneNumber" />
Récupération du sys_Title d’un champ donnée de réservoir mono-valeur stocké dans le document :
<text name="AFFAIRE" formula="iResource.values.Affaire.sys_Title" />
Champs Date et Numériques
Balises XML | Type de champ | Attributs obligatoires | Attributs optionnels |
---|---|---|---|
<date /> |
date | name, fieldName | format |
<period /> |
période | name, fieldName | format |
<long /> |
long | name, fieldName | format |
<integer /> |
entier | name, fieldName | format |
<bigdecimal /> |
Nombre à grande précision | name, fieldName | format |
<float /> |
nombre décimal | name, fieldName | format |
<double /> |
nombre double | name, fieldName | format |
Attributs | Description | Exemple |
---|---|---|
name | Nom du nouveau signet | name=“monChampANomCourt” |
fieldName | Nom du champ auquel on associe le nouveau signet | fieldName=“monChampANomBienTropLongQuiFaitDoncPlusDe40Caracteres” |
format | Permet l’utilisation d’un modèle pour le formatage du résultat | format=“dd-MM-YYYY” |
Exemples de XML :
<date name="dateFormat" fieldName="sys_CreationDate" format="dd-MM-YYYY" />
<period name="periodFormat" fieldName="PeriodColumn" format="dd-MM-YYYY" />
<long name="longFormat" fieldName="LongColumn" format="000,000,000" />
<integer name="integerFormat" fieldName="integerColumn" format="000,000,000" />
<float name="floatFormat" fieldName="FloatColumn" format="####0.0000" />
<double name="doubleFormat" fieldName="DoubleColumn" format="####0.0000" />
Champ Booléen
Balises XML | Type de champ | Attributs obligatoires | Attributs optionnels |
---|---|---|---|
<boolean /> |
case à cocher | name, fieldName | format |
Attributs | Description | Exemple |
---|---|---|
name | Nom du nouveau signet | name=“monChampANomCourt” |
fieldName | Nom du champ auquel on associe le nouveau signet | fieldName=“monChampANomBienTropLongQuiFaitDoncPlusDe40Caracteres” |
format | Permet l’utilisation d’un modèle pour le formatage du résultat | format=“☒” |
Exemple de XML :
<boolean name="booleanFormat" fieldName="BooleanColumn" format="☒" />
Champ Tableau Dynamique
Pour les tableaux dynamiques, il faudra déclarer les colonnes à valoriser dans une balise table.
Balises XML | Type de champ | Attributs obligatoires | Attributs optionnels |
---|---|---|---|
<table /> |
tableau dynamique | name, fieldName, type |
Exemple de modèle permettant de définir la valorisation des champs :
<modelDefinition extension="com.vdoc.kit.aspose.base.extensions.BaseModelValuationExtension">
<text name="sysTitle" fieldName="sys_Title" />
<date name="dateFormat" fieldName="sys_CreationDate" format="dd-MM-YYYY" />
<period name="periodFormat" fieldName="PeriodColumn" format="dd-MM-YYYY" />
<long name="longFormat" fieldName="LongColumn" format="000,000,000" />
<integer name="integerFormat" fieldName="integerColumn" format="000,000,000" />
<float name="floatFormat" fieldName="FloatColumn" format="####0.0000" />
<double name="doubleFormat" fieldName="DoubleColumn" format="####0.0000" />
<bigdecimal name="integerFormat" fieldName="integerColumn" format="000,000,000" />
<boolean name="booleanFormat" fieldName="BooleanColumn" format="☒" />
<table name="dynTable" type="TABLE" fieldName="dynTableField">
<long name="longColumnTable" fieldName="LongTableColumn" format="000,000,000" />
<integer name="integerColumnTable" fieldName="integerTableColumn" format="000,000,000" />
<float name="floatColumnTable" fieldName="FloatTableColumn" format="####0.0000" />
</table>
<custom>
<valeursdanscustommodel>ValoTest</valeursdanscustommodel>
</custom>
</modelDefinition>