OVH Cloud OVH Cloud

ListView [encore]

9 réponses
Avatar
Laurent Merlet
Salut à tous,

Toujours avec mes listview....

Une des colonnes de ma liste est remplie avec des valeurs décimales. Lorsque
je classe cette colonne en cliquant sur son en-tête, il me fait un
classement comme si ce n'était pas des valeurs numériques, dans le genre

1
10
1000
2
200
2000
3
...

Comment indiquer à la liste que cette colonne (donc ce Subitem) est bien une
valeur numérique ?

Merciiiii

Laurent

9 réponses

Avatar
Raymond [mvp]
Bonjour.

c'est lorsque tu charges tes valeurs qu'il faut les convertir en numérique.
si par exemple tu as:
While Not Rs.EOF
Set LaLigne = LaListe.ListItems.Add()
LaLigne.SubItems(1) = Ccur(Nz(Rs!Montant, 0)) <====== dans ce cas tu seras en numérique avec un tri numérique.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Laurent Merlet" a écrit dans le message de
news:c9k4l9$kb3$
Salut à tous,

Toujours avec mes listview....

Une des colonnes de ma liste est remplie avec des valeurs décimales.
Lorsque

je classe cette colonne en cliquant sur son en-tête, il me fait un
classement comme si ce n'était pas des valeurs numériques, dans le genre

1
10
1000
2
200
2000
3
...

Comment indiquer à la liste que cette colonne (donc ce Subitem) est bien
une

valeur numérique ?

Merciiiii

Laurent




Avatar
Laurent Merlet
Salut Raymond,

Merci pour ta réponse, néanmoins ça ne fonctionne pas. J'avais pensé à faire
ça en faisant CDbl(rs![Champ]), mais comme ça ne fonctionnait pas, j'avais
laissé tomber....
As tu une idée de la raison pour laquelle ça ne fonctionne pas ?

Merci à toi :)

Laurent

"Raymond [mvp]" a écrit dans le message de
news: #
Bonjour.

c'est lorsque tu charges tes valeurs qu'il faut les convertir en
numérique.

si par exemple tu as:
While Not Rs.EOF
Set LaLigne = LaListe.ListItems.Add()
LaLigne.SubItems(1) = Ccur(Nz(Rs!Montant, 0)) <====== > dans ce cas tu seras en numérique avec un tri numérique.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Laurent Merlet" a écrit dans le message de
news:c9k4l9$kb3$
Salut à tous,

Toujours avec mes listview....

Une des colonnes de ma liste est remplie avec des valeurs décimales.
Lorsque

je classe cette colonne en cliquant sur son en-tête, il me fait un
classement comme si ce n'était pas des valeurs numériques, dans le genre

1
10
1000
2
200
2000
3
...

Comment indiquer à la liste que cette colonne (donc ce Subitem) est bien
une

valeur numérique ?

Merciiiii

Laurent








Avatar
Raymond [mvp]
Parce qu'il ne sait pas gérer le cadrage à droite cet imbécile, ce n'est pas
le numérique qui ne fonctionne pas, c'est le cadrage.
la solution, plus moche tu meurs, faire un format du champ ( avec que des
zéros) pour tout cadrer à droite, ça marche.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Laurent Merlet" a écrit dans le message de
news:c9k7f2$9gn$
Salut Raymond,

Merci pour ta réponse, néanmoins ça ne fonctionne pas. J'avais pensé à
faire

ça en faisant CDbl(rs![Champ]), mais comme ça ne fonctionnait pas, j'avais
laissé tomber....
As tu une idée de la raison pour laquelle ça ne fonctionne pas ?

Merci à toi :)

Laurent


Avatar
Laurent Merlet
Ok, mais à quel endroit je fais ce format de champ ?

"Raymond [mvp]" a écrit dans le message de
news: #
Parce qu'il ne sait pas gérer le cadrage à droite cet imbécile, ce n'est
pas

le numérique qui ne fonctionne pas, c'est le cadrage.
la solution, plus moche tu meurs, faire un format du champ ( avec que des
zéros) pour tout cadrer à droite, ça marche.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Laurent Merlet" a écrit dans le message de
news:c9k7f2$9gn$
Salut Raymond,

Merci pour ta réponse, néanmoins ça ne fonctionne pas. J'avais pensé à
faire

ça en faisant CDbl(rs![Champ]), mais comme ça ne fonctionnait pas,
j'avais


laissé tomber....
As tu une idée de la raison pour laquelle ça ne fonctionne pas ?

Merci à toi :)

Laurent






Avatar
Laurent Merlet
Exemple, comme ça ?

Line.SubItems(1) = Format(rs![Produits], "0000000000.00")



"Laurent Merlet" a écrit dans le message de
news: c9k94g$gl0$
Ok, mais à quel endroit je fais ce format de champ ?

"Raymond [mvp]" a écrit dans le message de
news: #
Parce qu'il ne sait pas gérer le cadrage à droite cet imbécile, ce n'est
pas

le numérique qui ne fonctionne pas, c'est le cadrage.
la solution, plus moche tu meurs, faire un format du champ ( avec que
des


zéros) pour tout cadrer à droite, ça marche.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Laurent Merlet" a écrit dans le message de
news:c9k7f2$9gn$
Salut Raymond,

Merci pour ta réponse, néanmoins ça ne fonctionne pas. J'avais pensé à
faire

ça en faisant CDbl(rs![Champ]), mais comme ça ne fonctionnait pas,
j'avais


laissé tomber....
As tu une idée de la raison pour laquelle ça ne fonctionne pas ?

Merci à toi :)

Laurent










Avatar
Laurent Merlet
Exact, ça fonctionne....en effet, la ListView est un peu stupide .... existe
t il une version améliorée de cette ListView qui gère ce problème ?

Merci Raymond !

Laurent

"Laurent Merlet" a écrit dans le message de
news: c9k987$gs0$
Exemple, comme ça ?

Line.SubItems(1) = Format(rs![Produits], "0000000000.00")



"Laurent Merlet" a écrit dans le message de
news: c9k94g$gl0$
Ok, mais à quel endroit je fais ce format de champ ?

"Raymond [mvp]" a écrit dans le message de
news: #
Parce qu'il ne sait pas gérer le cadrage à droite cet imbécile, ce
n'est



pas
le numérique qui ne fonctionne pas, c'est le cadrage.
la solution, plus moche tu meurs, faire un format du champ ( avec que
des


zéros) pour tout cadrer à droite, ça marche.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Laurent Merlet" a écrit dans le message
de



news:c9k7f2$9gn$
Salut Raymond,

Merci pour ta réponse, néanmoins ça ne fonctionne pas. J'avais pensé
à




faire
ça en faisant CDbl(rs![Champ]), mais comme ça ne fonctionnait pas,
j'avais


laissé tomber....
As tu une idée de la raison pour laquelle ça ne fonctionne pas ?

Merci à toi :)

Laurent















Avatar
Raymond [mvp]
je reviens, excuses pour mon absence.
je te l'avais dis, pas beau pas beau. je ne connais pas d'autre version qui
gère ce problème (pour toi) mais qui n'est pas un problème pour access.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Laurent Merlet" a écrit dans le message de
news:c9k9cl$hlp$
Exact, ça fonctionne....en effet, la ListView est un peu stupide ....
existe

t il une version améliorée de cette ListView qui gère ce problème ?

Merci Raymond !

Laurent


Avatar
assedo
Voici la solution que j'utilise ce n'est pas une merveille mais cela fonctionne au poil pas d'api pas de trucs :
(bon, les listview trient en fait comme au US, dates, nombres et toutiquanti.)

Je transmet une requête avec un "order by" par défaut, puis
lorsque que je détecte la demande de trie sur la colonne cliquée
(j'ai préalablement positionné tous les ordres de tri dans l'initialisation du listview)
je reloade le listview en fontion d'un "order by" de la colonne.

bon si ce n'est pas clair car ceci est ma première contribution à un groupe de news je fait parvenir le code.
A+


Salut à tous,

Toujours avec mes listview....

Une des colonnes de ma liste est remplie avec des valeurs décimales. Lorsque
je classe cette colonne en cliquant sur son en-tête, il me fait un
classement comme si ce n'était pas des valeurs numériques, dans le genre

1
10
1000
2
200
2000
3
....

Comment indiquer à la liste que cette colonne (donc ce Subitem) est bien une
valeur numérique ?

Merciiiii

Laurent





Avatar
Laurent Merlet
Oui, c'est une solution en effet....si ce n'est que ça met à chaque fois à
contribution le système puisqu'il doit tout reloader....

Merci


Laurent

"assedo" a écrit dans le message de
news:
Voici la solution que j'utilise ce n'est pas une merveille mais cela
fonctionne au poil pas d'api pas de trucs :

(bon, les listview trient en fait comme au US, dates, nombres et
toutiquanti.)


Je transmet une requête avec un "order by" par défaut, puis
lorsque que je détecte la demande de trie sur la colonne cliquée
(j'ai préalablement positionné tous les ordres de tri dans
l'initialisation du listview)

je reloade le listview en fontion d'un "order by" de la colonne.

bon si ce n'est pas clair car ceci est ma première contribution à un
groupe de news je fait parvenir le code.

A+


Salut à tous,

Toujours avec mes listview....

Une des colonnes de ma liste est remplie avec des valeurs décimales.
Lorsque


je classe cette colonne en cliquant sur son en-tête, il me fait un
classement comme si ce n'était pas des valeurs numériques, dans le genre

1
10
1000
2
200
2000
3
....

Comment indiquer à la liste que cette colonne (donc ce Subitem) est bien
une


valeur numérique ?

Merciiiii

Laurent