PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Ne pas imprimer la seconde page d'un ETAT
Ne pas imprimer la seconde page d'un ETAT
Débuté par EVonZ, 28 fév. 2024 16:48 - 9 réponses
Membre enregistré
26 messages
Posté le 28 février 2024 - 16:48
Bonjour,

J'ai un ETAT qui fait deux pages.
En fonction d'un paramètre, la seconde page est vide et ne doit pas etre créée. Pdf, donc avec un seule page.
Seulement à l'impression, le pdf est créé avec cette seconde page et son pied de page.

Existe-t-il une solution?

A noter que le corps fait les deux pages en longueur.

Peut-on arrêter la création à la première page?

Merci.
Membre enregistré
546 messages
Posté le 28 février 2024 - 23:50
Bonjour,
vous précisez "A noter que le corps fait les deux pages en longueur".
Pouvez-vous nous donner des explications concernant cette information.
Classiquement, en mode édition (conception), le corps occupe une petite partie de la page et s'allonge en fonction des données jusqu'à occuper la totalité de la page en soustrayant la place pour le pied de page, etc...
Si le corps de votre état occupe 2 pages à la conception, sur quel critère pourriez-vous le tronquer ?
Eventuellement, une capture d'écran pourrait nous éclairer.
Cdlt
Membre enregistré
26 messages
Posté le 29 février 2024 - 15:10
En fait j'ai deux pages dans l'etat, avce pied de page.
J'empile à la suite des champs, dans le corps.
Mais avec certaine condition les champs de la page 2 sont invisibles.
Mais à l'impression, la page deux s'imprime avec juste le pied de page
Membre enregistré
24 messages
Popularité : +1 (1 vote)
Posté le 05 mars 2024 - 09:58
Bonjour,

Crée deux états :

1- Etat_AvecUnSeulePage.
2- Etat_AvecDeuxPages

// Est selon votre paramètre :
SI Val_Param = 1 ALORS
// Impression de l'état avec deux pages
iParamètreAperçu(iBoutonImprimante+iBoutonPdf+iBoutonRecherche)
iAperçu()
iImprimeEtat("Etat_AvecDeuxPages")
SINON
// Impression de l'état avec un seule page
iParamètreAperçu(iBoutonImprimante+iBoutonPdf+iBoutonRecherche)
iAperçu()
iImprimeEtat("Etat_AvecUnSeulePage")
FIN


Cordialement.
Mohamed RAHIMI
Message modifié, 05 mars 2024 - 10:04
Membre enregistré
1 299 messages
Popularité : +20 (72 votes)
Posté le 11 mars 2024 - 05:48
Bonjour

pas besoin de deux états, c'est contre tous les principes de programmations.

un état est suffisant , mais structuré correctement.

tu ajoutes a ton état un 'bloc sécable' , c'est adire que tu déclenche a la demande.
Tu y déplaces les rubriques facultatives.
en fin d'impression de ton corps, st active ou non l'impression de ton bloc sécable

parfois faire l'auto formation n'est pas si inutile que cela

--
Bertin CARRIERE
SRL RGPD.Zen-Project.be
support@zen-project.be
www.zen-project.be www.linkedin.com/in/bertincarriere

+32(0)498/10.18.58
Co-President de l'asbl Be-Dev Association des développeurs Windev de Belgique
www.be-dev.be
Membre enregistré
26 messages
Posté le 17 avril 2024 - 17:18
Merci pour la réponse...je reviens un peu tard! :-)

Je galère sur les états...

Je viens de créer un état avec En-tête, Corps et Pied de page...il s'imprime sur deux pages (deux fois la même), alors qu'il ne fait qu'un page.
Dans le code de l'Etat, j'ai ça:
HLitRecherchePremier(TABLEA, IDA, gnIDA)
SI HTrouve((TABLEA) = Vrai ALORS
SI nCpt = 0 ALORS
LIB_IDA = gnIDA
LIB_IdentRTI = gsNomPDF
nCpt = 1
FIN
SI nCpt > 0 ALORS
iFinEtat()
FIN
FIN


Lorsque je débugue, je passe deux fois par le code, et deux page identique sont créées dans le PDF.

Si je réduis la taille du Corps, on imprime bien sur une seule page, mais répère les deux champ deux fois dans le corps....

Bref...quelque chose m'échappe...Merci
Membre enregistré
187 messages
Posté le 17 avril 2024 - 19:01
Bonjour,

et en codant comme ça, ça imprime toujours deux pages ?

SI nCpt > 0 ALORS
iFinEtat()
SINON

HLitRecherchePremier(TABLEA, IDA, gnIDA)
SI HTrouve((TABLEA) = Vrai ALORS
SI nCpt = 0 ALORS
LIB_IDA = gnIDA
LIB_IdentRTI = gsNomPDF
nCpt = 1
FIN
FIN

FIN
Membre enregistré
26 messages
Posté le 18 avril 2024 - 09:18
Bonjour,

J'y avais pensé, mais non...toujours sur deux pages.

J'appelle l'Etat de cette façon:

SI PAS HExécuteRequêteSQL(sdReqRTI,hRequêteDéfaut,sSqlRTI) ALORS
Erreur(HErreurInfo())
SINON
POUR TOUT sdReqRTI
iDestination(iPDFGénérique, ComplèteRep(sRepEtat) + sNomPDF + ".pdf")
iImprimeEtat(ETAT_CMSRTI,sdReqRTI.IDA, "CM", sNomPDF)
FIN
FIN
HAnnuleDéclaration(sdReqRTI)
Message modifié, 18 avril 2024 - 09:25
Membre enregistré
26 messages
Posté le 18 avril 2024 - 10:46
En fait Windev réimprime une deuxième page après iFinEtat()...

Si je créé un Etat, ETAT_TEST_CMSRTI avec le corps vide, l'impression se fait bien sur une seule page.

Si dans ce même ETAT_TEST_CMSRTI, j'augmente de façon significative le CORPs, il m'imprime 3 pages...

C'est donc la longueur du corps qui me poserait problème, mais à la visualisation tout me semble normal
Membre enregistré
26 messages
Posté le 18 avril 2024 - 15:34
Bon, résolu en modifiant les paramètres de l'état...<pas de source de données> + suppression des début et fin de document + Imprimer l'état quel

Merci de l'aide