PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → W24 - Impression d'une liste de factures avec nombre de page total par facture
W24 - Impression d'une liste de factures avec nombre de page total par facture
Iniciado por Gurdarr, 02,ene. 2020 14:16 - 2 respuestas
Miembro registrado
237 mensajes
Publicado el 02,enero 2020 - 14:16
Bonjour,

Je souhaite imprimé une liste de N factures dans le même aperçue et il faut absolument que le nombre de page total de la facture soit présent.

Mon objectif c'est d'imprimer dans le même aperçu plusieurs factures de 3 à 4 page dans le même aperçu puis la même impression

j'ai essayé l'enchainement d'état mais le nombre total de page en automatique c'est pas le nombre de page de l'état c'est le nombre de page des tous les états à la suite.

Imprimer deux fois les factures c'est trop long et c'est complétement con.

j'ai plus trop d'idée à part imprimer sous forme de PDF chaque facture puis les fusionner en un seul PDF et l'afficher. Je l'ai déjà fait car en temps de traitement c'est plus rapide mais ça demande pas mal de changement.

Merci et Bonne années.
Miembro registrado
237 mensajes
Publicado el 02,enero 2020 - 16:13
Bonjour,

je me répond à moi même cela pourra servir au autres
C'est pas relier dans la doc

Pour gérer les pages début et total quand on veut imbriquer différents états dans une même impression en utilisant le champ prérempli.

iEnchaînementAjoute(NomEtatExt,sZoneEnchainement) //ajout en mémoire d'un état à imbriquer
iRAZNbPages() //Initialise le nombre de page total
iNumPage(1) //Initialise la page en cours

Recommencer l'impression avec iEnchaînementAjoute pour chacun de vos états

et a la fin pour imprimer
iEnchaînementImprime()


Note à propos de iEnchaînementAjoute, n'utiliser pas les même variables j'ai eu des surprises ^^
Miembro registrado
237 mensajes
Publicado el 02,enero 2020 - 18:46
Je rajoute une autre information dans le cas d'une imprimante en option recto verso, pour ne pas imprimer sur le verso une autre facture il faut pouvoir ajouté une page blanche pour séparer les deux documents.

//Pour savoir si l'impression est rectoverso
Procedure Get_ImpressionRectoVerso():booléen

bEstRectoVerso est un booléen

SELON iParamètre(iRectoVerso)
CAS iRectoVerso_Horizontal,iRectoVerso_Vertical
bEstRectoVerso = Vrai
AUTRE CAS
bEstRectoVerso = Faux
FIN

RENVOYER bEstRectoVerso


Ensuite isautepage ne fonctionne pas vraiment avec iEnchaînementAjoute donc j'ai créé un etat vierge que j'imprime au besoin
iNumPage(1) //bien penser à initialiser le nombre de page à 1
iEnchaînementAjoute(NomEtatExt,sZoneEnchainement)
SI bRectoversoActiver ALORS
SI EstPair(iNumPage()) = Faux ALORS //Attention au moment du test on est déjà sur la page suivante
iRAZNbPages()
iNumPage(1)
iEnchaînementAjoute(Etat_PageBlanche)
iRAZNbPages()
FIN
SINON
iRAZNbPages()
FIN


Dernière chose très importante pour le nombre de page total, il faut absolument mettre un champ prédéfini dans "Etat_PageBlanche" sinon ben cela calcule la page planche dans le total idem si on le rend invisible, il faut mettre le champ hors impression sur l'état et tous roule comme sur des roulettes.


Je met en résolu