Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Ajouter un nouveau label dans le bas de page

  • Ouvrir les propriétés “Summary”

    Image RemovedImage Added

  • Dans le “Summary editor définir

    • Summary running → Report

    • Summary function → Running Summary

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

      Image RemovedImage Added

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

...

Code Block
languagec#
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 :

Code Block
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;
    }
}