Requêtes shape avec mshflexgrid

0/5 (5 avis)

Vue 8 662 fois - Téléchargée 1 795 fois

Description

Bonjour,

Cette source propose de montrer l'aspect hierarchique du contrôle MSHFLEXGRID. D'après son nom, je me doutais bien qu'on pouvait afficher des données de manière hierarchique sans vraiment savoir comment. Et pour une fois VBFrance ne me l'a pas appris (à moins que j'ai mal cherché ...).

La solution est d'utiliser un RecordSet Hierarchique obtenu via ADO par l'exécution d'un requête SHAPE.

Cette requête a pour syntaxe :

SHAPE {parent-statement}
APPEND Aggregate
| ({child-statement} [As Alias]
RELATE parent-field TO child-field | parameter-marker
[, parent-field TO child-field | parameter-marker ...])
[, Aggregate | ({child statement})...]

SHAPE {non-normalized-statement} [AS Alias]
COMPUTE Aggregate
| Alias
| ({child-statement} [As Alias] RELATE parent-field TO
child-field | parameter-marker)
[, Aggregate | Alias | ({child-statement}...)]
[BY grouping-field [, grouping-field]]

SHAPE {non-normalized-statement} [AS Alias]
BY grouping-field [, grouping-field]

Pour l'exemple, j'ai choisi de lister les différents niveaux d'une région en France. Etant limité pour le ZIP, je n'en ai gardé qu'une (PACA)

Nous allons avoir comme hierarchie :
Région
---Départements
-----Arrondissements
---------Cantons
------------Communes

Pour chaque commune, nous avons le nombre d'habitants. Nous allons utiliser les fonctions d'agrégation de ADO SHAPE pour avoir le nombre d'habitant à chaque niveau.

Conclusion :


Cette source n'a pas la prétention de couvrir l'ensemble des nombreuses et assez compliquées fonctions de ADO SHAPE. Je vous suggère l'article MSDN pour appronfondir : http://support.microsoft.com/kb/189657/fr (manifique traduction automatique ^^)

N'hésitez pas à commenter et enrichir cette brève présentation de ADO SHAPE.

++
Moustachu

Codes Sources

A voir également

Ajouter un commentaire Commentaires
waluigii
Messages postés
35
Date d'inscription
vendredi 18 mai 2007
Statut
Membre
Dernière intervention
5 janvier 2008

18 mai 2007 à 15:11
Merci moustachu, j'ai une idée maintenant.


@+ Bon progrès
cs_moustachu
Messages postés
1079
Date d'inscription
jeudi 14 novembre 2002
Statut
Membre
Dernière intervention
1 janvier 2012

18 mai 2007 à 08:35
waluigii>Le but du code est d'utiliser l'aspect hierarchique du controle MSHFLEXGRID. Pour cela, on a besoin d'un recordset hierarchique qui se construit, ici, a l'aide des commandes ADO SHAPE. Comme exemple de hierarchie j'ai choisi les différents niveau d'une région française.

++
Moustachu
waluigii
Messages postés
35
Date d'inscription
vendredi 18 mai 2007
Statut
Membre
Dernière intervention
5 janvier 2008

18 mai 2007 à 01:55
Salut,

Je sais pas si ta phrase est mal construite ou pas mais j'ai du mal à comprendre le but de ton programme. Du à cet effet, point de vu du code je ne peux pas mettre de commentaire à ce momemnt. À la prochaine Le Moustachu!

@+
cs_moustachu
Messages postés
1079
Date d'inscription
jeudi 14 novembre 2002
Statut
Membre
Dernière intervention
1 janvier 2012

14 mai 2007 à 16:00
Bonjour,

Tu as effectivement différentes manière d'afficher. La source était l'occasion de présenter les requêtes Shape et l'aspect hierarchique du MsHFlexGrid.

Si j'ai pris cette région, c'est p'tet que c'est la mienne aussi ^^

Merci pour ton commentaire.

++
Moustachu
tbbuim1
Messages postés
940
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
3 février 2011
9
14 mai 2007 à 08:58
Pas mal le moustachu, sympa d'avoir pensé à nous. M'enfin, pour faire de la hiérarchie je préfère nettement les treeview, pas besoin de Shape et c'est quand même plus joli. Là c'est un peu moche (faut l'avouer :p), l'avantage cela dit c'est qu'on peut faire apparaitre plusieurs lignes d'un coup dans une branche par Word wrap = true, en plus tu as choisi ma région ^^
De plus, il me semble qu'on peut faire ça sans Shape, j'avais déjà vu un exemple ya longtemps sur un autre site de développeurs VB...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.