Procedure d'envoi des paramètres d'un tri sur un datagrid dans une requete

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 034 fois - Téléchargée 19 fois

Contenu du snippet

Après 2 jrs de recherche j'étais obligé de créer ma propre procédure qui me permet d'envoyer une requête vers impression (à l'aide de Crystal report) mais en passant les paramètres de tri effectué par l'utilisateur lui-même

Source / Exemple :


'***********************************
	'*****Développé par kacen ayoub*****     
	'***********plus d'infos************
	'*******ayoub.kacen@gmail.com*******
	'***********************************
	
	
	module procedure
	
	'ont passe comme parametre la requete a executer ainsi que la datagrid sur laquel le tri est effectué
	Public Function tri_iprim(ByVal affiche As DataGridView, ByVal requete As String) As String
	'création de la collection dans la quel ont va stoquer les differents nom de champ de la table dans la base de donnée
	dim collect_name as new collection 

		'retour sql est la requete qui serait retournai apres l'appel de cette fonction 
        Dim retour_sql As String
		
		' juste un compteur pour videz la collection si elle est declarer comme collection public
        Dim num As Integer
		
		
		
        num = collect_name.Count
		'videz la collection
		
        While num > 0
            collect_name.Remove(num)
            num = num - 1
        End While
		
		'fin de vidage
		'initiaisation de la requete retournée
        retour_sql = requete
        Dim dt As DataTable
        dt = tools.chargementdatatable(retour_sql)
       
        Dim jj As Integer
        jj = 0
		
		'remplissage de la collection par les nom des champs récupéré
        While jj < affiche.ColumnCount + 1
            Try
                jj = jj + 1
                collect_name.Add(dt.Columns.Item(jj).ColumnName)
            Catch ex As Exception

            End Try

        End While
		'verification si un tri a été effectué si oui  on procede a la modification de requuete sinon on retourne lla requete elle meme
		
        If affiche.SortOrder <> "0" Then
            Try
                Dim ii As Integer
                Dim val As String = ""
                ii = affiche.SortedColumn.Index
                val = affiche.SortOrder.ToString
'recherche du bon objet de la collection a l'aide de l'index de la colone trie
                retour_sql = retour_sql + " order by " + collect_name(ii).ToString
'recuperation du type de tri soit ascendant soit descendant
                If val = "Ascending" Then
                    retour_sql = retour_sql + " asc"

                Else
                    retour_sql = retour_sql + " desc"
                End If

            Catch ex As Exception

            End Try
        Else
            
        End If
    

        Return retour_sql

    End Function

End Module

Conclusion :


l'appel de cette fonction en passant les paramètres requêtes et datagrid va permettre de récupérer le tri effectuer sur la datagrid et envoyer le paramètre de tri en l'insérant dans la requête existante

A voir également

Ajouter un commentaire

Commentaires

Messages postés
18
Date d'inscription
mercredi 4 août 2004
Statut
Membre
Dernière intervention
17 juillet 2017

bsr jack,

Pour la collection je l'ai vidé parce que dans mon programme je l'ai déclaré comme collection public pour l'initialiser

Bon pour le reste je suis totalement d’accord avec toi @jack mais pour l'instant ça me règle plusieurs choses
Vu la pression du temps et le retard d’avancement de projet il me parait de la laisser comme ça pour un premier temps et dès que je finis je passerai mon temps pour l’améliorer
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
68
Salut
Je ne suis pas un As de VB.Net mais il me semble qu'il y a des méthodes pas très claires :
-1- Le vidage de collect_name : Pas utile puisque tu viens de la dimensionner : la collection est déjà vide
-2- Lignes inutiles
Dim jj As Integerjj 0> Dim jj As Integer = 0 ' bien que le 0 soit inutile
-3- Boucle While :
Ta gestion d'erreur revient à faire un "On Error Resume Next"
Ce n'est pas très technique et cela masquera les éventuelles erreurs - pas normal
-4- If affiche.SortOrder <> "0" Then
Es-tu sûr que .SortOrder renvoie une chaine ? Bizarre
-5- Dim ii As Integer
Encore une nouvelle variable alors que "jj" est disponible
-6- Dim val As String = ""
'val' est un mot réservé du langage : attention aux erreurs de compilation
-7- Gestion de l'erreur : même remarque

--> A retravailler
Messages postés
358
Date d'inscription
dimanche 8 février 2004
Statut
Modérateur
Dernière intervention
9 octobre 2017
1
Bonjour,

Une petite correction de la description et de la conclusion (lettres manquantes, conjuguaison, orthographe......) serait fort apprécié.

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.