Question filtre de recherche dans un tableau

Plus d'informations
il y a 11 ans 1 mois #18919 par Grannic
bonjour,

je viens aujourd'hui soliciter l'aide de la communauté.
il m'avait semblé voir un post traitant de ce sujet mais impossible de remettre la main dessus.
je me suis mis au powershell et je rencontre un problème de filtrage dans un tableau, et malgré diverse recherche je n'ai pas trouver et réussi à le faire.
j'ai importer une partie du contenue d'une table access de manière a l'afficher dans un tableau d'une interface en powershell.
je souhaiterais lorsque l'on saisie un mot (dans une textbox), qu'il y ai un filtre qui se fasse automatiquement dans le tableau sur le contenue d'une colonne en fonction des caractères saisie, comme on pourrait l'avoir dans \"out-gridview\".
Je souhaiterais savoir si quelqu'un dispose d'un exemple de ce type, et serais d'accord de le partager.
Je vous remercie par avance pour votre aide.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 1 mois #18920 par Laurent Dardenne
Salut,
cela ressemble à l'auto-complétion :
[code:1]
################################################################################
#
# Nom : autocompletion.ps1
# Version : 1.2.1
#
# Révision : $Rev: 180 $
# Auteur :
# Date : 1 août 2010
#
# Généré sous PowerShell V1.0.0.0
# Appel : ..\..\convert-Form FrmTest17AutoCompletion.Designer.cs autocompletion.ps1 -sta
#
################################################################################


#Sous Posh V2 utiliser le paramètre -STA, sous Posh v1 utiliser le cmdlet additionnel Invoke-Apartment.
if ([System.Threading.Thread]::CurrentThread.GetApartmentState() -ne [System.Threading.ApartmentState]::«»STA )
{Throw \"Le script courant nécessite que le modèle du thread actuel soit [System.Threading.ApartmentState]::«»STA (Single Thread Apartment).\" }

# Chargement des assemblies externes
[void][Reflection.Assembly]::LoadWithPartialName(\"System.Windows.Forms\"«»)
[void][Reflection.Assembly]::LoadWithPartialName(\"System.Drawing\"«»)

$comboBox1 = new-object System.Windows.Forms.ComboBox
$lblSource = new-object System.Windows.Forms.Label
#
# comboBox1
#
$comboBox1.AutoCompleteCustomSource.AddRange(@(
\"Apache_srv\",
\"Exchange\",
\"Mail\",
\"Serveur_1\",
\"Serveur_2\",
\"Serveur_n\",
\"WM_1\",
\"WM_2\"«»))
$comboBox1.AutoCompleteMode =[System.Windows.Forms.AutoCompleteMode]::«»SuggestAppend
$comboBox1.AutoCompleteSource =[System.Windows.Forms.AutoCompleteSource]::CustomSource
$comboBox1.FormattingEnabled = $true
$comboBox1.Location = new-object System.Drawing.Point(12, 21)
$comboBox1.Name = \"comboBox1\"
$comboBox1.Size = new-object System.Drawing.Size(121, 21)
$comboBox1.TabIndex = 0
#
# lblSource
#
$lblSource.AutoSize = $true
$lblSource.Location = new-object System.Drawing.Point(13, 2)
$lblSource.Name = \"lblSource\"
$lblSource.Size = new-object System.Drawing.Size(50, 13)
$lblSource.TabIndex = 1
$lblSource.Text = \"Source :\"
#
$FrmTest17AutoCompletion = new-object System.Windows.Forms.form
#
$FrmTest17AutoCompletion.ClientSize = new-object System.Drawing.Size(182, 79)
$FrmTest17AutoCompletion.Controls.Add($lblSource)
$FrmTest17AutoCompletion.Controls.Add($comboBox1)
$FrmTest17AutoCompletion.Name = \"FrmTest17AutoCompletion\"
$FrmTest17AutoCompletion.Text = \"Form1\"
function OnFormClosing_FrmTest17AutoCompletion($Sender,$e){
# $this est égal au paramètre sender (object)
# $_ est égal au paramètre e (eventarg)

# Déterminer la raison de la fermeture :
# if (($_).CloseReason -eq [System.Windows.Forms.CloseReason]::UserClosing)

#Autorise la fermeture
($_).Cancel= $False
}
$FrmTest17AutoCompletion.Add_FormClosing( { OnFormClosing_FrmTest17AutoCompletion $FrmTest17AutoCompletion $EventArgs} )
$FrmTest17AutoCompletion.Add_Shown({$FrmTest17AutoCompletion.Activate()})
$ModalResult=$FrmTest17AutoCompletion.ShowDialog()
#Libération de la Form
$FrmTest17AutoCompletion.Dispose()
[/code:1]

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 1 mois #18925 par Grannic
bonsoir et merci pour ce retour, je vais de suite tester et je vous tiendrais informer de mon avancé

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 1 mois #18931 par Grannic
bonjour,

grâce à Laurent je pense avoir compris le principe de l'auto-complétion. et je l'en remercie.
cependant je me heurte a une difficulté.
j'ai essayé de lier mon champ de recherche, au information présente dans la deuxième colonne de mon tableau. et là cela ne fonctionne pas.
j'avais espérer ensuite que selon ma saisie cela fasse office de filtre et que je ne conserve que les lignes du tableau correspondant à ce que j'ai saisie.

[code:1]$recherche = New-Object System.Windows.Forms.combobox
$recherche.AutoCompleteCustomSource.AddRange($Datagridview.name($colunm2))
$recherche.AutoCompleteMode =[System.Windows.Forms.AutoCompleteMode]::«»SuggestAppend
$recherche.AutoCompleteSource =[System.Windows.Forms.AutoCompleteSource]::listitems
$recherche.Location = New-Object Drawing.Point 120,40
$recherche.Size = New-Object System.Drawing.Size(300,30)
$recherche.text = \"recherche\"
$recherche.TabIndex = 0

[/code:1]


et mon tableau est de ce type
[code:1]$Datagridview = New-Object System.Windows.Forms.datagridview
$Datagridview.AutoSize = $false
$Datagridview.Location = New-Object Drawing.Point 20,100
$Datagridview.Size = New-Object System.Drawing.Size(1050,350)
$Datagridview.Name = 'Zone de Résultat'
$Datagridview.ColumnCount = 4
$Datagridview.ColumnHeadersVisible = $true
$Datagridvien_t_M8.AutoResizeColumnHeadersHeight() = $false

$Column1=New-Object System.Windows.Forms.datagridview
$Column2=New-Object System.Windows.Forms.datagridview
$Column3=New-Object System.Windows.Forms.datagridview
$Column4=New-Object System.Windows.Forms.datagridview


$Datagridview.Columns.Add($Column1)
$Datagridview.Columns.Add($Column2)
$Datagridview.Columns.Add($Column3)
$Datagridview.Columns.Add($Column4)

$Datagridview.Columns[0].Name = \"NOM\"
$Datagridview.Columns[1].Name = \"Prenom\"
$Datagridview.Columns[2].Name = \"catégorie\"
$Datagridview.Columns[3].Name = \"niveau\"

$Datagridview.Columns[0].width = 70
$Datagridview.Columns[1].width = 220
$Datagridview.Columns[2].width = 70
$Datagridview.Columns[3].width = 70

$peronnes= Get-Accessbasedonnee $Request_participant $Connect $liaison | foreach {$Datagridview.Rows.Add($_.nom,$_.prenom,$_.catégorie,$_.niveau)}

[/code:1]

en vous remerciant pour votre aide<br><br>Message édité par: Grannic, à: 4/02/15 12:55

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 1 mois #18932 par Laurent Dardenne
Rapido, je pense que ta source pose pb.
Recherche des exemples sur le net à adapter .

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 1 mois #18954 par Grannic
un big merci laurent:) :) :)

après deux jours de combat acharné j'ai réussi a mettre ma colonne en source de ma recherche dans mon champ de saisie.
et c'était bien ma source qui posais problème.
Je suis en train maintenant de voir pour filtrer les lignes de mon tableau en fonction de ma saisie.
je progresse petit a petit.
je posterais le code prochainement.

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.049 secondes
Propulsé par Kunena