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

4D Discussion :

Problème d'impression 4d


Sujet :

4D

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 17
    Points : 7
    Points
    7
    Par défaut Problème d'impression 4d
    Bonjour,

    J'ai un problème d'impression et espère que vous pouvez me répondre.

    J'aimerais générer une impression de lettre. La lettre peut avoir plusieures pages, mais j'aimerais que l'entête de la lettre n'apparaisse que sur la première page.J'ai essayé de placer des taquets aux différentes places, mais ça ne marche toujours pas, l'entête apparait à chaque page de la lettre. est-ce que vous avez une solution?

    Merci beaucoup.

    SNW

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 71
    Points : 89
    Points
    89
    Par défaut
    Bonjour,

    Vous pouvez utiliser la commande qui retourne le numéro de la page en cours d'impression pour ne faire apparaitre un texte que sur la 1ère page.

    Cordialement

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Merci de votre réponse, je vais essayer.

  4. #4
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 94
    Points : 114
    Points
    114
    Par défaut
    Bonjour,

    Il y a deux situations principales, et la question reste ambigûe là-dessus :

    -> Soit vous voulez juste que les objets d'entête (ou certains d'entre eux) ne soient visibles que sur la première page. Dans ce cas, c'est simple :
    1/ Cocher l'événement "sur entête" du formulaire
    2/ Cacher les objets dans la méthode formulaire pour cet événement.

    Par exemple, vous nommez les objets à masquer sur les pages > 1 en mettant "page1Seulement" (genre, "page1seulement_1", [code]"page1seulement_2", etc., 4D renumérote les noms pour qu'ils soient uniques) et vous écrivez :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Au cas ou
       :(evenement formulaire=Sur entete)
       CHOIX  VISIBLE(*;"@page1Seulement@";Page impression = 1)
     
      . . .
    Fin de cas
    -> Soit vous voulez aussi que les *taquets* remontent pour les pages suivantes. Dans ce cas, la seule alternative est d'imprimer vos-même tout : l'entête, le corps puis le pied pour chaque page en vous inspirant des exemples fournis dans la doc (pour la commande Imprimer ligne notament). Le pseudo code est de ce genre
    recup. de la hauteur d'impression de la page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    premier entete
    repeter
       imprimer corps
       tester la hauteur imprimee
       si place dispo > (ligne de corps suivante  = pied)
          continuer
       sinon
          imprimer pied de page
          imprimer nouvel entete en changeant la hauteur entete
       fin de si
    jusque dernier ligne de corps imprimee
    imprimer dernier pied de page
    Ca demande plus de boulot, mais permet de faire des choses bien plus fines.

    Thibaud

  5. #5
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    J'ai peut-être mal décrit ma question. Le problème reste bien le premier cas.

    Je viens de tester avec Page Impression et ça ne marche pas encore. Mais je vais encore essayer.

    Merci beaucoup.

  6. #6
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 94
    Points : 114
    Points
    114
    Par défaut
    Citation Envoyé par snw4d
    J'ai peut-être mal décrit ma question. Le problème reste bien le premier cas.

    Je viens de tester avec Page Impression et ça ne marche pas encore. Mais je vais encore essayer.

    Merci beaucoup.
    Gaffe au fait que dans mon exemple, je parle bien des noms d'objet, pas des noms de variables ou de champs. Par exemple, si vous mettez un libellé dans la variable vEntete (genre vEntete:="Super impression géniale"), vous pouvez écrire :

    CHOIX VISIBLE(vEntete;Page impression=1)

    L'écriture avec * en premier permet de travailler ave les noms d'objets. En utilisant le joket "@" dans ces noms, on peut appliquer la commande à plusieurs objets.

    Enfin, les trucs auquels il faut bien faire attention : l'événement "sur entete" est bien coché dans votre formulaire ? Pour le formulaire (aucun objet sélecitonné) ? Le code de la méthode formulaire existe ? Il traite bien "sur entete" ? L'impression se fait bien via IMPRIMER SELECTION ou IMPRIMER ENREGISTREMENT (et pas Imprimer ligne, qui n'appelle que "sur impression corps", pas "sur entete") ?

    Thibaud

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 103
    Points : 67
    Points
    67
    Par défaut
    bonsoir

    est-il possible une foit qu'on a définit l'impression d'en faire un document pdf unique ?

    j'ai fait qq tests et quand on crée un saut de ligne 4D génère un doc pdf différent.

    Merci pour votre réponse
    Turtle

  8. #8
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 94
    Points : 114
    Points
    114
    Par défaut
    [c'est plus tellement en rapport avec la question de départ]

    Voir SAUT DE PAGE, et son paramètre optionnel ">". En gros, il faut appeler SAUT DE PAGE(>), et terminer sur SAUT DE PAGE sans paramètre.

    Thibaud

  9. #9
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    En fait, j'ai testé avec la première solution et que ça a très bien marché. Mais là je me suis rendue compte que mon problème doit être le deuxième cas dont vous avez parlé puisque le contenu du pieds de page reste tout en bas de la page, en haut de la page est vide . Il faut que j'essaye la deuxième solution qui m'a l'air difficile. (Je suis une débutante en 4D) .

    Merci.

    SNW

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 103
    Points : 67
    Points
    67
    Par défaut
    Citation Envoyé par ThibArg
    [c'est plus tellement en rapport avec la question de départ]

    Voir SAUT DE PAGE, et son paramètre optionnel ">". En gros, il faut appeler SAUT DE PAGE(>), et terminer sur SAUT DE PAGE sans paramètre.

    Thibaud
    Merci pour votre réponse !

    il y a un rapport puisque j'ai le même besoin que snw4d sauf que dans mon cas la sortie se fait sur PDF au lieu d'une imprimante

    Je vais donc tester moi aussi la seconde solution :p

  11. #11
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par Turtle_fr
    Merci pour votre réponse !

    il y a un rapport puisque j'ai le même besoin que snw4d sauf que dans mon cas la sortie se fait sur PDF au lieu d'une imprimante

    Je vais donc tester moi aussi la seconde solution :p
    Je suis complètement perdue avec 2ème solution. Avez-vous réussi à faire marcher? Je me trouve trop débutante pour ça. J'aurais besoin un peu plus de code détaillées.

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 103
    Points : 67
    Points
    67
    Par défaut
    Citation Envoyé par snw4d
    Je suis complètement perdue avec 2ème solution. Avez-vous réussi à faire marcher? Je me trouve trop débutante pour ça. J'aurais besoin un peu plus de code détaillées.
    voici ce que j'ai fait pour le moment et qui a le mérite de fonctionner avec des impressions papier :
    - je crée un formulaire pour l'entête, un ou plusieurs formulaires pour le corps (en fonction des besoins d'affichage, ex : ligne d'une facture, sous-total, total) et un formulaire pour le pied de page.
    - je fais un "imprimer ligne" de mon formulaire d'entête de la page si nécessaire puis je boucle sur des "imprimer ligne" pour le corps de la page en sélectionnant à chaque fois le formulaire adéquate. Pour terminer je fais un "imprimer ligne" de mon formulaire de pied de page.
    - je termine par un "saut de page" pour que l'impression soit validée.

    l'avantage de cette méthode est que je maîtrise la hauteur de chaque formulaire et donc je sais combien je peux en mettre par page.
    ensuite ce n'est qu'une question de boucles à bien calibrer pour la gestion des formulaires à appeler.

  13. #13
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par Turtle_fr
    voici ce que j'ai fait pour le moment et qui a le mérite de fonctionner avec des impressions papier :
    - je crée un formulaire pour l'entête, un ou plusieurs formulaires pour le corps (en fonction des besoins d'affichage, ex : ligne d'une facture, sous-total, total) et un formulaire pour le pied de page.
    - je fais un "imprimer ligne" de mon formulaire d'entête de la page si nécessaire puis je boucle sur des "imprimer ligne" pour le corps de la page en sélectionnant à chaque fois le formulaire adéquate. Pour terminer je fais un "imprimer ligne" de mon formulaire de pied de page.
    - je termine par un "saut de page" pour que l'impression soit validée.

    l'avantage de cette méthode est que je maîtrise la hauteur de chaque formulaire et donc je sais combien je peux en mettre par page.
    ensuite ce n'est qu'une question de boucles à bien calibrer pour la gestion des formulaires à appeler.
    Dans ce cas, on aura plusieures formulaires? Car pour le moment, je n'ai qu'un formulaire qui contient une entête, un corps, 2 ruptures et un pied de page.

    ...........Je suis déprimée avec ça.

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 103
    Points : 67
    Points
    67
    Par défaut
    les 2 techniques sont valables, perso je préfère la seconde pour l'aspect pratique et surtout quand j'interviens pour les modifs c plus facilement gérable.


  15. #15
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Le problème n'est toujours pas résolu

    Est-ce nomral qu'il n'y a qu'une ligne de contenu du corps quand je fais
    Imprimer ligne([ImprComGestion];"test";Corps formulaire ).

    Avez-vous rencontré le même problème?

    SNW

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 103
    Points : 67
    Points
    67
    Par défaut
    Tout dépend de ce que contient votre formulaire et où sont fixés les taquets...

    pouvez-vous faire une copie d'écran avec l'affichage des libellés des taquets
    et copier la partie du code où vous gérez votre impression ?

  17. #17
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par Turtle_fr
    Tout dépend de ce que contient votre formulaire et où sont fixés les taquets...

    pouvez-vous faire une copie d'écran avec l'affichage des libellés des taquets
    et copier la partie du code où vous gérez votre impression ?
    Voici le formulaire à imprimer en attachement. Pour le code, c'est encore de petits essaies tout simple. J'ai testé la commande Imprimer ligne avec Entête formualire, Rupture formulaire et Pied de page formulaire, au moins il y avait le bon contenu qui sort. Par contre avec le corps, il n'y a qu'une ligne de sélection qui était imprimée.

    Imprimer ligne([ImprComGestion];"test";Entête formulaire )

    Tant que (Non(Fin de selection([ImprComGestion])))
    Imprimer ligne([ImprComGestion];"test2";Corps formulaire )
    ENREGISTREMENT SUIVANT([ImprComGestion])
    Fin tant que

    Imprimer ligne([ImprComGestion];"test";Rupture formulaire0 )
    Imprimer ligne([ImprComGestion];"test";Pied de page formulaire )

    Je vous remercie baucoup de prendre du temps pour m'aider.

    SNW
    Images attachées Images attachées  

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 103
    Points : 67
    Points
    67
    Par défaut
    En fait (pour ma part) comme je vous l'ai dit, je fais plusieurs formulaires pour qu'au final ils composent l'impression que je souhaite.
    CAD dans votre cas :
    - un premier formulaire pour la partie fixe de l'entête (tout ce qui est affiché avant la partie sur laquelle vous allez boucler)
    - un second formulaire ne contenant que la partie de votre tableau sur lequel vous effectuez la boucle
    - un troisième formulaire pour la partie à afficher en pide de page.

    Le contenu de vos formulaires doit se trouver dans le corps.

    Bonne chance

  19. #19
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Tout d'abord je vous remercie.

    Ensuite je m'excuse d'être chiante pour ce problème, puisque je suis vraiment trop débutante :-(

    Si je fais comme vous avez dit, il n'y aura pas 3 feuilles qui vont sortir pour une lettre (donc une feuille pour l'entête, une pour le corps et la dernière pour les pieds de page) puisque je dois faire 3 fois la même commande Imprimer ligne, mais avec des formulaires différents comme paramètre? La lettre sera pas correcte, non?

    SNW

    Citation Envoyé par Turtle_fr
    En fait (pour ma part) comme je vous l'ai dit, je fais plusieurs formulaires pour qu'au final ils composent l'impression que je souhaite.
    CAD dans votre cas :
    - un premier formulaire pour la partie fixe de l'entête (tout ce qui est affiché avant la partie sur laquelle vous allez boucler)
    - un second formulaire ne contenant que la partie de votre tableau sur lequel vous effectuez la boucle
    - un troisième formulaire pour la partie à afficher en pide de page.

    Le contenu de vos formulaires doit se trouver dans le corps.

    Bonne chance

  20. #20
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    En plus, j'ai essayé de faire un formulaire seulement pour le corps, mais j'obtiens toujours la première sélection des enregistrements :-(

    Enfin, il faut que je progresse encore un peu pour 4D.

    SNW

    Citation Envoyé par snw4d
    Tout d'abord je vous remercie.

    Ensuite je m'excuse d'être chiante pour ce problème, puisque je suis vraiment trop débutante :-(

    Si je fais comme vous avez dit, il n'y aura pas 3 feuilles qui vont sortir pour une lettre (donc une feuille pour l'entête, une pour le corps et la dernière pour les pieds de page) puisque je dois faire 3 fois la même commande Imprimer ligne, mais avec des formulaires différents comme paramètre? La lettre sera pas correcte, non?

    SNW

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. problème d'impression
    Par davedenice dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 28/07/2005, 16h57
  2. [PowerBuilder] Problème d'impression datawindow composite
    Par jpdar dans le forum Powerbuilder
    Réponses: 2
    Dernier message: 17/05/2005, 13h33
  3. Réponses: 16
    Dernier message: 17/03/2005, 13h54
  4. [Rave] problème d'impression
    Par romstarr dans le forum Rave
    Réponses: 2
    Dernier message: 09/06/2004, 15h48
  5. Problème d'impression
    Par IngBen dans le forum C++Builder
    Réponses: 7
    Dernier message: 22/05/2002, 11h37

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