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 sous condition ?

0000002046     -      11/12/2019

Il existe différents cas où des données doivent être imprimées ou non en fonction de certaines conditions.
Voici plusieurs possibilités pour obtenir ce résultat.

Par zone, tester la condition
Exemple : [Iif(total > 0, total, "")]
Dans le rapport ci-joint, ceci est appliqué à la colonne "Prix HT".

Par zone, utiliser du bouton "Surlignement"
Après avoir sélectionné le champ dans le rapport, vous avez accès à la fonctionnalité "surlignement" (bouton bout_surligne dans la barre des outils). Vous pouvez alors ajouter plusieurs conditions et, notamment, décocher la case "Visible".
Dans le rapport ci-joint, ceci est appliqué à la colonne "Prix TI".

Par zone, utiliser du code C#
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 fourni ci-dessous.
Zoom
Double montant = ((Double)Report.GetColumnValue("StockRep.s_prix_ti"));
if (montant < 20)
  Cellcle1.Text = "";
else
  Cellcle1.Text = "[StockRep.S_CLE1]";

Dans le rapport ci-joint, la condition agit sur la clé 1 en fonction de la valeur du "Prix TI".

Cacher une colonne complète
Exemple : en fonction de la valeur sélectionnée lors de l'exécution du rapport via les choix déroulants : "Avec catégorie" ou "Sans catégorie".
Dans l'éditeur de rapports, il faut :

  • dans la fenêtre des propriétés du rapport, sélectionner l'élément "Report" dans la liste déroulante
  • cliquer sur le bouton "Eclair" afin d'accéder au code C#
  • double-cliquer sur l'évènement "StartReport"
  • la fenêtre de code s'ouvre avec, par défaut, "private void MonTest_StartReport(object sender, EventArgs e)"
  • Coller le code fourni ci-dessous.
Zoom
String avec_cat = ((String)Report.GetColumnValue("StockRep2.catego"));
if (avec_cat == "SANS")
{
  CTitreCat.Visible = false;
  CLibCat.Visible = false;
}

Dans le rapport ci-joint, la colonne "Catégorie" apparaît en fonction du choix déroulant sélectionné.

Cacher une page complète
Exemple : en fonction de la présence ou non d'une table dans le rapport. Dans l'exemple ci-dessous, la Page1 n'est visible que si la table StockRep est présente et la Page2 n'est visible que si la table StockRep3 est présente.
Dans l'éditeur de rapports, il faut :

  • dans la fenêtre des propriétés du rapport, sélectionner l'élément "Report" dans la liste déroulante
  • cliquer sur le bouton "Eclair" afin d'accéder au code C#
  • double-cliquer sur l'évènement "StartReport"
  • la fenêtre de code s'ouvre avec, par défaut, "private void MonTest_StartReport(object sender, EventArgs e)"
  • Coller le code fourni ci-dessous.
Zoom
void Report_StartReport(object sender, EventArgs e)
{
    Page1.Visible = ((FastReport.Data.TableDataSource)Report.GetDataSource("StockRep")).Table.Select("rowid <> ''").Length > 0;
    Page2.Visible = ((FastReport.Data.TableDataSource)Report.GetDataSource("StockRep3")).Table.Select("rowid <> ''").Length > 0;
}

Via la fenêtre de dialogue 
L'éditeur de rapports offre la possibilité d'afficher une fenêtre de dialogue avant l'impression. Il est donc possible d'intervenir sur les données et/ou la mise en page.
Exemple : Reporting : utilisation de la fenêtre de dialogue dans un rapport.



A télécharger : 0000002046.zip (4 Kb - 14/05/2012)