Vous consultez une page technique concernant le logiciel de gestion Mercator. Celle-ci contient des informations spécifiques destinées aux professionnels de Mercator. Souhaitez-vous être redirigés vers des informations plus générales ?


   Ne plus poser cette question

Reporting : comment décaler un libellé dans une colonne à l'impression ?

0000002047     -      29/08/2017

Solution 1

Imaginons une liste reprenant les articles avec, notamment, la désignation ainsi que le prix de vente. La désignation doit être décalée vers la droite en fonction du montant.

Dans l'éditeur de rapports, il faut :

  • dans le rapport, cliquer dans la bande "Données" afin de sélectionner "Data1 Databand" dans la fenêtre des propriétés du rapport
  • dans la fenêtre des propriétés du rapport, cliquer sur le bouton "Eclair" afin d'accéder au code C# correspondant à la bande de données
  • double-cliquer sur l'évènement "BeforePrint"
  • la fenêtre de code s'ouvre avec, par défaut, "private void Data1_BeforePrint(object sender, EventArgs e)"
  • coller le code ci-dessous.

Ceci illustre l'utilisation de la propriété Padding() de la cellule Cell1 (qui contient la désignation).

Zoom
// Récupération de la valeur du champ s_prix_ti
Double montant = ((Double)Report.GetColumnValue("StockRep.s_prix_ti"));
int libStart = 0;

// En fonction du prix, gestion du décalage de la désignation
if (montant < 20)
  libStart = 20;

if (montant < 10)
  libStart = 40;
  
// Décalage de la désignation
Cell1.Padding = new Padding(libStart, 0, 0, 0);

 

Solution 2

Imaginons la liste des rayons, familles et sous-familles.

Il faut s'assurer d'avoir, dans la requête, les champs id et parent_id qui permettront de faire le lien entre les différents enregistrements.

Dans l'éditeur de rapports, sur la bande de données, il suffit de compléter les propriétés suivantes :

  • IdColumn : StockRep.Id
  • ParentIdColumn : StockRep.Id_parent
  • Ident : le décalage vers la droite souhaité