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 :

Conception d'une facture avec FastReport


Sujet :

FastReport

  1. #1
    Membre actif

    Inscrit en
    Mai 2010
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 401
    Points : 294
    Points
    294
    Par défaut Conception d'une facture avec FastReport
    Bonjour a tous,
    j'ai commencer a travaillé avec fastReport , j'ai réalisé des état avec ce dernier en consultant son documentation officiel .
    maintenant je suis arrivé a des choses un peut compliqué .
    c'est juste je veux réaliser une facture , j'ai mis une bande masterDetail qui contient le détail de ma facture, mais cette dernière doit avoir un nombre limité de ligne , 18 lignes par pages , après la 18 eme ligne, une nouvelle page est insérer automatiquement.
    j'ai commencer a jouer avec les événements de la bande Détail , j'ai appris comment réalisé un compteur de lignes et comment créer une nouvelle page.
    le problème est le suivant :
    si la facture contient seulement 7 lignes , je veut insérer les lignes vides (Blanches) a la fin de ces lignes (Dans mon exemple je doit insérer 11 lignes vides).

    j'ai consulter ce post qui resemble a mon probleme
    [FastReport 4][D7] Comment Completer un état ?
    y t il une suggestion SVP.

    j'utilise Delphi 7 entrepise + fastReport 5.

  2. #2
    Membre actif

    Inscrit en
    Mai 2010
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 401
    Points : 294
    Points
    294
    Par défaut
    pour bien expliquer mon probleme voici une facture exemple.
    Nom : Image3.jpg
Affichages : 4112
Taille : 477,9 Ko

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 031
    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 031
    Points : 40 930
    Points
    40 930
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    Les Totaux doivent être dans une Bande résumée et cette dernière alignée en bas

    ceci devrait fonctionner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    procedure ReportSummary1OnBeforePrint(Sender: TfrxComponent);
    begin
    if engine.freespace > reportsummary1.height then
       Engine.CurY := Engine.PageHeight -reportsummary1.height -pagefooter1.Height - 1;
    end;
    ou cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure ReportSummary1OnAfterCalcHeight(Sender: TfrxComponent);
    begin
    Engine.CurY := Engine.PageHeight -reportsummary1.height -pagefooter1.Height - 1;
    end;
    en tout cas le manque de l'alignement en bas semble être une des lacunes de FastReport !
    malheureusement/heureusement je n'ai pas encore eu à faire ce type d'état, mais je suis à peu près sur qu'il y a des exemples de factures conforme à l'attente
    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

  4. #4
    Membre actif

    Inscrit en
    Mai 2010
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 401
    Points : 294
    Points
    294
    Par défaut
    Bonjour ,
    Merci beaucoup Sergio pour ton suivi ,
    tu sais j’attends toujours tes réponses , merci encore.
    je pense qu'il faut utiliser des sous rapport , une chose que je n'ai jamais utilisé.
    as tu un exemple claire avec les sous rapport FastReport?

  5. #5
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 138
    Points : 113
    Points
    113
    Par défaut
    Citation Envoyé par aimer_Delphi Voir le message
    Bonjour a tous,

    le problème est le suivant :
    si la facture contient seulement 7 lignes , je veut insérer les lignes vides (Blanches) a la fin de ces lignes (Dans mon exemple je doit insérer 11 lignes vides).

    j'ai consulter ce post qui resemble a mon probleme
    [FastReport 4][D7] Comment Completer un état ?
    y t il une suggestion SVP.

    j'utilise Delphi 7 entrepise + fastReport 5.
    Bonjour essai avec la solution suivante:
    Tu rajoute une bande child(enfant) ,puis la bande donnée détails(ou bien données maitre ligne).Tu initialises une variable i à 0 dans le onbeforeprint de l’entête de page que tu incrémente dans le onbeforeprint des données détails puis enfin dans le onbeforeprint du pied détail
    tu met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    while i<11 do
     begin
        ShowBand(enfant1);
        i:=i+1;
     end;

  6. #6
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    Citation Envoyé par aimer_Delphi Voir le message
    Bonjour ,
    Merci beaucoup Sergio pour ton suivi ,
    tu sais j’attends toujours tes réponses , merci encore.
    je pense qu'il faut utiliser des sous rapport , une chose que je n'ai jamais utilisé.
    as tu un exemple claire avec les sous rapport FastReport?
    bien vu, normalement dans le principal trace ta facture, avec "SubReport" tu affiche les données
    https://www.fast-report.com/public_d...rManual-en.pdf
    page 80;
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  7. #7
    Membre régulier
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2013
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2013
    Messages : 212
    Points : 81
    Points
    81
    Par défaut
    Citation Envoyé par aimer_Delphi Voir le message
    pour bien expliquer mon probleme voici une facture exemple.
    Depuis Ps mal du temps je cherche comment convertir ce Net à payer en lettres en bas de la facture .

  8. #8
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 031
    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 031
    Points : 40 930
    Points
    40 930
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    Cette dernière demande est presque hors sujet !
    je cherche comment convertir ce Net à payer en lettres
    c'est le sujet de votre question ici Si vous n'arrivez pas à obtenir de résultat commencez donc par y poster votre code !

    en bas de la facture
    Vous avez l'approche proposée par edam : les subreports
    Page 1
    Nom : Capture.PNG
Affichages : 1859
Taille : 25,9 Ko

    SubReport1
    Nom : Capture1.PNG
Affichages : 1907
Taille : 26,1 Ko

    l'autre solution (que j'avais signalée) fonctionne également
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    // code fastreport
    procedure ReportSummary1OnBeforePrint(Sender: TfrxComponent);
    begin
    //   Engine.CurY := Engine.PageHeight - Reportsummary1.height - PageHeader1.Height - 0.00001; 
    end;
    ce code se trouve dans le même état que les images précédentes, il a été commenté après création/utilisation du subreport

    j'anticipe également la question : "comment avoir des lignes verticales complètes ?"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    // code fastreport
    procedure Child1OnBeforePrint(Sender: TfrxComponent);
    var h : Extended;
    begin
     h:=Engine.FreeSpace-ReportSummary1.Height-PageFooter1.Height;
     if h < 0  then h:=(Engine.FreeSpace-PageFooter1.height) + (Engine.PageHeight- PageHeader1.Height - PageFooter1.Height- ReportSummary1.Height - 0.0001 )
               else h:=(Engine.FreeSpace-PageFooter1.height-ReportSummary1.Height);
     Child1.Height:=h;
     Memo2.Height:=h;
    end;
    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

  9. #9
    Nouveau Candidat au Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2020
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Polynésie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2020
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Positionner une band summary en bas de page
    Bonjour,

    J'ai voulu tester votre code mais sur un report de 2 pages, au lieu de s'afficher en bas de ma 2ème page, mon "summary" s'affiche toujours en haut, avec juste un espace réservé pour l'entête. Je ne parviens pas à le mettre en bas de page, alors que si le report n'a qu'une seule page, cela fonctionne. J'ai bien mis l'option "Double pass" cochée. J'ai essayé aussi en testant si on est sur la page 2 ou si on est sur le FinalPass, mais ça ne réagit pas !
    Auriez-vous une idée svp ?

    Merci d'avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure ReportSummary1OnBeforePrint(Sender: TfrxComponent);
    begin
       Engine.CurY := Engine.PageHeight - Reportsummary1.height - PageHeader1.Height - 0.00001; 
    end;

Discussions similaires

  1. Conception d'une BDD avec "FileMaker Pro"
    Par mariny dans le forum Autres SGBD
    Réponses: 1
    Dernier message: 21/04/2008, 11h37
  2. Conception d'une structure avec automate
    Par nicodev24 dans le forum Langages de programmation
    Réponses: 4
    Dernier message: 21/02/2008, 12h01
  3. [Conception] Créer une table avec php
    Par freezerhm dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 29/10/2006, 12h15
  4. imprimer une facture avec liste de produits variables
    Par ouldfella dans le forum Delphi
    Réponses: 4
    Dernier message: 30/07/2006, 23h10
  5. etablir une facture avec Visual C++
    Par aymeno dans le forum MFC
    Réponses: 4
    Dernier message: 27/08/2005, 15h41

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