Получение дополнительной информации с помощью Combobox Powershell - PullRequest
0 голосов
/ 10 октября 2018

Привет, ребята. Сейчас я пишу IHM в powershell для настройки коммутаторов.Я использую комбинированный список, чтобы выбрать модель.Combobx генерируется с использованием просмотра данных, сгенерированного источником данных, а источник данных генерируется из файла csv с помощью foreach.

Моя проблема заключается в следующем: я могу восстановить только один столбец.

Combobox:

$list1 = New-Object System.Windows.Forms.Combobox
$list1.Location = New-Object Drawing.Point 9,45
$list1.Size = New-Object System.Drawing.Size(250,30)
$list1.DropDownStyle = "DropDownList"
$list1.BindingContext = New-Object System.Windows.Forms.BindingContext
$list1.DataSource = $vu1
$list1.ValueMember = "Model"
$list1.DisplayMember = "Model"  
$list1.SelectedValue = ""   
$mainfrm.controls.add($list1)

Чтение информации

Write-Host "$list1.SelectedValue" 

Редактирование foreach и создание просмотра данных

foreach:

$ImportData = import-csv "E:\PS\A faire\equipement.csv" -Delimiter ';' | Select Model,Type,Port,Firmware,Comware
$table1 = New-Object system.Data.DataTable
$colonne1 = New-Object system.Data.DataColumn Model,([string])
$table1.columns.add($colonne1)
$colonne2 = New-Object system.Data.DataColumn Port,([string])
$table1.columns.add($colonne2)
$colonne3 = New-Object system.Data.DataColumn Comware,([string])
$table1.columns.add($colonne3)
$colonne4 = New-Object system.Data.DataColumn Firmware,([string])
$table1.columns.add($colonne4)
foreach ($data in $ImportData)
{
 $model = $data.Model
 $type = $data.Type
 $port = $data.Port
 $firmware = $data.Firmware
 $comware= $data.Comware
 $ligne1 = $table1.NewRow()
 $ligne1.Model = "$model "+"$type"
 $ligne1.Port = "$port"
 $ligne1.Comware = "$comware"
 $ligne1.Firmware = "$firmware"
 $table1.Rows.Add($ligne1)
}

Dataview

$vu1 = New-Object System.Data.DataView($table1)

1 Ответ

0 голосов
/ 11 октября 2018

Вместо того, чтобы использовать 4 столбца в источнике данных, я складываю все в один, а затем разделяю.Код после:

$ligne1.Model = "$model "+"$type " + "$port " + "$comware " + "$firmware "

Затем вы можете использовать split (), чтобы получить полезное значение.

...