OVH Cloud OVH Cloud

Colonnes jusqu'en bas de l'état

4 réponses
Avatar
Pampi
Bonjour =E0 tous,

Sur mon =E9tat "Lignes_Facture" (sous-formulaire de l'=20
=E9tat "Facture"), j'ai mis le code suivant (r=E9cup=E9r=E9 gr=E2ce=20
=E0 ce newsgroup !) qui me permet d'=E9diter des traits=20
verticaux auto-extensibles =E0 gauche des zones =E9dit=E9es de=20
chaque enregistrement (ils font office de s=E9parateurs de=20
colonnes) :

Private Sub D=E9tail1_Print(Cancel As Integer, PrintCount As=20
Integer)
Dim Controle As Control
Dim X1 As Single, Offset As Single
Dim HAUTEUR As Integer
'Hauteur de la ligne trac=E9e =3D hauteur de la section=20
d=E9tail
HAUTEUR =3D Me.Height
=20
'Boucle sur chaque contr=F4le pr=E9sent sur la ligne d=E9tail
For Each Controle In Me.Report.Section(0).Controls
=20
If Controle.IsVisible Then
'D=E9terminer la position horizontale du trait=20
vertical
Offset =3D 1400 / Me.GridX
'X1 =3D Controle.Left - Offset
X1 =3D Controle.Left - 75
'Tracer la colonne devant le contr=F4le actif=20
pour la ligne courante.
Me.Line (X1, 0)-(X1, HAUTEUR)
End If
Next

End Sub


Je voudrais maintenant que ces traits verticaux continuent=20
syst=E9matiquement jusqu'en bas du corps de mon =E9tat quel=20
que soit le nombre d'enregistrements.=20
Est-ce faisable ?=20
Quelqu'un conna=EEt-il le code ?
Est-ce compatible avec le code ci-dessus ?

Je vous remercie par avance de votre aide.


Pampi

4 réponses

Avatar
Jac
Salut Pampi,
si tu intègres un compteur dans ta boucle, tu pourrais savoir combien de lignes ont été générées, donc combien de lignes
il reste à faire pour arriver en bas de la page, donc avec une nouvelle boucle, tu devrais pouvoir matérialiser tes
colonnes jusqu'en bas...
Jac

"Pampi" a écrit dans le message de news: 163c01c4ad43$80d40850$
Bonjour à tous,

Sur mon état "Lignes_Facture" (sous-formulaire de l'
état "Facture"), j'ai mis le code suivant (récupéré grâce
à ce newsgroup !) qui me permet d'éditer des traits
verticaux auto-extensibles à gauche des zones éditées de
chaque enregistrement (ils font office de séparateurs de
colonnes) :

Private Sub Détail1_Print(Cancel As Integer, PrintCount As
Integer)
Dim Controle As Control
Dim X1 As Single, Offset As Single
Dim HAUTEUR As Integer
'Hauteur de la ligne tracée = hauteur de la section
détail
HAUTEUR = Me.Height

'Boucle sur chaque contrôle présent sur la ligne détail
For Each Controle In Me.Report.Section(0).Controls

If Controle.IsVisible Then
'Déterminer la position horizontale du trait
vertical
Offset = 1400 / Me.GridX
'X1 = Controle.Left - Offset
X1 = Controle.Left - 75
'Tracer la colonne devant le contrôle actif
pour la ligne courante.
Me.Line (X1, 0)-(X1, HAUTEUR)
End If
Next

End Sub


Je voudrais maintenant que ces traits verticaux continuent
systématiquement jusqu'en bas du corps de mon état quel
que soit le nombre d'enregistrements.
Est-ce faisable ?
Quelqu'un connaît-il le code ?
Est-ce compatible avec le code ci-dessus ?

Je vous remercie par avance de votre aide.


Pampi
Avatar
Pampi
Salut Jac,

Merci pour ta réponse mais je pense qu'elle ne correspond
pas à mon cas précis.

En effet, je ne gère pas de boucle (car pas de code) pour
éditer mes différentes lignes de facture, c'est ACCESS qui
le fait tout seul come un grand : dans la section Détail
de mon formulaire principal "Facture" il y a mon sous-
formulaire "Lignes factures" avec Champs fils/pères = N°
facture qui s'appuie sur la requête listant les lignes de
la facture.

Autre problème, je ne peux pas me fier au nombre
d'enregistrements d'une page puisque avec ma propriété
extensible à Oui je peux éditer de 1 à n enregistrements
par page.

Voilà, mon problème semble compliqué et une autre piste
m'aiderait vraiment.

J'ai bien regardé la méthode Line de près mais je ne
trouve pas de façon de la contourner pour arriver à mes
fins ...


Merci par avance.


Pampi




-----Message d'origine-----
Salut Pampi,
si tu intègres un compteur dans ta boucle, tu pourrais
savoir combien de lignes ont été générées, donc combien de

lignes
il reste à faire pour arriver en bas de la page, donc
avec une nouvelle boucle, tu devrais pouvoir matérialiser

tes
colonnes jusqu'en bas...
Jac

"Pampi" a écrit
dans le message de news: 163c01c4ad43$80d40850

$
Bonjour à tous,

Sur mon état "Lignes_Facture" (sous-formulaire de l'
état "Facture"), j'ai mis le code suivant (récupéré grâce
à ce newsgroup !) qui me permet d'éditer des traits
verticaux auto-extensibles à gauche des zones éditées de
chaque enregistrement (ils font office de séparateurs de
colonnes) :

Private Sub Détail1_Print(Cancel As Integer, PrintCount As
Integer)
Dim Controle As Control
Dim X1 As Single, Offset As Single
Dim HAUTEUR As Integer
'Hauteur de la ligne tracée = hauteur de la section
détail
HAUTEUR = Me.Height

'Boucle sur chaque contrôle présent sur la ligne
détail

For Each Controle In Me.Report.Section(0).Controls

If Controle.IsVisible Then
'Déterminer la position horizontale du trait
vertical
Offset = 1400 / Me.GridX
'X1 = Controle.Left - Offset
X1 = Controle.Left - 75
'Tracer la colonne devant le contrôle actif
pour la ligne courante.
Me.Line (X1, 0)-(X1, HAUTEUR)
End If
Next

End Sub


Je voudrais maintenant que ces traits verticaux continuent
systématiquement jusqu'en bas du corps de mon état quel
que soit le nombre d'enregistrements.
Est-ce faisable ?
Quelqu'un connaît-il le code ?
Est-ce compatible avec le code ci-dessus ?

Je vous remercie par avance de votre aide.


Pampi


.



Avatar
3stone
Salut,

"Pampi"
Sur mon état "Lignes_Facture" (sous-formulaire de l'
état "Facture"), j'ai mis le code suivant (récupéré grâce
à ce newsgroup !) qui me permet d'éditer des traits
verticaux auto-extensibles à gauche des zones éditées de
chaque enregistrement (ils font office de séparateurs de
colonnes) :
<snip>

Je voudrais maintenant que ces traits verticaux continuent
systématiquement jusqu'en bas du corps de mon état quel
que soit le nombre d'enregistrements.



Dans ce cas, tu n'utilise pas la bonne méthode, puisque les lignes
commenceront toutes à la même hauteur et termineront toujours
en bas de page, c'est ca ?

Regarde ceci pour tracer des lignes sur "toute" la page:
http://mypage.bluewin.ch/w.stucki/Etats.htm#Milieu

Pour créer les colonnes selon les contrôles, il suffit
de faire un "mix" entre les deux procédures.


--
A+
Pierre (3stone) Access MVP
~~~~~~~~~~~~~~~~~~~~~~~
http://users.skynet.be/mpfa
http://users.skynet.be/accesshome
Avatar
Pampi
Salut 3Stone,

Tu as tout compris : je veux effectivement que mes traits
verticaux aillent systématiquement du haut de ma section
détail jusqu'au bas de cette même section détail de mon
état principal.

J'avais déjà essayé d'utiliser les infos issues de
l'adresse
http://mypage.bluewin.ch/w.stucki/Etats.htm#Milieu mais
j'ai beau essayer de manipuler mon "Line", je n'arrive pas
à renseigner correctement y1 et y2 (point de départ haut
et point d'arrivée bas de mon trait).

Un petit coup de pouce supplémentaire ou complémentaire
serait le bienvenu ...

Merci déjà pour le reste.

Pampi




-----Message d'origine-----
Salut,

"Pampi"
Sur mon état "Lignes_Facture" (sous-formulaire de l'
état "Facture"), j'ai mis le code suivant (récupéré grâce
à ce newsgroup !) qui me permet d'éditer des traits
verticaux auto-extensibles à gauche des zones éditées de
chaque enregistrement (ils font office de séparateurs de
colonnes) :
<snip>

Je voudrais maintenant que ces traits verticaux continuent
systématiquement jusqu'en bas du corps de mon état quel
que soit le nombre d'enregistrements.



Dans ce cas, tu n'utilise pas la bonne méthode,
puisque les lignes

commenceront toutes à la même hauteur et termineront
toujours

en bas de page, c'est ca ?

Regarde ceci pour tracer des lignes sur "toute" la page:
http://mypage.bluewin.ch/w.stucki/Etats.htm#Milieu

Pour créer les colonnes selon les contrôles, il suffit
de faire un "mix" entre les deux procédures.


--
A+
Pierre (3stone) Access MVP
~~~~~~~~~~~~~~~~~~~~~~~
http://users.skynet.be/mpfa
http://users.skynet.be/accesshome




.