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 :

[Quickreport] Retour à la ligne


Sujet :

QuickReport

  1. #1
    Membre à l'essai
    [Quickreport] Retour à la ligne
    Salut, pour une application pas professionnelle, je veux afficher dans une colonne sur quickreport ce que j'ai saisi dans ma fenêtre avec un TMemo ou un autre composant qui convient, c'est à dire si je saute la ligne lors de la saisie je retrouve le saut lors de l'affichage. Je travaille avec Delphi 7. Mon problème est simple mais il me casse trop la tête. Merci pour vote attention.

  2. #2
    Rédacteur/Modérateur

    Bonjour,

    Premier point, un forum spécifique existe pour toutes les questions concernant quickreport http://www.developpez.net/forums/f1729/logiciels/solutions-d-entreprise/business-intelligence/autres-outils-decisionnels/quickreport/. Pourtant il y a le lien Générateurs d'états qui devrait vous mettre la puce à l'oreille! ,bref j'aime bien le rappeler car beaucoup utilise le forum Delphi pour ces questions, or ce n'est pas parce que Quickreport est (je devrait dire était) fourni avec Delphi que c'est le seul environnement on on peut l'utiliser.

    PS. Revenant de quelques petites vacances, j'ai la flemme de transférer le sujet, si un modérateur plus courageux le fait je n'en serait pas fâché

    Pour en revenir au problème, généralement, un état quickreport utilise des sources de données (donc des tables ou requêtes) et des bandes détails pour les contenir. Le cas demandé est donc un peu particulier et revient en gros à se servir d'un TMemo comme d'un traitement de texte pour l'imprimer ensuite ?

    à mon avis il y a plusieurs méthodes possibles (cela fait longtemps que je n'utilise plus quickreport)
    la plus simple :
    je pose sur une forme 1 TMemo, un QuickReport, un TButton
    propriété du quickreport : PrintIfEmpty à true
    dans le quickreport je met un QRMemo
    propriétés du QRMemo : Autosize = false (<< oui je sais étonnant !) puis je le "taille" de la largeur de la zone imprimable
    WordWrap = True

    un évènement sur le Bouton1 (onclick) avec le code QuickRep1.Preview;
    un évènement Beforeprint pour le Quickreport avec le code QRMemo1.Lines:=Memo1.Lines;
    et voilà, j'ai mon "pseudo traitement de texte"

    Attention on n'utilisera pas forcément la même technique pour un TRichEdit avec son équivalent QRRichText à mon avis le passage par un Stream sera plus judicieux.

    si l'on veut des bandes de titre, pied de page etc... il faudra faire un état plus classique avec des bandes (et donc une bande détail) qui contiendra le QRMemo ou QRRichText mais surtout, il faudra "simuler" l'obtention de données grâce à l'évènement OnNeedData du TQuickRep
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  3. #3
    Membre à l'essai
    Merci, j'ai fait attention qu'il y'avais un autre forum pour ça...