# Personnalisation des états

Les états de CAP Business sont conçus pour être hautement personnalisables. Cette documentation vous explique comment personnaliser vos états selon vos besoins.

## Vue d'ensemble

La personnalisation des états CAP Business peut se faire à plusieurs niveaux :

- Modification des colonnes affichées dans les lignes des documents
- Ajout de champs dynamiques dans l'en-tête et le pied de page
- Modification des styles (police, taille, couleurs, etc.)
- Adaptation pour différentes langues

## Introduction

La présentation des états est accessible en choisissant l'icône ![](/public/svg/search-right.svg) puis en recherchant la page **Personnalisation des états**.

Pour bien débuter, installez le package _Modèles d'états_ disponible dans l'[assistant de configuration de CAP Business](install.md).

Vous obtiendrez une liste d'états livrés avec CAP Business et pour lesquels vous pouvez adapter la présentation.

Ces états sont :

- Achat - Commande
- Instruction de prélèvement
- Ordre de transfert - Expédition
- Relance
- Ventes - Avoir
- Ventes - Confirmation de commande
- Ventes - Devis
- Ventes - Expédition
- Ventes - Expédition (depuis la commande)
- Ventes - Facture
- Ventes - Facture pro forma

À partir de cette liste, vous pouvez :
- Personnaliser le contenu de l'état et les couleurs en ouvrant la fiche de l'état que vous souhaitez personnaliser.
  Les zones personnalisables supportent des [champs de substitution](personnalisation-etats-substitution.md) pour choisir les données que vous souhaitez afficher sur vos documents.
- [Adapter l'état pour une autre langue](#adapter-un-état-pour-une-autre-langue)
- [Adapter le contenu de la description des lignes](#personnaliser-la-description-dune-ligne)
- [Changer l'affichage des colonnes](personnalisation-etats-colonnes.md)

# Structure des documents commerciaux

Les documents commerciaux sont structurés en plusieurs sections distinctes permettant une personnalisation fine de leur contenu. Chaque section a un rôle spécifique et peut être adaptée selon vos besoins.

<div class="rdlc-grid">
<svg width="420" height="594" viewBox="0 0 100 100" preserveAspectRatio="none" class="rdlc-canvas">
<rect id="rdlc-page" class="rdlc-container" />

<svg x="5%" y="4%" width="90%" height="25%">
<rect id="rdlc-page-header" class="rdlc-container" />

<rect id="rdlc-page-header-logo" class="rdlc-field" x="1%" y="1%" width="45%" height="24%"/>
<rect id="rdlc-page-header-topleftaddress" class="rdlc-field" x="1%" y="27%" width="45%" height="40%"/>
<rect id="rdlc-page-header-topleftaddresstext" class="rdlc-field" x="1%" y="69%" width="45%" height="30%"/>
<rect id="rdlc-page-header-toprightaddress" class="rdlc-field" x="50%" y="27%" width="45%" height="40%"/>
<rect id="rdlc-page-header-toprightaddresstext" class="rdlc-field" x="50%" y="69%" width="45%" height="30%"/>

<text x="98%" y="10%" class="rdlc-header-1" text-anchor="end" textLength="20pt" lengthAdjust="spacingAndGlyphs">
Titre #########
</text>
<text x="98%" y="20%" class="rdlc-header-4" text-anchor="end" textLength="14pt" lengthAdjust="spacingAndGlyphs">
[Date document]
</text>
</svg>

<svg x="5%" y="86%" width="90%" height="10%">
<rect id="rdlc-page-footer" class="rdlc-container" />

<rect id="rdlc-page-footer-conditions" class="rdlc-field" x="1%" y="1%" width="98%" height="40%"/>
<rect id="rdlc-page-footer-footertext" class="rdlc-field" x="1%" y="43%" width="98%" height="40%"/>
<rect id="rdlc-page-footer-image" class="rdlc-field" x="78%" y="1%" width="20%" height="80%"/>

<text x="98%" y="97%" class="rdlc-header-6" text-anchor="end" textLength="5pt" lengthAdjust="spacingAndGlyphs">
Page # / #
</text>
</svg>

<svg x="5%" y="31%" width="90%" height="54%">
<rect id="rdlc-document" class="rdlc-container" />

<rect id="rdlc-document-headertable" class="rdlc-field" x="1%" y="1%" width="98%" height="20%"/>
<rect id="rdlc-document-linetable" class="rdlc-field" x="1%" y="22%" width="98%" height="66%"/>
<rect id="rdlc-document-footertable" class="rdlc-field" x="1%" y="89%" width="98%" height="10%"/>
</svg>
</svg>

<div class="rdlc-description-container">
<div id="rdlc-page-description" class="rdlc-description">
<h3>Page</h3>
<span>Cette visualisation est une représentation schématique des différentes parties d'une édition commerciale CAP Business. La plupart des éditions sont au format A4 (21x29,7 cm) et présentent une marge de 1 cm sur les quatre côtés de la feuille.</span>
</div>
<div id="rdlc-page-header-description" class="rdlc-description">
<h3>En-tête de page</h3>
<span>Les informations présentes dans cette section sont répétées sur toutes les pages de votre document.</span>
</div>
<div id="rdlc-page-header-logo-description" class="rdlc-description">
<h3>Logo</h3>
<span>Affiche le logo paramétré dans les Informations société.</span>
</div>
<div id="rdlc-page-header-topleftaddress-description" class="rdlc-description">
<h3>Adresse gauche</h3>
<span>Cette section affiche l'adresse de gauche que vous avez paramétrée. Habituellement utilisée pour afficher l'adresse de votre société.</span>
</div>
<div id="rdlc-page-header-topleftaddresstext-description" class="rdlc-description">
<h3>Texte adresse gauche</h3>
<span>Cette section vous permet d'ajouter des informations complémentaires sous l'adresse de gauche.</span>
</div>
<div id="rdlc-page-header-toprightaddress-description" class="rdlc-description">
<h3>Adresse droite</h3>
<span>Cette section affiche l'adresse de droite que vous avez paramétrée. Habituellement utilisée pour indiquer l'adresse du donneur d'ordre, de livraison ou de facturation, selon le contexte du document.</span>
</div>
<div id="rdlc-page-header-toprightaddresstext-description" class="rdlc-description">
<h3>Texte adresse droite</h3>
<span>Cette section vous permet d'ajouter des informations complémentaires sous l'adresse de droite.</span>
</div>
<div id="rdlc-page-footer-description" class="rdlc-description">
<h3>Pied de page</h3>
<span>Les informations présentes dans cette section sont répétées sur toutes les pages de votre document.</span>
</div>
<div id="rdlc-page-footer-conditions-description" class="rdlc-description">
<h3>Conditions</h3>
<span>Cette section est dédiée à afficher les conditions générales associées à votre document.</span>
</div>
<div id="rdlc-page-footer-footertext-description" class="rdlc-description">
<h3>Texte de pied de page</h3>
<span>Cette section accueille le pied de page, généralement présent pour indiquer les informations légales et coordonnées de la société.</span>
</div>
<div id="rdlc-page-footer-image-description" class="rdlc-description">
<h3>Image de pied de page</h3>
<span>Cette section permet l'affichage d'une image au ratio 2:1 dans le pied de page.</span>
</div>
<div id="rdlc-document-description" class="rdlc-description">
<h3>Corps du document</h3>
<span>Cette visualisation est une représentation schématique des différentes parties d'une édition commerciale CAP Business.</span>
</div>
<div id="rdlc-document-headertable-description" class="rdlc-description">
<h3>Table en en-tête de document</h3>
<span>Cette section offre jusqu'à 8 champs dans lesquels vous pouvez paramétrer les données que vous souhaitez afficher. Les champs sont affichés verticalement (titre puis valeur associées en-dessous) sur deux lignes (4 champs par ligne). Ce tableau n'apparaît qu'en première page de votre document.</span>
</div>
<div id="rdlc-document-linetable-description" class="rdlc-description">
<h3>Table en lignes de document</h3>
<span>Cette section contient les lignes de votre document.</span>
</div>
<div id="rdlc-document-footertable-description" class="rdlc-description">
<h3>Table en pied de document</h3>
<span>Cette section offre jusqu'à 6 champs dans lesquels vous pouvez paramétrer les données que vous souhaitez afficher. Ce tableau n'apparaît que sur la dernière page de votre document, avec le total.</span>
</div>
</div>
<div>

<script type="text/javascript">

function animateOnHover(className) {
    let elements = document.querySelectorAll(className);
    elements.forEach(element => {
        let description = document.getElementById(`${element.id}-description`);
        element.addEventListener('mouseover', () => {
            description.style.display = 'block';
        });
        element.addEventListener('mouseleave', () => {
            description.style.display = 'none';
        });
    });
}
animateOnHover('.rdlc-container');
animateOnHover('.rdlc-field');

function cvDefer(method) {
    if (window.jQuery) {
        method();
    } else {
        setTimeout(function() { cvDefer(method) }, 50);
    }
}

cvDefer(function() {
    $(function () {
        $(".rdlc-field,.rdlc-container").hover(
            function () {
                $("#" + $(this).attr('id') + "-description").show();
            },
            function () {
                $("#" + $(this).attr('id') + "-description").hide();
            }
        );
    })
});
</script>

## Changer le style d'un état

Le style d'un état représente les couleurs utilisées, la police de caractères utilisée ou les marges appliquées.
Le style se configure pour chaque état dans sa fiche **Personnalisation état** et l'onglet **Style**.

![Onglet Style de la personnalisation d'un état](../images/cap-business-personnalisation-etats-1.png)

Si vous souhaitez configurer un style identique pour tous les états, reprenant typiquement la charte graphique de votre société, vous pouvez créer un modèle de style.
Pour cela,

1. Choisissez l'icône ![](/public/svg/search-right.svg), saisissez **Modèles style d'états**, puis sélectionnez le lien associé.
2. Dans la liste qui s'ouvre, cliquez sur **Nouveau**.
3. Dans la page qui s'ouvre, renseignez un **Code** qui va identifier de manière unique le style que vous créez.
4. Complétez les autres champs de la fiche pour y appliquer vos préférences.

Vous devrez ensuite appliquer le style que vous avez créé à un ou plusieurs états.

1. Choisissez l'icône ![](/public/svg/search-right.svg), saisissez **Personnalisation des états**, puis sélectionnez le lien associé.
2. Dans la liste qui s'ouvre, sélectionnez l'état (ou les états) pour lequel appliquer le style précédemment créé.
3. Choisissez l'action **Appliquer un style**.

   ![Choisir l'action Appliquer un style pour le définir sur les états sélectionnés de la liste](../images/cap-business-personnalisation-etats-0.png)

4. Choisissez le style à utiliser.

## Adapter un état pour une autre langue

Un état peut être traduit dans une autre langue que le français. Pour cela, suivez les étapes ci-dessous :

1. Choisissez l'icône ![](/public/svg/search-right.svg), saisissez **Personnalisation des états**, puis sélectionnez le lien associé.
2. Sélectionnez l'état à traduire.
3. Choisissez l'action **Copier**.
4. Dans la page qui s'ouvre, indiquez la langue pour laquelle créer la traduction et sélectionnez **OK**.

Vous pouvez à présent traduire le contenu de l'état, notamment en réalisant la correspondance des [constantes](personnalisation-etats-constantes.md).

## Personnaliser la description d'une ligne

Dans les éditions commerciales, le texte imprimé par défaut dans les lignes contient les informations du champ _Description_. Vous pouvez personnaliser l'affichage de cette information :

- en adaptant le contenu selon les informations de la ligne (contenu différent pour un article, un commentaire, etc.)
- en adaptant le formatage du contenu grâce au langage HTML (uniquement pour les éditions RDLC).

Pour accéder à la personnalisation du contenu des lignes, suivez les étapes ci-dessous :

1. Choisissez l'icône ![](/public/svg/search-right.svg), saisissez **Personnaliser les états**, puis sélectionnez le lien associé.
2. Sélectionnez l'état pour lequel modifier les libellés.
3. Choisissez l'action **Personnaliser la description**.
4. Dans la page qui s'ouvre, entrez le numéro de table des lignes.
5. Entrez un filtre pour spécifier sous quelle condition appliquer la personnalisation.

> [!TIP]
> Vous pouvez par exemple l'utiliser si vous souhaitez appliquer une description différente en fonction du type de ligne.

6. Dans la zone en bas de la page, indiquez le texte des lignes. Vous pouvez y utiliser des [champs de substitution](../corelibrary/parsers-syntax.md) basés sur la table indiquée précédemment.

## Voir aussi

- [Syntaxe des champs de substitution](../corelibrary/parsers-syntax.md)
- [Balises HTML supportées](https://docs.microsoft.com/fr-fr/sql/reporting-services/report-design/importing-html-into-a-report-report-builder-and-ssrs)

