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 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.
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.
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.
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)