IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lazarus Pascal Discussion :

Numérotation des pages sous LAZReport


Sujet :

Lazarus Pascal

  1. #1
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 81
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut Numérotation des pages sous LAZReport
    Bonjour à tous

    Je fais un état avec plusieurs pages. C'est parfait et fonctionne très bien....sauf pour la numérotation des pages. La page 2 ne part pas avec le numéro de page 1. Idem pour la page 3. Ce n'est pas une catastrophe, mais s'il y avait une possibilité de repartir à 1, je serais preneur

    Merci d'avance

    Ce qui se conçoit bien s'énonce clairement
    Et les mots pour le dire viennent aisément (Boileau)

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 104
    Points : 395
    Points
    395
    Par défaut
    Salut

    j'avait le même souci que toi debut de semaine et j'avait laissé le problème de coté.
    J'y suis revenu aujourd'hui

    voila comme je l'ai résolu.

    j'ai d'abord éclaté mon rapport en 2 rapports différents un pour chaque page.
    j'ai rajouté sur ma forme un deuxième TFRreport et un TFRcompositeReport pour fusionner mes deux rapports.

    pour chaque rapport j'ai créé une variable à l'aide de l'éditeur de variables de l'editeur de rapport destiné a receuillir le numéro de page

    Dans mon unité, j'ai 2 variables globales destiné à receuillir l'une le numéro de page du rapport1 et l'autre le numéro de page du rapport2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private
    { Private declarations }
    page1, page2: integer;
    je gère l'évenement "OnBeginPage" du rapport1 afin de receuillir le numero de chaque page auquel j'ajoute 1 car le numéro commence à 0 à chaque création de page

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Procedure TForm1 .frReport1BeginPage (pgNo : Integer );
    Begin
    // à chaque debut de page on recupère le numéro de page (qui commence à 0)
        page1 := pgNo + 1 ;
    end;
    idem pour le rapport2 mais je soustrait le nombre de page du rapport 1 (puis j'ajoute 1)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Procedure TForm1 .frReport2BeginPage (pgNo : Integer );
    Begin
    // a chaque debut de page on recupee le numéro de page, on soustrait le nombre de page du rapport1
        page2 := pgNo - page1+ 1 ;
    end;
    pour chaque rapport, je gère l'évenement "OnGetvalue" pour pouvoir attribuer mon numero de page à la variable de chaque rapport

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Procedure TForm1 .frReport1GetValue (Const ParName : String ;
      Var ParValue : Variant );
    Begin
         if ParName = 'page1' then
         ParValue := page1;
    end;
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Procedure TForm1 .frReport2GetValue (Const ParName : String ;
      Var ParValue : Variant );
    Begin
         if ParName = 'page2' then
         ParValue := page2;
    end;
    Pour afficher ou imprimer le rapport final, je charge chaque rapport l'un après l'autre et je les préparent
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    frReport1.LoadFromFile('page1.lrf');
      frReport1.PrepareReport;
      frReport2.LoadFromFile('page2.lrf');
      frReport2.PrepareReport;
    pour finir, j'ajoute mes 2 rapports au rapport composite et j'affiche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    frcompositereport1.Reports.add(frReport1);
      frcompositereport1.Reports.add(frReport2);
      frcompositereport1.ShowReport;
    voila

    D'accord c'est un peu tiré par les cheveux mais ça marche
    j'ai pas trouvé comment afficher le nombre total de pages. Il doit y avoir moyen en recupérant la variable 'Pages totales' peut être avec l'évenement OnEndDoc.

    petit exemple joint

    @+
    Claude
    Fichiers attachés Fichiers attachés
    Lazarus 0.9.30-4 et FPC 2.4.4
    on
    debian Lenny i386
    debian Lenny amd64
    Ubuntu 10.04 i386
    Ubuntu 10.04 amd64
    MacOSX panther (10.5.8)
    Window 7 32 bits

  3. #3
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 81
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut
    En effet c'est un peu tiré par les cheveux., mais je vais l'utiliser. Merci pomalo.

    Je laisse néanmoins la discussion ouverte des fois qu'une autre personne ait une idée qui nous arrangerait tous les "deusses"
    Ce qui se conçoit bien s'énonce clairement
    Et les mots pour le dire viennent aisément (Boileau)

  4. #4
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 81
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut
    Je viens de trouver comment récupérer le dernier numéro de page d'un état. Dans mon cas la dernière bande est un Report Summary

    J'ai mis Dernière _Page pour m'en servir après

    procedure Tfrm_journallocations.Frreport1endband(Band: Tfrband);
    begin
    if Band.Typ = btReportSummary then
    begin
    Derniere_Page:= PageNo;
    ShowMessage(IntToStr(Derniere_Page));
    end;
    End;
    Autre solution :

    procedure Tfrm_journallocations.Frreport1enddoc;
    begin
    Derniere_Page:= PageNo;
    ShowMessage(IntToStr(Derniere_Page));
    End;
    Et Dernière page est le VRAI numéro de page.

    Je continue pour voir comment réinitialiser le numéro de page !
    Ce qui se conçoit bien s'énonce clairement
    Et les mots pour le dire viennent aisément (Boileau)

  5. #5
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 81
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut
    Un résultat pour le moins surprenant et très peu encourageant

    J'ai réussi à remettre la numéro de page à 1 pour la page 2 et c'est une horreur. Les pages se superposent à l'afficage et si je lance une édition, rien (ou presque) ne sort. Donc pas encore bon
    Ce qui se conçoit bien s'énonce clairement
    Et les mots pour le dire viennent aisément (Boileau)

Discussions similaires

  1. [WD-MAC 2011] Numérotation des pages sous word
    Par math7vb dans le forum Word
    Réponses: 10
    Dernier message: 11/01/2012, 19h21
  2. Gestion des pages sous dreamweaver
    Par yerimacm dans le forum Dreamweaver
    Réponses: 1
    Dernier message: 14/02/2007, 09h08
  3. Numérotation des pages
    Par LinkDijon dans le forum Mise en forme
    Réponses: 4
    Dernier message: 01/06/2006, 10h28
  4. [WORD] changer numérotation des pages
    Par meufeu dans le forum VBA Word
    Réponses: 3
    Dernier message: 20/07/2005, 17h13
  5. [CR 8.5] Numérotation des pages et rappel dans sous état
    Par Nout dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 02/09/2004, 13h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo