Powershell Group Values Winforms Charts -


im having bit of problem. trying achieve this: http://www.codeproject.com/articles/168056/windows-charting-application first chart on page. have code here

### load assemblies [reflection.assembly]::loadwithpartialname("system.windows.forms") [reflection.assembly]::loadwithpartialname("system.windows.forms.datavisualization")  $servers = get-xaworkergroup -workergroupname agresso | select servernames -expandproperty servernames $sessiontable = @() foreach ($server in $servers) {     $activesessions = (get-xasession -servername $server | ?{$_.state -eq "active"}).count     $disconnectedsessions = (get-xasession -servername $server | ?{$_.state -eq "disconnected"}).count     $listeningsessions = (get-xasession -servername $server | ?{$_.state -eq "listening"}).count     $looparray = "$server,$activesessions,$disconnectedsessions,$listeningsessions"     $sessiontable += $looparray }  ### create chart $chart = new-object system.windows.forms.datavisualization.charting.chart  $chart.width = 1600 $chart.height = 400 $chart.left = 10  $chart.top = 10  # create chartarea draw on , add chart  $chartarea = new-object system.windows.forms.datavisualization.charting.chartarea  $chart.chartareas.add($chartarea)  foreach ($server in $sessiontable) {     $splitted = $server.split(",")     $name = $splitted[0]     $active = $splitted[1]     $disconnected = $splitted[2]     $listening = $splitted[3]     [void]$chart.series.add($name)     $dp1 = new-object system.windows.forms.datavisualization.charting.datapoint(0,$active)     $dp2 = new-object system.windows.forms.datavisualization.charting.datapoint(0,$disconnected)     $dp3 = new-object system.windows.forms.datavisualization.charting.datapoint(0,$listening)     $dp1.color = "blue"     $dp2.color = "red"     $dp3.color = "orange"     $dp1.axislabel = $name + " active"     $dp2.axislabel = $name + " disconnected"     $dp3.axislabel = $name + " listening"     $chart.series[$name].points.add($dp1)     $chart.series[$name].points.add($dp2)     $chart.series[$name].points.add($dp3)     $chartarea.axisx.labelstyle.angle = "-90"     $chartarea.axisx.labelstyle.interval = "1" } $title = new-object system.windows.forms.datavisualization.charting.title  $chart.titles.add( $title )  $chart.titles[0].text = "testing" $chart.titles[0].font = new-object system.drawing.font("arial",20,[system.drawing.fontstyle]::bold) ### show on form $chart.anchor = [system.windows.forms.anchorstyles]::bottom -bor [system.windows.forms.anchorstyles]::right -bor                  [system.windows.forms.anchorstyles]::top -bor [system.windows.forms.anchorstyles]::left  $form = new-object windows.forms.form $form.text = "testing form" $form.width = 1400 $form.height = 820 $form.controls.add($chart) $form.add_shown({$form.activate()}) $form.showdialog() 

but output looks enter image description here

i want output 1 linked @ top, in case: servername 3 combined values different sessions. server1 values 6, 7, 0 example hope making myself clear on want achieve! :d

i think, need use 'aligndatapointsbyaxislabel' work. here how code look.

### load assemblies [reflection.assembly]::loadwithpartialname("system.windows.forms") [reflection.assembly]::loadwithpartialname("system.windows.forms.datavisualization")  $sessiontable = @() $sessiontable = get-content c:\users\hemanth.damecharla\desktop\serverdetails.txt  ### create chart $chart = new-object system.windows.forms.datavisualization.charting.chart  $chart.width = 1024 $chart.height = 768 $chart.left = 10  $chart.top = 10  # create chartarea draw on , add chart  $chartarea = new-object system.windows.forms.datavisualization.charting.chartarea  $chart.chartareas.add($chartarea)  $seriesnames = @() #need series name use aligndatapointsbyaxislabel foreach ($server in $sessiontable) {     $splitted = $server.split(",")     $name = $splitted[0]     $active = [double]($splitted[1])     $disconnected = [double]($splitted[2])     $listening = [double]($splitted[3])     [void]$chart.series.add($name)     $dp1 = new-object system.windows.forms.datavisualization.charting.datapoint(0,$active)     $dp2 = new-object system.windows.forms.datavisualization.charting.datapoint(0,$disconnected)     $dp3 = new-object system.windows.forms.datavisualization.charting.datapoint(0,$listening)     $dp1.color = "blue"     $dp2.color = "red"     $dp3.color = "orange"     $dp1.axislabel = $name + " active"     $dp2.axislabel = $name + " disconnected"     $dp3.axislabel = $name + " listening"     $chart.series[$name].points.add($dp1)     $chart.series[$name].points.add($dp2)     $chart.series[$name].points.add($dp3)     $chartarea.axisx.labelstyle.angle = "-90"     $chartarea.axisx.labelstyle.interval = "1"      $seriesnames += $name #collect each series name } $seriesnames = $seriesnames -join ','  $title = new-object system.windows.forms.datavisualization.charting.title  $chart.titles.add( $title )  $chart.titles[0].text = "testing" $chart.titles[0].font = new-object system.drawing.font("arial",20,[system.drawing.fontstyle]::bold)  ### show on form $chart.anchor = [system.windows.forms.anchorstyles]::bottom -bor [system.windows.forms.anchorstyles]::right -bor                  [system.windows.forms.anchorstyles]::top -bor [system.windows.forms.anchorstyles]::left  $chart.aligndatapointsbyaxislabel($seriesnames) #call method $form = new-object windows.forms.form $form.text = "testing form" $form.width = 1400 $form.height = 820 $form.controls.add($chart) $form.add_shown({$form.activate()}) $form.showdialog() 

Comments

Popular posts from this blog

windows - Single EXE to Install Python Standalone Executable for Easy Distribution -

c# - Access objects in UserControl from MainWindow in WPF -

javascript - How to name a jQuery function to make a browser's back button work? -