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 imprimer un libellé différent en fonction de la page imprimée ?

0000002048     -      07/11/2013

Dans l'éditeur de rapports, il faut :

  • dans la fenêtre des données du rapport, ajouter un nouveau paramètre (exemple "libtitre")
  • placer ce paramètre dans l'entête de page
  • dans le rapport, cliquer dans l'entête de page afin de sélectionner "PageHeader" 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 à l'entête
  • double-cliquer sur l'évènement "BeforePrint"
  • la fenêtre de code s'ouvre avec, par défaut, "private void PageHeader1_BeforePrint(object sender, EventArgs e)"
  • coller le code fourni ci-dessous.

Vous n'avez plus qu'à modifier le texte à imprimer.
Dans l'exemple ci-dessous, les pages 1, 3 et 4 ont un texte différent; les pages 2 et supérieures à 4 n'ont pas de texte imprimé.

Zoom
// Affichage du titre différent sur chaque page
// Passage par un paramètre qui est initialisé par code
if (((Int32)Report.GetVariableValue( "Page" )) == 1)
  Report.SetParameterValue( "libtitre" , Iif_langue(((String)Report.GetColumnValue( "CurrentUser.LANGUE" )), "Page 1-Allemand" , "Page 1-Anglais" , "Page 1-Néerlandais" , "Page 1-Français" ));
else if (((Int32)Report.GetVariableValue( "Page" )) == 2)
  Report.SetParameterValue( "libtitre" , "" );
else if (((Int32)Report.GetVariableValue( "Page" )) == 3)
  Report.SetParameterValue( "libtitre" , Iif_langue(((String)Report.GetColumnValue( "CurrentUser.LANGUE" )), "Page 3-Allemand" , "Page 3-Anglais" , "Page 3-Néerlandais" , "Page 3-Français" ));
else if (((Int32)Report.GetVariableValue( "Page" )) == 4)
  Report.SetParameterValue( "libtitre" , Iif_langue(((String)Report.GetColumnValue( "CurrentUser.LANGUE" )), "Page 4-Allemand" , "Page 4-Anglais" , "Page 4-Néerlandais" , "Page 4-Français" ));
else if (((Int32)Report.GetVariableValue( "Page" )) > 4)
  Report.SetParameterValue( "libtitre" , "" );