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

QuickReport Discussion :

Nombre d'itérations d'une requête (QRExpr)


Sujet :

QuickReport

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Avril 2011
    Messages : 177
    Points : 111
    Points
    111
    Par défaut Nombre d'itérations d'une requête (QRExpr)
    Bonjour,

    j'utilise QReport avec delphi 7 , je connait pas bien les composants de la palette.
    j'ai une requête Query1 qui retourne 18 résultat (chaqu'une contient un titre)à l’impression j'ai 9 pages, dans chaque page 2 titre,

    je cherche à numéroté les titre de 1 à 18.

    est ce que il y a un moyen avec le QRExpr, pour faire ça !

    Nom : capt.png
Affichages : 282
Taille : 19,6 Ko

    merci

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    plusieurs manières de faire me viennent à l'esprit mais aucune avec QRExpression , en effet à ma connaissance Quickreport n'a pas de variable état et je ne pense pas qu'une expression du genre numero=numero+1 fonctionnerai.

    Je remarque que toutes vos questions sur quickreport omette toujours l'option utilisation des évènements OnPrint (pour les QRDBText,QRLabel) onBefore, on AfterPrint pour les bandes et j'en oublie certainement.

    Déjà, pour un problème de ce genre je commencerai par savoir s'il n'est pas possible d'obtenir le numéro à sa source, c'est à dire directement dans la Query mais ça toute les SGBD ne le font pas !
    si oui alors pas de problème ce n'est qu'un champ de plus
    si non
    solution simple
    utiliser Query.RecNo il y aura alors simplement besoin d'un évènement OnPrint sur le QRLabel (en lieu et place du QRExpression)

    solution simple mais moins élégante :
    1 - une variable globale à l'unité
    2 - un evénement beforeprint du Quickreport pour initialiser la variable à zéro
    3 - un évènement BeforePrint sur la bande titre où la variable sera incrémentée et le QRLabel renseigné

    solution casse-cou : jouer sur le numéro de page à mon avis solution à ne pas envisager sans maitrise
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Avril 2011
    Messages : 177
    Points : 111
    Points
    111
    Par défaut
    Bonjour,

    j'ai essayé la solution avec un Query.RecNo sur l’événement OnPrint, à l'affichage toujours le QRLabel.Caption =1

    pourquoi !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TFaffaires.QRLabel38Print(sender: TObject; var Value: String);
    begin
        QRLabel.Caption:=inttoSTR(Query1.RecNo) ;
    end;



    Citation Envoyé par SergioMaster Voir le message
    Bonjour,

    plusieurs manières de faire me viennent à l'esprit mais aucune avec QRExpression , en effet à ma connaissance Quickreport n'a pas de variable état et je ne pense pas qu'une expression du genre numero=numero+1 fonctionnerai.

    Je remarque que toutes vos questions sur quickreport omette toujours l'option utilisation des évènements OnPrint (pour les QRDBText,QRLabel) onBefore, on AfterPrint pour les bandes et j'en oublie certainement.

    Déjà, pour un problème de ce genre je commencerai par savoir s'il n'est pas possible d'obtenir le numéro à sa source, c'est à dire directement dans la Query mais ça toute les SGBD ne le font pas !
    si oui alors pas de problème ce n'est qu'un champ de plus
    si non
    solution simple
    utiliser Query.RecNo il y aura alors simplement besoin d'un évènement OnPrint sur le QRLabel (en lieu et place du QRExpression)

    solution simple mais moins élégante :
    1 - une variable globale à l'unité
    2 - un evénement beforeprint du Quickreport pour initialiser la variable à zéro
    3 - un évènement BeforePrint sur la bande titre où la variable sera incrémentée et le QRLabel renseigné

    solution casse-cou : jouer sur le numéro de page à mon avis solution à ne pas envisager sans maitrise

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par yacinew Voir le message
    Bonjour,

    j'ai essayé la solution avec un Query.RecNo sur l’événement OnPrint, à l'affichage toujours le QRLabel.Caption =1

    pourquoi !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TFaffaires.QRLabel38Print(sender: TObject; var Value: String);
    begin
        QRLabel.Caption:=inttoSTR(Query1.RecNo) ;
    end;
    Parce que c'est Value qu'il faut changer pas Caption !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Value:=inttoSTR(Query1.RecNo) ;
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Avril 2011
    Messages : 177
    Points : 111
    Points
    111
    Par défaut
    oui exactement merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PDO] Compter le nombre de lignes d'une requête SELECT
    Par WerKa dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 17/06/2007, 20h57
  2. [MySQL] Tester le nombre de résultats d'une requête
    Par ksper92 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 05/02/2007, 15h13
  3. [débutant] définition du nombre de décimales dans une requête
    Par a2line dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 02/12/2006, 21h57
  4. [MySQL] Connaitre le nombre de "rows" dans une requête de type SELECT ?
    Par dagra dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 15/11/2006, 22h44
  5. Compter le nombre de lignes d'une requête sélection
    Par oceanediana dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 18/07/2006, 12h11

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