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 :

[Linux] Lazreport n'imprime qu'une seule page


Sujet :

Lazarus Pascal

  1. #1
    Nouveau membre du Club
    [Linux] Lazreport n'imprime qu'une seule page
    Bonjour,

    Je veux imprimer une liste simple avec lazreport. En mode prévisualisation, c'est bon. En mode impression, seule la première page est imprimée. Si je lance l'impression depuis la visualisation (qui est bonne), seule la 1ere page s'imprime également. J'ai testé avec plusieurs imprimantes, le résultat est toujours le même.
    J'ai essayé en mettant un espace (blanc) à la place d'un vide dans la commande PrintPreparedReport, sans changement.

    Me manquerait-il quelque chose à installer ?

    ci-dessous, 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
     
    // ---------------------------------------------------------------------------
    // FORME | Btn_Imprime
    // ---------------------------------------------------------------------------
    procedure TForm1.Btn_ImprimeClick(Sender: TObject);
    begin
      frReport1.LoadFromFile('Report1.lrf');
      frReport1.PrepareReport;
      frReport1.PrintPreparedReport('',1);
    end;
     
     
    // ---------------------------------------------------------------------------
    // FORME | Btn_Previsualise
    // ---------------------------------------------------------------------------
    procedure TForm1.Btn_PrevisualClick(Sender: TObject);
    begin
      frReport1.LoadFromFile('Report1.lrf');
      frReport1.ShowReport;
    end;


    Je suis sous mint 20 64bits, lazarus V 2.0.6 + dfsg-3


    Edit
    Je viens de tester sous fedora 31 : même problème

  2. #2
    Expert confirmé
    hello,
    Citation Envoyé par micoudic Voir le message
    Bonjour,
    Si je lance l'impression depuis la visualisation (qui est bonne), seule la 1ere page s'imprime également.
    Qu'entends-tu par visualisation (le mode show ?) ?
    Moi avec ce code :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TForm1.Bt_PrintClick(Sender: TObject);begin
      frReport1.LoadFromFile(ExtractFilePath(application.ExeName) +
        'Mushroom_Report.lrf');
      frReport1.ShowReport();
    end;

    j'ai ma prévisualisation qui apparaît et quand je clique sur le bouton d'impression je peux imprimer mes 5 pages :




    Bon je suis windows mais cela devrait se comporter de la même façon sous linux.

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  3. #3
    Nouveau membre du Club
    Citation Envoyé par jurassic pork Voir le message
    hello,

    Qu'entends-tu par visualisation (le mode show ?) ?
    Exactement la même chose que toi.
    Pour la cde LoadFromFile, j'avais mis le chemin en dur, sans changement. Je viens de tester avec le ExtractFilePath : toujours pareil.

    En mode visualisation, il y a 6 pages d'affiché, et quand je demande l'impression à partir de la fenêtre de visualisation, je n'obtient qu'une seule page imprimée. Donc le même résultat que par la commande d'impression PrintPreparedReport.

  4. #4
    Expert confirmé
    hello,
    as-tu essayé sous windows, c'est peut-être un bug de lazreport sous linux.

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  5. #5
    Nouveau membre du Club
    Merci jurassic pour ton intéret à mon problème.

    Ça y est, j'ai trouvé
    Après de multiples essais, j'ai remarqué que avec un numéro de page dans la commande "PrintPreparedReport" :
    Blanc : une seule page (la 1ere)
    1 : la 1ere page (normal)
    2 : la 2eme page, mais incomplète
    3: la 3eme page, complète, et ainsi de suite jusqu'à 6
    1-6 : seule la 1ere page est imprimée

    J'ai ajouté un edit dans lequel je saisi le numéro de page que je veux imprimer
    Mêmes résultats (mais je ne suis plus obligé de re-compiler)

    J'ai remarqué, dans la liste affichée par la commande "ShowReport" qu'un enregistrement était affiché avec un point d'interrogation dans le champ 'Montant'. Cet enregistrement s'affiche dans la page 2. Tient ! bizarre ! J'ai mis à jour cet enregistrement en re-saisissant un montant, et bingo, l'erreur venait de là. Maintenant, je peux imprimer la totalité.
    Mais alors, pourquoi l'affichage est complet, mais pas l'impression ?

  6. #6
    Nouveau membre du Club
    J'apporte une petite précision, pour ceux qui comme moi ne connaissent pas ou peu LazReport.

    En fait, mon fichier de test n'était pas mauvais. J'avais modifié les montants des enregistrements qui posaient problème. Par paresse, je n'avait entré que de petits montants. Tout était rentré dans l'ordre. Jusqu'au moment où j'ai re-saisi un montant => 1.000. Et là, rebelote, l'édition plante à nouveau.
    Pour résoudre ce problème, il faut mettre un masque-format sur ce champ. Ce que j'ai fait, dans l'inspecteur d'objet, paramètre "FormatStr". Mais cela ne change strictement rien quant au déroulement du programme : plante.
    J'ai fini par découvrir qu'il ne faut pas modifier directement ce paramètre, mais enregistrer le masque en faisant un double-clic sur le champ concerné, puis saisir le format via l'option "format personnalisé", ce qui met directement à jour l'option "FormatStr". Et là, ça baigne.
    C'est bête, mais si on ne le sait pas, on cherche. (J'ai cherché de la doc, mais il y a peu d'infos sur LazReport.)

###raw>template_hook.ano_emploi###