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

WinDev Discussion :

Insérer un verso à chaque page imprimée [WD18]


Sujet :

WinDev

  1. #1
    Nouveau membre du Club
    Profil pro
    Chef de projets
    Inscrit en
    Septembre 2010
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Chef de projets

    Informations forums :
    Inscription : Septembre 2010
    Messages : 69
    Points : 35
    Points
    35
    Par défaut Insérer un verso à chaque page imprimée
    Bonjour,

    Un client me demande d'imprimer ses conditions générales de vente au verso de ses factures (sur chaque feuille imprimée), comment faire ?

    Exemple :
    Si mon document contient 2 pages, je souhaite obtenir :
    - page 1, recto : page 1 de mon document
    - page 1, verso : conditions générales de vente
    - page 2, recto : page 2 de mon document
    - page 2, verso : conditions générales de vente

    J'ai la solution si le document ne fait qu'une page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    iParamètre(iRectoVerso,iRectoVerso_Vertical)
    iEnchaînementAjoute(ETAT_Facture)
    iEnchaînementAjoute(ETAT_CGV)
    iEnchaînementImprime()
    En revanche, avec un document de 2 pages, j'obtiens :
    - page 1, recto : page 1 de mon document
    - page 1, verso : page 2 de mon document
    - page 2, recto : conditions générales de vente

    Dans l'idéal, il faudrait également que le numéro de page ne s'incrémente que sur les rectos...

    Merci !

  2. #2
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Une idée : créer un état (facture) avec un état imbriqué (cgv)
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  3. #3
    Nouveau membre du Club
    Profil pro
    Chef de projets
    Inscrit en
    Septembre 2010
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Chef de projets

    Informations forums :
    Inscription : Septembre 2010
    Messages : 69
    Points : 35
    Points
    35
    Par défaut
    Bonjour et merci pour ta réponse.

    ... et je l'ajoute à mon bas de page de l'ETAT_Facture ?

    Je ne comprends pas bien comment je vais forcer cet état imbriqué à apparaître 1 page sur 2 sans que l'entête de ma facture apparaissent également sur le verso... Ma fin de document devrait également être farfelue !

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Bonjour,

    sinon je pense qu'on peut aussi imprimer un document à partir du bloc pied de page dans le code après impression ... En revanche pour la numérotation, je ne sais pas ce que ça va donner ...

    bon courage,

    Nicolas

  5. #5
    Nouveau membre du Club
    Profil pro
    Chef de projets
    Inscrit en
    Septembre 2010
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Chef de projets

    Informations forums :
    Inscription : Septembre 2010
    Messages : 69
    Points : 35
    Points
    35
    Par défaut
    Merci Nicolas.

    Si mon ETAT_Facture se compose ainsi :
    - DEBUT_DOCUMENT
    - HAUT_DE_PAGE
    - CORPS
    - BAS_DE_PAGE (dans lequel j'ajoute ETAT_CGV "après impression")
    - FIN_DE_DOCUMENT

    A l'édition, chaque page aura le HAUT_DE_PAGE de ma facture, même celles des CGV !

    La dernière page contiendra les totaux contenus dans FIN_DE_DOCUMENT alors que je devrais finir avec une page de CGV !

    J'aime po les éditions...

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : Laos

    Informations forums :
    Inscription : Mars 2003
    Messages : 552
    Points : 1 193
    Points
    1 193
    Par défaut
    Bonjour,

    Il suffit de faire un petit algo sur le n° de la page. Grâce aux fonctions EstImpair(), iNumPage()
    Car les CGV seront toujours imprimés sur des pages PAIR

    Soit 2 etat :
    - Facture
    - CGV --> il ne contient rien d'autre que le bloc CORPS, les autres bloc sont supprimés, le corps doit s'étirer jusqu'en bas (option dans le descriptif du bloc)

    Sur l'état Facture :

    Dans le bloc HAUT_DE_PAGE AVANT Impression:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SI EstImpair(iNumPage()) ALORS
    	HAUT_DE_PAGE..Visible = Vrai
    SINON
    	HAUT_DE_PAGE..Visible = Faux
    FIN
    Dans le bloc BAS_DE_PAGE APRES impression :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SI EstImpair(iNumPage()) ALORS
    	iImprimeEtat(CGV)
    FIN
    Cela devrait correspondre à votre besoin.

  7. #7
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Je ne pensais pas aux blocs début/fin de page en te soumettant cette idée.

    Pour la numérotation, tu dois pouvoir gérer les numéros en utilisant les indications que l'on t'a donné ou essayer avec une variable globale incrémentée à chaque impression de haut de page (facture). Et si besoin divisé par 2 et +1...
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  8. #8
    Nouveau membre du Club
    Profil pro
    Chef de projets
    Inscrit en
    Septembre 2010
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Chef de projets

    Informations forums :
    Inscription : Septembre 2010
    Messages : 69
    Points : 35
    Points
    35
    Par défaut
    Merci beaucoup Ry_Yo !

    J'ai encore un problème avec la fin de document, elle s'imprime toute seule sur la dernière page :
    - page 1, recto : facture
    - page 1, verso : CGV
    - page 2, recto : fin de la facture
    - page 2, verso : CGV
    - page 3, recto : fin de document

    Cela a fonctionné une fois et depuis l'aperçu plante !

    Je peaufine et je marquerai le sujet comme résolu un peu plus tard...

  9. #9
    Nouveau membre du Club
    Profil pro
    Chef de projets
    Inscrit en
    Septembre 2010
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Chef de projets

    Informations forums :
    Inscription : Septembre 2010
    Messages : 69
    Points : 35
    Points
    35
    Par défaut
    et merci frenchsting

    Je vais suivre tes indications...

  10. #10
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Une autre idée est d'utiliser les iSubstBloc :
    Tu créés un bloc (BLOC_CGV)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SI EstImpair(iNumPage()) ALORS
    - DEBUT_DOCUMENT, HAUT_DE_PAGE, BAS_DE_PAGE, FIN_DE_DOCUMENT  : visible = vrai
    isubstbloc(BLOCCGV, BLOC_CORPS)
    SINON
    - DEBUT_DOCUMENT, HAUT_DE_PAGE, BAS_DE_PAGE, FIN_DE_DOCUMENT  : visible = Faux
    isubstbloc(BLOC_CORPS, BLOCCGV)
    FIN
    A tester...
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  11. #11
    Nouveau membre du Club
    Profil pro
    Chef de projets
    Inscrit en
    Septembre 2010
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Chef de projets

    Informations forums :
    Inscription : Septembre 2010
    Messages : 69
    Points : 35
    Points
    35
    Par défaut
    Victoire !

    En ce qui concerne la FIN_DE_DOCUMENT, je regarde si elle est sur la même page que le dernier BAS_DE_PAGE :
    - si oui, je ne fais rien
    - sinon, j'ajoute iImprimeEtat(ETAT_CGV) après impression de la FIN_DE_DOCUMENT

    Pour le n° page, j'utilise un compteur incrémenté à chaque DEBUT_DE_DOCUMENT et chaque HAUT_DE_PAGE.

    En revanche, une idée pour le nombre total de pages de l'état ? (Je voudrais afficher "Page XX/YY")

    Pour info, un certain Ry_Yo en 2009 avait posté sa solution sur le site de PcSoft : faire un premier aperçu pour récupérer le nombre de pages et un deuxième qui l'utilise !

    Ne peut-on pas faire mieux ?

  12. #12
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Je ne pense pas.

    En fait, si tu peux connaître à l'avance ton nombre de factures, tu es sauvé.

    Sinon une idée (vite fait) : tu fais une vue genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    MaVue est une source de données
    NbFactures est entier
    hCreeVue(MaVue,Factures,"*","", "<<<Critère de sélection des factures qui doivent être imprimées>>>")
    NbFactures = HnbEnr(Mavue)
    HdetruitVue(Mavue)
    iImprimeEtat(Etat_Facture,NbFacures)
    Kess t'en penses ?
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  13. #13
    Nouveau membre du Club
    Profil pro
    Chef de projets
    Inscrit en
    Septembre 2010
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Chef de projets

    Informations forums :
    Inscription : Septembre 2010
    Messages : 69
    Points : 35
    Points
    35
    Par défaut
    Je ne cherche pas à avoir le nombre de factures à imprimer mais le nombre de pages d'une facture.

    Même si je récupère le nombre de lignes de facture, je ne saurai pas combien en afficher par page (certaines lignes peuvent avoir une longue désignation par exemple).

  14. #14
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : Laos

    Informations forums :
    Inscription : Mars 2003
    Messages : 552
    Points : 1 193
    Points
    1 193
    Par défaut
    Citation Envoyé par Mick16 Voir le message
    Pour info, un certain Ry_Yo en 2009 avait posté sa solution sur le site de PcSoft : faire un premier aperçu pour récupérer le nombre de pages et un deuxième qui l'utilise !

    Ne peut-on pas faire mieux ?
    Héhé, ça ne me rajeuni pas tout ça

    Sinon, entre temps, sur un autre projet, j'ai mis en place une autre solution :
    - Dans un premier temps, j'estime le nombre max de ligne de facture pour 1 page (en partant du principe qu'une désignation ne peut pas dépasser 1 ligne)
    - Je connais la hauteur de ligne
    - Je connais la hauteur de ligne max pour 1 page
    --> je peux déduire le nombre de page...

  15. #15
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Citation Envoyé par Mick16 Voir le message
    Je ne cherche pas à avoir le nombre de factures à imprimer mais le nombre de pages d'une facture.

    Même si je récupère le nombre de lignes de facture, je ne saurai pas combien en afficher par page (certaines lignes peuvent avoir une longue désignation par exemple).
    Dsl, je n'avais pas compris que tu cherchais le nombre de pages par facture. La solution de ry_yo me semble judicieuse...
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  16. #16
    Nouveau membre du Club
    Profil pro
    Chef de projets
    Inscrit en
    Septembre 2010
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Chef de projets

    Informations forums :
    Inscription : Septembre 2010
    Messages : 69
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par frenchsting Voir le message
    Dsl, je n'avais pas compris que tu cherchais le nombre de pages par facture. La solution de ry_yo me semble judicieuse...
    Dommage !
    Je me demande quand même comment WinDev le calcule dans son champ prédéfini...

    Merci à tous, je clôture...

  17. #17
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Citation Envoyé par Mick16 Voir le message
    Je me demande quand même comment WinDev le calcule dans son champ prédéfini...
    Il doit "simuler" une impression (comme dans la solution "aperçu" de ry_yo).
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/05/2015, 17h45
  2. [Imprimante] page blanche apres chaque page imprime
    Par amouna dans le forum Périphériques
    Réponses: 3
    Dernier message: 09/03/2013, 17h22
  3. Insérer des sauts de pages à la fin de chaque page
    Par slachromana dans le forum VBA Word
    Réponses: 1
    Dernier message: 14/12/2012, 11h29
  4. [CR 10] Insérer une page défini a chaque page
    Par Vincinho dans le forum Débuter
    Réponses: 6
    Dernier message: 25/01/2010, 14h43
  5. Réponses: 0
    Dernier message: 06/10/2009, 13h02

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