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

FastReport Discussion :

Impression formatée d'un RichEdit


Sujet :

FastReport

  1. #1
    Membre habitué
    Homme Profil pro
    Dev informatique retraité
    Inscrit en
    août 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev informatique retraité
    Secteur : Santé

    Informations forums :
    Inscription : août 2005
    Messages : 160
    Points : 148
    Points
    148
    Par défaut Impression formatée d'un RichEdit
    Bonsoir à tous

    Je voudrais imprimer une liste à partir d'RichEdit, pour cela pas de problèmes.
    Voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    procedure TForm8.ImpListeClick(Sender: TObject);
    Var
      Rich1: TfrxRichView;
    begin
     
      // alors sauver le richedit dans le fichier
      RichEdit1.lines.SaveToFile(tpath.Combine(chEXE, 'listeClients.RTF'));
     
      // si tout OK
      if FileExists(tpath.Combine(chEXE, 'listeClients.RTF')) then
      begin
        Rich1 := frxReportClient.FindObject('Rich1') as TfrxRichView;
        Rich1.RichEdit.lines.LoadFromFile(tpath.Combine(ExtractFilePath(application.ExeName), 'listeClients.RTF'));
      end
      else
        Exit;
      // lancer la prévisualisation
      frxReportClient.PrepareReport();
      frxReportClient.ShowPreparedReport;
    end;
    Cela fonctionne très bien

    Je voudrai limiter l'impression à 50 lignes du RichEdit et changer de page de façon à ne pas couper
    un groupe de renseignements qui à toujours le même nombre d'info.
    J'ai essayé avec un script , en comptant le nb de lignes, mais je pense que, comme je charge le fichier dans lequel j'ai sauvé mon RichEdit cela ne peut pas marcher !!

    Avez vous une idée ?

    Par avance Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    12 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 12 640
    Points : 34 116
    Points
    34 116
    Billets dans le blog
    49
    Par défaut
    Bonjour,

    un richedit avec des fonts ? Je ne savais pas que c'était possible à moins que ce ne soit que des balises HTML, j'ai appris quelque chose , en même temps, j'utilise FastReport FMX (pas de RichView avec FMX ) donc que je sois passé à côté n'est pas étonnant

    Sinon, pour l'instant, aucune idée niveau script, j'aurais plutôt pensé à une scission du Richedit en deux parties, les 50 premières lignes puis le reste et un état adapté soit :
    par MasterBand/Childband (ce qui permettrai de faire un saut de page),
    Nom : Capture.PNG
Affichages : 11
Taille : 21,5 Ko

    par MasterBand et deux enregistrements à la demande
    Tout se fait au niveau du code sur le principe d'un frxUserDataset, voilà ce que j'ai en tête

    Nom : Capture_1.PNG
Affichages : 13
Taille : 18,5 Ko

    Nom : Capture_2.PNG
Affichages : 13
Taille : 56,3 Ko

    à moins que l'insertion d'un caractère Page Break (0x0C) ne fonctionne ?
    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 habitué
    Homme Profil pro
    Dev informatique retraité
    Inscrit en
    août 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev informatique retraité
    Secteur : Santé

    Informations forums :
    Inscription : août 2005
    Messages : 160
    Points : 148
    Points
    148
    Par défaut
    Merci Sergio de votre Réponse

    J'ai aussi poser la question sur le soutien de FastReport car j'ai une version enregistrée et pour l'instant il ne m'ont pas encore donner de solution ?

    Par contre voici un exemple avec des Fonts dans un RichEdit

    Nom : Exemple-Impression.jpg
Affichages : 10
Taille : 66,9 Ko

    Bien sur les enregistrements sont le fruit de mon imagination dans ma base de test

    Par contre je vais explorer ta solution

    Merci et je tiens au courant

  4. #4
    Membre habitué
    Homme Profil pro
    Dev informatique retraité
    Inscrit en
    août 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev informatique retraité
    Secteur : Santé

    Informations forums :
    Inscription : août 2005
    Messages : 160
    Points : 148
    Points
    148
    Par défaut
    Voici la réponse faite par le soutien FastReport à ma question

    Essayez de charger listClients.RTF dans TRichEdit, puis envoyez chacune des 50 lignes de TRichEdit à TfrxRichView.RichEdit (si possible)
    Cela ne m'avance pas beaucoup

    Par contre j'ai joué avec la Hauteur du PageFooter (augmentation) et ainsi j'ai pu résoudre mon problème. Mais cette solution me laisse sur ma faim !

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    12 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 12 640
    Points : 34 116
    Points
    34 116
    Billets dans le blog
    49
    Par défaut
    Ah, d'accord, je crois que j'avais mal compris et pensais que c'était un premier groupe de 50 lignes puis tout le reste sans saut de page
    Ma réponse reste quand même à peu près identique ma réponse serait toujours une solution par un frxuserdataset, mais en changeant la partie "découpage"

    Pour reprendre les deux images

    dans le code, j'ai remarqué que Richedit existait déjà donc pas besoin de ça "Essayez de charger listClients.RTF dans TRichEdit"

    donc dans ce que je présente dans la dernière image, le code
    dans le code frxuserdataset1First
    nbrec:=0;
    frxdataset1.rangeendcount:=richedit1.lines.count;

    // peut aussi être indiqué ainsi
    procedure TForm8.ImpListeClick(Sender: TObject);
    begin
    frxDataSet1.RangeEndCout:=Richedit1.lines.Count;
    // lancer la prévisualisation
    frxReportClient.PrepareReport();
    frxReportClient.ShowPreparedReport;
    end;
    dans le code frxuserdataset1GetValue
    lignes:=Richedit1.lines[nbrec];

    dans le code fruserdataset1Next
    inc(nbrec);


    Enfin dans la bandemaster, un évènement onAfterPrint avec dans le script un test sur [lines] la variable système

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if [lines] mod 50=1 then newpage
    (je crois que c'est ça, je ne peux pas tester je suis en cours de mise à jour de ma version 10.4.1 -> 10.4.2)
    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

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

Discussions similaires

  1. Impression format rtf
    Par pboscaiolo dans le forum Débuter
    Réponses: 0
    Dernier message: 14/09/2010, 11h10
  2. [Impression] Format du papier
    Par Narah dans le forum Documents
    Réponses: 3
    Dernier message: 03/08/2010, 09h04
  3. Réponses: 0
    Dernier message: 08/01/2009, 22h57
  4. Impression format paysage d'un etat
    Par doudou0088 dans le forum VBA Access
    Réponses: 5
    Dernier message: 06/01/2008, 21h57
  5. [Impression] Format papier
    Par narmataru dans le forum Windows 2000/Me/98/95
    Réponses: 3
    Dernier message: 03/09/2007, 15h33

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