0c1f300d-d098-42f4-b730-8790940cd5b2 iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAAAXNSR0IArs4c6QAAAARnQU1BAACx jwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAB4ESURBVHhe7d3pe57lfefh/gnzqvNiZo7pHNNm Gpo2zWb2NQv7bkho0knThDRHm0lo0jShado0bQMNgQQMBIPBkLAYjHfj3bI2a19syZYteZFteV/x KluS/ZvrviUb0xowBmYM1/k5elbbs8jOi+v7PHosfkuSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS JEmSJEmSJEmSJEmSJEmSJEmSJEmSJElnXd+94IILJo559ImJjzw6buKYR54AAN6HHh07fuJP7/nZ xP/82789ceSMf+NGjRo1e3ZlYyzbsDc61u2Opb27AID3oY51e6Jr47546FdPxsgx/8Y9kh75d23c H5XtawCAEVVL1p6R/1/XrRr5vms6N0Trig1vPQAeG/vUxBVpLVQv7Y2apLZj3Rsqvl5TvAWAD6p0 1i3uXBeVbWtiYXNPVLSsOi0Lm1el66yOumXry8P47Vy3Il13UevqdL/rozod5m/ruiOOn9WLl22I pmW9bz0AHn1sXDkAij/0icN+6Zr0Nh32y3ZE9fLdUbt8V9Smb+rE1wHgA6ouHaALmrpjyryWmLGo PaZXnJ4ZydQFLTGrdllMW9B64rrF21eqO2NG5dLXKT930u1PnZ+uW7PsxG0df/tKVUfMTMq3xfVO ev/EddP9vVLdUX7vdcv7Tn8ArNy0vzzgi9VQ09oVte09Ud3UGY2zfxJN0/8yaqb+bVQ3NKevb0w3 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 MgAAIEMGAABkyAAAgAwZAACQIQMAADJkAABAhgwAAMiQAQAAGTIAACBDBgAAZMgAAIAMGQAAkCED AAAyZAAAQIYMAADIkAEAABkyAAAgQwYAAGTIAACADBkAAJAhAwAAMmQAAECGDAAAyJABAAAZMgAA IEMGAABkyAAAgAwZAACQIQMAADJkAABAhgwAAMiQAQAAGTIAACBDBgAAZMgAAIAMGQAAkCEDAAAy ZAAAQIYMAADIkAEAABkyAAAgQwYAAGTIAACADBkAAJAhAwAAMmQAAECGDAAAyJABAAAZMgAAIEMG AABkyAAAgAwZAACQIQMAADJkAABAhgwAAMiQAQAAGTIAACBDBgAAZMgAAIAMGQAAkCEDAAAyZAAA QIYMAADIkAEAABkyAAAgQwYAAGTIAACADBkAAJAhAwAAMmQAAECGDAAAyJABAAAZMgAAIEMGAABk yAAAgAwZAACQIQMAADJkAABAhgwAAMiQAQAAGTIAACBDBgAAZMgAAIAMGQAAkCEDAAAyZAAAQIYM AADIkAEAABkyAAAgQwYAAGTIAACADBkAAJAhAwAAMmQAAECGDAAAyJABAAAZMgAAIEMGAABkyAAA gAwZAACQIQMAADJkAABAhgwAAMiQAQAAGTIAACBDBgAAZMgAAIAMGQAAkCEDAAAyZAAAQIYMAADI kAEAABkyAAAgQwYAAGTIAACADBkAAJAhAwAAMmQAAECGDAAAyJABAAAZMgAAIEMGAABkyAAAgAwZ AACQIQMAADJkAABAhgwAAMiQAQAAGTIAACBDBgAAZMgAAIAMGQAAkCEDAAAyZAAAQIYMAADIkAEA ABkyAAAgQwYAAGTIAACADBkAAJAhAwAAMmQAAECGDAAAyJABAAAZMgAAIEMGAABkyAAAgAwZAACQ IQMAADJkAABAhgwAAMiQAQAAGTIAACBDBgAAZMgAAIAMGQAAkCEDAAAyZAAAQIYMAADIkAEAABky AAAgQwYAAGTIAACADBkAAJAhAwAAMmQAAECGDAAAyJABAAAZMgAAIEMGAABkyAAAgAwZAACQIQMA ADJkAABAhgwAAMiQAQAAGTIAACBDBgAAZMgAAIAMGQAAkCEDAAAyZAAAQIYMAADIkAEAABkyAAAg QwYAAGTIAACADBkAAJAhAwAAMmQAAECGDAAAyJABAAAZekcDYO2uoXj+5enx8JgHY8KEF8obAwDO fuPHj4/6+rozGwA92w5HRU1jVFVWRHNzU7kkAICzX31dXaxZvSo27jr89gdAV9/e6N1+KDa/OpgW xJFyRQAAZ7/NSV86/Ls37Yuerf2nNwDGjntm4s4jUV6hOymWAwDw/lOc5Wt2DkV33+63HgAPPDBm 1uY9w08XAADvb919e2JZT99bDwBJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiT9P+y3fuv/AvGKHFZIt07dAAAAAElFTkSuQmCC 8, 17 Font 1446, 790 True formLaunchGridForm CenterScreen Launch Grid Form formLaunchGridForm_Load 0, 0 toolstrip1 1446, 90 1 toolstrip1 Segoe UI, 10.2pt, style=Bold iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAAAXNSR0IArs4c6QAAAARnQU1BAACx jwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAOzSURBVGhD7ZrrSxRRFMD7t3zkc9d95K6uPaAi pKRPfYiiPhRIQVEIfQlCzZaUypQsLdMsQ/JVkb3M0izSNF8FoZk9DKrTnK1ZtvXMzL1378wO4374 fXL2XH/MuXPmnDtrcivTYDWREnY6KWGnkxJmwXM6HWr73XD5oYebsoa1ZEyrEL7Dm89lwqvJAMCX Ei5+LIbgxO18MqYVJJTSeKfbnnpJMSM6h3zgq0kn45qJlD1c0ZkfuXOUmB4TM0HYftHaFJf20NrZ mAWzc0WkmB7Ln0JQcSuPjGkG0oSRYDgD7o36STEjOp75wKtsESquTKQKI3kK4T43/F6ixfQYnw5C ab25KS5dWGVfSw4sfCwmxfT4rqT4sZvmpbhpwsimukwYmeAvXQg+/bEKUHETQYrwqTsuqLtbQFJ/ vwBaHnlIKSPeTAVg2wW5KS5F+P0H/aczXnO0Iy/yRKb+rsc35TdHbshLccuEEay5U7NB8hojWp94 oUBCilsqjKw7kw69I2Kl6/W7AGw9n/lfPF4sF0awdFV2u+CXQOn6uhCCw+25K2KykhRhld1XsmFe oHQhzcqD0F3Nn+JJFUbW12bA0Hgh+TsjRpWSt0Xp2qi4WiRdGHFVpcGlAbHStTRfDOVt7CluC2GV Q8rexDJExTAChwvuajpuLJrCmGrUi0Qspf/ee1mFsSui4sTS9cJHxmABGxejfa0pjO0eFTSW8ut/ U4lVeHBMbK/ygHdaXY/CccJY6krOZkTXjMdxwohenXakcHWPK7pmPI4UPtmlPRV1pHBZQ1Z0zXgc J9w97I+uR+EoYYyP3Zi6HoWmMA+swkbg1LJ9UGywf+2xl6mZsI0wjnLGpvjnX8uLITjOMde2hTDW TZF36Jm5It0HFEVShTEFRQd8/S/9EAhrv1FpkTRh7GOxn6Wu1wMH/DW97sjUhIprRFKED7bmwmel j6Wu1QMH+3ubs1fE48FSYWz0Gx+IpTAO9HGwH7uuCJYJb1D+2eeCo5wWxpLDgiXC+6+KnTPh4F72 OZMlwiInidNzQVO+B7FEmBcsOYVhOSkcj62EEy05LNhGGPf4ngRLDgu2EB5+WwgbJZQcFqQI49c4 lAgLokcmokgRFjkqwZKDZ8ZUPDORIszbAOAZ8Q6Lv89SkSK8q8l4OqLSN+I3nEqYiRRhBE/oKUGV n0rJqepxmVpyWJAmnK80Bk0DnhWH3CiKZz68jbpZSBNWwUO4A605kQEfHniLNOlmIl3Y7qSEnU5K 2OmsMuE0+AP+4vHGG0OQCQAAAABJRU5ErkJggg== TopCenter None Magenta toolstripbutton1 157, 87 Launch Grid Form ImageAboveText toolstripbutton1_Click #---------------------------------------------- #region Application Functions #---------------------------------------------- #endregion Application Functions #---------------------------------------------- # Generated Form Function #---------------------------------------------- function Show-Demo-DGVExport3_psf { #---------------------------------------------- #region Import the Assemblies #---------------------------------------------- [void][reflection.assembly]::Load('System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089') [void][reflection.assembly]::Load('System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089') [void][reflection.assembly]::Load('System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a') #endregion Import Assemblies #---------------------------------------------- #region Generated Form Objects #---------------------------------------------- [System.Windows.Forms.Application]::EnableVisualStyles() $formLaunchGridForm = New-Object 'System.Windows.Forms.Form' $buttonLoadData = New-Object 'System.Windows.Forms.Button' $buttonExportCsv = New-Object 'System.Windows.Forms.Button' $datagridview1 = New-Object 'System.Windows.Forms.DataGridView' $buttonOK = New-Object 'System.Windows.Forms.Button' $savefiledialog1 = New-Object 'System.Windows.Forms.SaveFileDialog' $InitialFormWindowState = New-Object 'System.Windows.Forms.FormWindowState' #endregion Generated Form Objects #---------------------------------------------- # User Generated Script #---------------------------------------------- $FormEvent_Load = { } $buttonExportCsv_Click = { $savefiledialog1 = New-Object System.Windows.Forms.SaveFileDialog $savefiledialog1.AddExtension = 'csv' if ('Ok' -eq $savefiledialog1.ShowDialog()) { $FilePath = Select-Folder -Description 'Select Billing Invoice ROOT folder' -RootFolder Desktop $datagridview1.SelectedRows | Select-Object -ExpandProperty DataBoundItem | Export-csv "$FilePath\Results.csv" -NoTypeInformation } } $buttonLoadData_Click = { $data = Get-ChildItem c:\windows -File | Select-Object name, length, fullname $this.parent.Controls['datagridview1'].DataSource = ConvertTo-DataTable $data } # --End User Generated Script-- #---------------------------------------------- #region Generated Events #---------------------------------------------- $Form_StateCorrection_Load = { #Correct the initial state of the form to prevent the .Net maximized form issue #$form1.WindowState = $InitialFormWindowState } $Form_Cleanup_FormClosed = { #Remove all event handlers from the controls try { $buttonLoadData.remove_Click($buttonLoadData_Click) $buttonExportCsv.remove_Click($buttonExportCsv_Click) $datagridview1.remove_RowPostPaint($datagridview1_RowPostPaint) $formLaunchGridForm.remove_Load($FormEvent_Load) $formLaunchGridForm.remove_Load($Form_StateCorrection_Load) $formLaunchGridForm.remove_FormClosed($Form_Cleanup_FormClosed) } catch { Out-Null <# Prevent PSScriptAnalyzer warning #> } } #endregion Generated Events #---------------------------------------------- #region Generated Form Code #---------------------------------------------- $formLaunchGridForm.SuspendLayout() $datagridview1.BeginInit() # # form1 # $formLaunchGridForm.Controls.Add($buttonLoadData) $formLaunchGridForm.Controls.Add($buttonExportCsv) $formLaunchGridForm.Controls.Add($datagridview1) $formLaunchGridForm.Controls.Add($buttonOK) $formLaunchGridForm.AcceptButton = $buttonOK $formLaunchGridForm.AutoScaleDimensions = '8, 17' $formLaunchGridForm.AutoScaleMode = 'Font' $formLaunchGridForm.ClientSize = '973, 551' #$form1.FormBorderStyle = 'FixedDialog' $formLaunchGridForm.KeyPreview = $True $formLaunchGridForm.Margin = '5, 5, 5, 5' $formLaunchGridForm.MaximizeBox = $False $formLaunchGridForm.MinimizeBox = $False $formLaunchGridForm.Name = 'form1' #$formLaunchGridForm.StartPosition = 'CenterScreen' $formLaunchGridForm.Text = 'Form' $formLaunchGridForm.add_Load($FormEvent_Load) # # buttonLoadData # $buttonLoadData.Location = '857, 54' $buttonLoadData.Margin = '4, 4, 4, 4' $buttonLoadData.Name = 'buttonLoadData' $buttonLoadData.Size = '100, 30' $buttonLoadData.TabIndex = 3 $buttonLoadData.Text = 'Load Data' $buttonLoadData.UseCompatibleTextRendering = $True $buttonLoadData.UseVisualStyleBackColor = $True $buttonLoadData.add_Click($buttonLoadData_Click) # # buttonExportCsv # $buttonExportCsv.Location = '857, 16' $buttonExportCsv.Margin = '4, 4, 4, 4' $buttonExportCsv.Name = 'buttonExportCsv' $buttonExportCsv.Size = '100, 30' $buttonExportCsv.TabIndex = 2 $buttonExportCsv.Text = 'Export Csv' $buttonExportCsv.UseCompatibleTextRendering = $True $buttonExportCsv.UseVisualStyleBackColor = $True $buttonExportCsv.add_Click($buttonExportCsv_Click) # # datagridview1 # $datagridview1.AutoSizeColumnsMode = 'DisplayedCells' $datagridview1.ColumnHeadersHeightSizeMode = 'AutoSize' $datagridview1.Location = '28, 16' $datagridview1.Margin = '4, 4, 4, 4' $datagridview1.Name = 'datagridview1' $System_Windows_Forms_DataGridViewCellStyle_1 = New-Object 'System.Windows.Forms.DataGridViewCellStyle' $System_Windows_Forms_DataGridViewCellStyle_1.Alignment = 'MiddleRight' $System_Windows_Forms_DataGridViewCellStyle_1.BackColor = 'Control' $System_Windows_Forms_DataGridViewCellStyle_1.Font = 'Microsoft Sans Serif, 8.25pt' $System_Windows_Forms_DataGridViewCellStyle_1.ForeColor = 'WindowText' $System_Windows_Forms_DataGridViewCellStyle_1.Format = 'N0' $System_Windows_Forms_DataGridViewCellStyle_1.NullValue = '0' $System_Windows_Forms_DataGridViewCellStyle_1.SelectionBackColor = 'LightSteelBlue' $System_Windows_Forms_DataGridViewCellStyle_1.SelectionForeColor = 'HighlightText' $System_Windows_Forms_DataGridViewCellStyle_1.WrapMode = 'False' $datagridview1.RowHeadersDefaultCellStyle = $System_Windows_Forms_DataGridViewCellStyle_1 $datagridview1.RowHeadersWidthSizeMode = 'AutoSizeToAllHeaders' $datagridview1.RowTemplate.Height = 24 $datagridview1.SelectionMode = 'FullRowSelect' $datagridview1.ShowCellToolTips = $False $datagridview1.Size = '801, 437' $datagridview1.TabIndex = 1 # # buttonOK # $buttonOK.Anchor = 'Bottom, Right' $buttonOK.DialogResult = 'OK' $buttonOK.Location = '857, 505' $buttonOK.Margin = '4, 4, 4, 4' $buttonOK.Name = 'buttonOK' $buttonOK.Size = '100, 30' $buttonOK.TabIndex = 0 $buttonOK.Text = 'OK' $buttonOK.UseCompatibleTextRendering = $True $buttonOK.UseVisualStyleBackColor = $True $buttonOK.add_click({$this.Parent.Close()}) # # savefiledialog1 # $savefiledialog1.DefaultExt = 'xml' $savefiledialog1.Filter = 'CSV Files|*.csv' $datagridview1.EndInit() $formLaunchGridForm.ResumeLayout() #endregion Generated Form Code #---------------------------------------------- #Save the initial state of the form $InitialFormWindowState = $form1.WindowState #Init the OnLoad event to correct the initial state of the form $formLaunchGridForm.add_Load($Form_StateCorrection_Load) #Clean up the control events $formLaunchGridForm.add_FormClosed($Form_Cleanup_FormClosed) #Show the Form $formLaunchGridForm |Add-Member -MemberType ScriptMethod -Name LoadGrid -Value{ $data = Get-ChildItem c:\windows -File | Select-Object name, length, fullname #$data = Import-CSv $ds = D:\scripts\ConvertTo-DataTable.ps1 $data Write-Host $formLaunchGridForm.Name $datagridview1.DataSource = $ds } return $formLaunchGridForm } #End Function $formLaunchGridForm_Load={ } $toolstripbutton1_Click={ # the followin is how to edit and reload a form. <# if(-not $script:childForm){ $f = Get-Item Function:\Show-Demo-DGVExport3_psf $txt = $f.Definition -replace 'return \$form1.ShowDialog\(\)', 'return $form1' $script:childForm = [System.Windows.Forms.Form]([scriptblock]::Create($txt).Invoke())[0] $script:childForm.MdiParent = $form1 } #> $childForm = Show-Demo-DGVExport3_psf $childForm.MdiParent = $formLaunchGridForm $childForm.Show() } #region Control Helper Functions function ConvertTo-DataTable { <# .SYNOPSIS Converts objects into a DataTable. .DESCRIPTION Converts objects into a DataTable, which are used for DataBinding. .PARAMETER InputObject The input to convert into a DataTable. .PARAMETER Table The DataTable you wish to load the input into. .PARAMETER RetainColumns This switch tells the function to keep the DataTable's existing columns. .PARAMETER FilterWMIProperties This switch removes WMI properties that start with an underline. .EXAMPLE $DataTable = ConvertTo-DataTable -InputObject (Get-Process) #> [OutputType([System.Data.DataTable])] param ( [ValidateNotNull()] $InputObject, [ValidateNotNull()] [System.Data.DataTable]$Table, [switch]$RetainColumns, [switch]$FilterWMIProperties) if ($null -eq $Table) { $Table = New-Object System.Data.DataTable } if ($InputObject -is [System.Data.DataTable]) { $Table = $InputObject } elseif ($InputObject -is [System.Data.DataSet] -and $InputObject.Tables.Count -gt 0) { $Table = $InputObject.Tables[0] } else { if (-not $RetainColumns -or $Table.Columns.Count -eq 0) { #Clear out the Table Contents $Table.Clear() if ($null -eq $InputObject) { return } #Empty Data $object = $null #find the first non null value foreach ($item in $InputObject) { if ($null -ne $item) { $object = $item break } } if ($null -eq $object) { return } #All null then empty #Get all the properties in order to create the columns foreach ($prop in $object.PSObject.Get_Properties()) { if (-not $FilterWMIProperties -or -not $prop.Name.StartsWith('__')) #filter out WMI properties { #Get the type from the Definition string $type = $null if ($null -ne $prop.Value) { try { $type = $prop.Value.GetType() } catch { Out-Null } } if ($null -ne $type) # -and [System.Type]::GetTypeCode($type) -ne 'Object') { [void]$table.Columns.Add($prop.Name, $type) } else #Type info not found { [void]$table.Columns.Add($prop.Name) } } } if ($object -is [System.Data.DataRow]) { foreach ($item in $InputObject) { $Table.Rows.Add($item) } return @( ,$Table) } } else { $Table.Rows.Clear() } foreach ($item in $InputObject) { $row = $table.NewRow() if ($item) { foreach ($prop in $item.PSObject.Get_Properties()) { if ($table.Columns.Contains($prop.Name)) { $row.Item($prop.Name) = $prop.Value } } } [void]$table.Rows.Add($row) } } return @( ,$Table) } #endregion ]]> 0 mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089