begin process at 2012 02 15 01:12:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

J'AI BESOIN D'AIDE !!!! :)

 > 

Flexgrid MultiSelection et récupération de donnée


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Flexgrid MultiSelection et récupération de donnée

mercredi 31 août 2005 à 17:12:15 | Flexgrid MultiSelection et récupération de donnée

MP2P

salut a tous

j'effectue un projet en vb je dois utiliser une flexgrid le probleme c'est que je n'arrive pas a faire une  sélection de  plusieurs lignes (elles ne doivent pas forcement etre à la suite) recupérer les lignes sélectionnées pour pouvoir imprimer dans un document

j'arrive a selectionner une ligne et limprimer mais pas plusieurs lignes
Si quelqu'un aurait des solutions à apporter(codes) envoyer les moi
je dois livrer demin c'est URGENT

merci beaucoup

jeudi 1 septembre 2005 à 06:26:52 | Re : Flexgrid MultiSelection et récupération de donnée

Zlub

Membre Club
Réponse acceptée !


Salut MP2P,


Tu peux t'amuser à tenir une liste des lignes selectionnées et les mettre en couleurs. Par exemple, sur le clic de la flex

  Private tablo() As Integer

dans form_load
  redim tablo(0)

dans MSFlexGrid1_Click

  Call Surligner_Multiple_Ligne(MSFlexGrid1, tablo)

puis dans un module

Public Sub Surligner_Multiple_Ligne(flex As MSFlexGrid, lignes() As Integer, _
                                    Optional CouleurDflt As Variant = &H80000005, _
                                    Optional Couleur As Variant = vbGreen)
  Dim i As Integer
  Dim j As Integer
  Dim RowSelect As Integer

  With flex
    RowSelect = .RowSel
    Call update_ligne_select(flex, lignes, CouleurDflt, Couleur)

    Dim max As Integer
    max = UBound(lignes) - 1

    For i = 0 To max       'Traite chaque ligne
      If lignes(i) <> -1 Then
        .Row = lignes(i)
        For j = 0 To .Cols - 1       'Mise en couleur de la selection
          .Col = j
          .CellBackColor = Couleur
        Next j
      End If
    Next i

    If .Rows <> 0 Then .RowSel = RowSelect
  End With
End Sub

Public Sub update_ligne_select(flex As MSFlexGrid, lignes() As Integer, _
                               Optional Couleur As Variant = &H80000005, _
                               Optional CouleurSelect As Variant = vbGreen)
  Dim j As Integer
  Dim i As Integer
  Dim max As Integer
  Dim RowSelect As Integer

  Dim found As Boolean
  With flex
    RowSelect = .RowSel
    .Col = 0
    max = UBound(lignes)
    For i = 0 To max
      If lignes(i) = .RowSel Then
        found = True
        .Row = lignes(i)
        If .CellBackColor = CouleurSelect Then
          For j = 0 To .Cols - 1
            .Col = j
            .CellBackColor = Couleur
          Next j
          lignes(i) = -1
        End If
      End If
    Next i
   
    ' Ajouter dans le tablo des selected
    If Not found Then
      If max = 0 Then
        ReDim lignes(0 To max + 1)
      Else
        ReDim Preserve lignes(0 To max + 1)
      End If
      lignes(max) = .RowSel
    End If

    If .Rows <> 0 Then .RowSel = RowSelect
  End With
End Sub

C'est clair que c'est à améliorer vu qu'il faudrait par exemple supprimer du tablo au lieu de mettre -1 ... que c'est pas terrible de parcourir deux fois le tableau des selections, alors qu'un seul suffit ... bref c'est perfectible ...

Tout dépend si tu as un faible nombre de lignes dans ta flex :

Si tel est le cas, tu peux déclarer un tableau de booléen de 0  à flex.rows-1 (initialisé à false)
et sur le click mettre dans la bonne couleur toutes les colones de flex.rowsel en fonction de
tablo(flex.rowsel) et du coups la mise à jour du tablo : tablo(flex.rowsel) = not tablo(flex.rowsel). Pour imprimer : parcourir tablo et imprimer si tablo(flex.rowsel) = True . Au quel cas, tu simplifiras considérablement les traitements...

Au final, tes lignes selectionnées sont dans tablo que tu n'as plus qu'à parcourir pour faire la suite de ton traitement d'impression (ici vérifier que <> -1)...

++

Zlub


jeudi 1 septembre 2005 à 10:14:39 | Re : Flexgrid MultiSelection et récupération de donnée

MP2P

Réponse acceptée !
je te remercie bcp pour le code
mon chef sera content!
@+
jeudi 1 septembre 2005 à 10:24:04 | Re : Flexgrid MultiSelection et récupération de donnée

Zlub

Membre Club


Salut,


De rien ... mais essais d'arranger un peu le code ... c'est codé à l'arrachée ...

++

Zlub




Cette discussion est classée dans : arrive, donnée, récupération, flexgrid, multiselection


Répondre à ce message

Sujets en rapport avec ce message

Base de donnée [ par Nico ] SalutJ'ai un programme VB qui intérroge une base Access.je veux faire ne copie d'une table quie reprend données et structure (ça j'arrive), mais aussi flexgrid et base de donnée [ par cailloux ] comment fait t'on pour envoyer les ligne d'une flexgrid dans une base de donnée lors du click sur un bouton ? récupération des clés primaires Urgent [ par leila51 ] LEILA Je travail sous visual basic.net et je dois me connecter à des bases de données access et mysql.J?arrive à récupérer les nom des tables grâce à récupération des clés primaires Urgent [ par leila51 ] LEILA Je travail sous visual basic.net et je dois me connecter à des bases de données access et mysql.J?arrive à récupérer les nom des tables grâce à récupération donnée précise ds 1 Datagrid [ par nikostaf ] bonjour,Je voudrai récupérer une donnée dans ma datagrid donc je fait Datagrid1.columns("nomchamp")CellValue(.......je sais pas comment faire pour réc Base de Donnée dans FlexGrid Urgent !!!!! [ par airhik7 ] G un énorme problemeComment écrire les données provenant d'une BASE DE DONNEE ACCESS dans mon Flexgrid par l'intermédiaire d'une requete SQLMerci énor Récupération de donnée [ par Jacquominot ] Bonjour tout le monde je voulais savoir si qqn savait comment recuperer les données d'une connection sur port COM sous la forme de commande. je m'expl Epaisseur d'une ligne d'un Flexgrid [ par ciagar ] Bonjour,Je n'arrive pas à mettre "une" ligne d'un flexgrid en "gras", ni plus epaisse.Je fais un tableau de stat. Toutes les deux lignes, je souhaiter flexgrid et datagrid...Help [ par alexisdolci ] Bonjour je dois developper une appli sous Access et je souhaiterai utiliser les flex et les datagrid.Je n'arrive pas à me deplacer dans les lignes et Récupération de la donnée choisie par Combobox [ par phantom_2005 ] Bonjour,j'ai une Combobox liée à une table de deux colonnes.Quand je choisi une donnée, il ne m'affiche qu'une colonne.Ex:    Table = Identité        


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,811 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales