/
Total reporté

Total reporté

Comment ajouter un total reporté dans les formulaires DevExpress

 

 

Ajouter le sous-total

Ajouter un premier champ en bas de page avec la fonction “Running summary”

  • Ajouter un nouveau label dans le bas de page

  • Ouvrir les propriétés “Summary”

     

  • Dans le “Summary editor définir

    • Summary running → Report

    • Summary function → Running Summary

    • Argument expression → [VeTeteDocum.ChildVE_LIGNE_DOCUM.Total ligne HT]

     

  • Définir le nom du champ avec “SousTotalFinDePage“ dans les propriétés

     

Ajouter le total reporté

  • Ajouter un nouveau label pour le titre du total reporté dans le haut de page

  • Lui donner un text et le nom “TotalReporteTitre“ dans les propriétés

     

  • Ajouter un nouveau label pour le total reporté

  • Lui donner le nom “TotalReporte“ dans les propriétés

     

Ajouter le script

Ajouter le script suivant dans la section “Script” du rapport

using System.Linq; using DevExpress.XtraPrinting; private void XtraReport_AfterPrint(object sender, System.EventArgs e) { var TotalReporteBricks = BrickSelector.GetBricksByXRControl(this.PrintingSystem.Document, TotalReporte).ToList(); var TotalReporteTitreBricks = BrickSelector.GetBricksByXRControl(this.PrintingSystem.Document, TotalReporteTitre).ToList(); var SousTotalFinPageBricks = BrickSelector.GetBricksByXRControl(this.PrintingSystem.Document, SousTotalFinDePage).ToList(); for (int i = 0; i < TotalReporteBricks.Count; i++) { if (i > 0 && SousTotalFinPageBricks.Count() > i-1 ) { TotalReporteBricks[i].Text = SousTotalFinPageBricks[i -1].Text; } else { TotalReporteTitreBricks[i].IsVisible = false; TotalReporteBricks[i].IsVisible = false; } } }


La Forestière (Procédé utilisable pour d’autres clients)

Pour le report de la Forestière, une alternative a dû être mise en place car pour la demande du client, le système de report du dessus ne fonctionnait pas (ne retournait pas de valeur, possiblement à cause du GroupHeader).

Pour le report en bas de page (la mention “À Reporter”), c’est le même procédé que mentionné plus haut (Section Ajouter un sous-total).

Pour ajouter le report sur la page suivante, la Forestière a un système bizarre qui fait que le report arrive avant les lignes dans le rapport DevExpress.

Pour le mettre en place, il faut mettre un GroupHeader. Ce GroupHeader doit avoir la case “Repeat Every Page” coché et mettre une expression sur le Visible: “[DataSource.CurrentRowIndex] != 0”. Cette expression sert à ne pas l’afficher sur la première page.

Les labels dans ce GroupHeader doivent être nommés (reprendre TotalReporte et TotalReporteTitre).

Mettre le script suivant :

string lastSum; private void SousTotalFinDePage_SummaryCalculated(object sender, DevExpress.XtraReports.UI.TextFormatEventArgs e) { lastSum = e.Value.ToString(); } private void TotalReporte_PrintOnPage(object sender, DevExpress.XtraReports.UI.PrintOnPageEventArgs e) { if (e.PageIndex == 0) { e.Cancel = true; return; } if(!string.IsNullOrEmpty(lastSum)) { (sender as XRLabel).Text = lastSum; } }

 

Related content