Forcer un saut de page

Résolu
DAVIMIKA Messages postés 118 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 10 janvier 2014 - 27 sept. 2008 à 12:32
DAVIMIKA Messages postés 118 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 10 janvier 2014 - 7 oct. 2008 à 10:29
Bonjour,



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
 




Je voudrais éditer mon état en faisant un saut de page après les lettres



"C", "G", et "M".



 




Sur l’Entête de groupe un saut de page avant section et une zone de texte txtNomAlpha :



 




=Gauche([tbl Adhérents.NomAdhérent];1)



 




Sur <?xml:namespace prefix st1 ns "urn:schemas-microsoft-com:office:smarttags" /??><st1:personname w:st="on" productid="la zone Détail">la zone Détail</st1:personname> au formatage :



Select Case [txtLettreAlpha]






   Case "C"






        Me.Détail.ForceNewPage = 1






   Case "G"





        Me.Détail.ForceNewPage = 1



   Case "M"



        Me.Détail.ForceNewPage = 1




 
 Case Else






        Me.Détail.ForceNewPage = 0






 
End Select



 




Pour "ABC" les enregistrements se suivent bien, mais pour "C" chaque enregistrement


s’édite sur une page.



 




Merci pour votre aide



 




Salutations

4 réponses

DAVIMIKA Messages postés 118 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 10 janvier 2014
7 oct. 2008 à 10:29
Bonjour,

Merci pour vos réponses mon code initial était bon sauf qu'il fallait mettre
Me.PiedGroupe0 à la place de Me.Detail.

Select Case [txtLettreAlpha]<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>

   Case "C"

        Me.PiedGroupe0.ForceNewPage = 2
   Case "G"

        Me.PiedGroupe0.ForceNewPage = 2
   Case "M"

      Me.PiedGroupe0.ForceNewPage = 2
   Case Else

        Me.PiedGroupe0.ForceNewPage = 0

 End Select

Salutations.
3
pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
27 sept. 2008 à 13:20
bonjour
le comportement que tu décris me semble logique puisque à chaque ligne tu viens tester si txtLettreAlpha est C et tant qu'il l'est il fait le saut de page
 il te faut donc créer une variable de controle et c'est selon l'état de cette variable que tu feras ton saut de page
donc par exemple en tout début de programme
public varC as boolean, varG as boolean, varM as boolean
varC = false
varG = false
varM =false
puis dans ta routine
Select Case [txtLettreAlpha]

   Case "C"

        varM= false 'pour remettre tes variables à la bonne valeur pour la seance d'impression suivante

        if varC = false then

               Me.Détail.ForceNewPage = 1

               varC = true

        end if

   Case "G"
        varC= false 'pour remettre tes variables à la bonne valeur pour la seance d'impression suivante

        if varG = false then

               Me.Détail.ForceNewPage = 1

               varG = true

        end if

Case "M"

        varG= false 'pour remettre tes variables à la bonne valeur pour la seance d'impression suivante
        if varM = false then

               Me.Détail.ForceNewPage = 1

               varM = true

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
0
pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
27 sept. 2008 à 13:21
oups !!!!!
ce que je t'ai écrit est valable en VB6 a toi d'adapter à la syntaxe de VB.net

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
0
Profil bloqué
27 sept. 2008 à 13:29
Salut DAVIMIKA
Si j'ai bien compris

Pour les enregistrements "C", "G" et "M" tu désires qu'il y ait un saut de page dans l'édition de ton état
Ce saut de page doit intervenir pour le premier enregistrement "C" ou "G" ou "M" et les enregistrements suivants "C" ou "G" ou "M" ne doivent pas avoir ce saut de page
Il manque dans chacun de tes Select Case
                   if Enregistrement = premier enregistrement then
                           Me.Détail.ForceNewPage = 1
                   else
                           Me.Détail.ForceNewPage = 0
                   end if

On pourrait aussi faire ainsi

-  Me.Détail.ForceNewPage = 0 ( pas de saut de page au début)
do
    -  Tester si c'est le premier enregistrement "C" ou "G" ou "M"
    -  Si Oui ---> Me.Détail.ForceNewPage = 1 (forcer le saut de page pour le 1° enregistrement "C" ou "G" ou "M")
                      Editer ce premier enregistrement "C"
                      Me.Détail.ForceNewPage = 0 (ne plus forcer le saut de page)
       Si Non ---> éditer l'enregistrement
    - fin du Si Oui
Loop

Ce n'est qu'une piste à explorer pour solutionner ton problème

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
0
Rejoignez-nous