DAVIMIKA
Messages postés118Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention10 janvier 2014
-
27 sept. 2008 à 12:32
DAVIMIKA
Messages postés118Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention10 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
pile_poil
Messages postés682Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 4 août 20126 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
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.