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
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
Post a Comment