Bonjour.
Merci pour ces réponses.
Ça serrait vraiment plus simple pour moi de pouvoir rester sur un seul état pour toutes les situations (J'ai un formulaire jumeau qui s'organise de la même manière et pour la maintenance, et l'évolution, ce serrait plus simple)
Par ailleurs, cela me semble (pour l'instant) logique d'opter pour une solution impactant l'état pour un recto/verso plutôt que plusieurs états en fonction des situations.
Alors, de mon côté, j'avais tenté cette modif :
1 2 3 4 5 6 7 8 9 10 11
| Private Sub ZonePiedPage_Format(Cancel As Integer, FormatCount As Integer)
Call MaJoColTable(Me(sChampGroupe), Me.Page)
'Bidouillage_page
'Si le nombre de page est impair
'Merci Guiv
If Right(GetPages([EMRGMNT_CD_ID_M]), 1) Mod 2 <> 0 Then
EntêteGroupe0.ForceNewPage = 2
End If
End Sub |
Qui ne produit aucun effet (avec ou sans ces modif, c'est pareil, pas d'erreur, pas de changement)
J'ai tenté le code proposé par micniv.
1 2 3 4 5 6 7 8 9 10 11 12
| Private Sub PiedGroupe1_Format(Cancel As Integer, FormatCount As Integer)
'Merci Allen Browne
'http://www.allenbrowne.com/ReportDuplex.html
Dim bIsOdd As Boolean
bIsOdd = (Me.Page Mod -2) 'Yields 0 for even, or -1 for odd.
'Hide this Section (and its page break) if already at odd page.
With Me.Section("PiedGroupe1")
If .Visible = bIsOdd Then
.Visible = Not bIsOdd
End If
End With
End Sub |
Il y a deux EntêteGroupe dans l'exemple indiqué et les deux EntêteGroupe comportent des données.
J'ai donc ajouté un EntêteGroupe1 à l'EntêteGroupe0 déjà présent sur mon état.
Mais ni l'un ni l'autre ne comportent de données dans mon cas (Les données et la numérotation des pages ne fonctionnent en même temps que quand je met les données d'entête de page à imprimer dans l'entête de page d'état).
J'ai suivi les paramétrages de lien.
Si j'ai bien compris, la solution présentée, la page supplémentaire est toujours présente.
Le code la masque en cas de nombre de pages déjà pair.
Ça ne produit aucun effet.
Je me demande s'il ne faudrait pas remplacer
bIsOdd = (Me.Page Mod -2) 'Yields 0 for even, or -1 for odd.
par
bIsOdd = (getpages([EMRGMNT_CD_ID_M]) Mod -2) 'Yields 0 for even, or -1 for odd.
J'ai essayé et ça pointe une erreur sur la fonction
1 2 3
| Public Function GetPages(Groupe As String) As Integer
GetPages = oColTable(Groupe)
End Function |
Je suis bien conscient que c'est de la bidouille, mais c'est bien pour cela que je suis venu vous poser la question, vous qui êtes à l'origine de code fonctionnel...
Encore merci.
Partager