Skip to content

The starting view

Parameter Effect
-Plugin Datagrid (default); charts (WebGL): X Bar, Y Bar, Y Line, Y Area, Y Scatter, X/Y Scatter, X/Y Line, Density, Treemap, Sunburst, Heatmap, Candlestick, OHLC, Map Scatter, Map Line, Map Density (maps need longitude and latitude columns)
-Columns columns to show, in order
-GroupBy, -SplitBy pivot rows and columns
-Aggregates @{ Tickets = 'sum'; LeadHours = 'avg' } (Perspective's names: sum, avg, count, distinct count, min, max, median, first, last, ...)
-Sort 'Created desc', 'Team'
-Filter 'Status == Open', 'LeadHours > 48', 'Team contains Net'
-Settings open the configuration panel at the start
-ChartPlugin the chart of the toolbar's Chart button until the reader picks one: Y Bar (default) or any chart of -Plugin
-Labels the toolbar's words in another language: @{ EditView = 'Ansicht bearbeiten'; Table = 'Tabelle'; Chart = 'Diagramm' }
-NoToolbar no toolbar above the viewer (see Using the viewer)
-Config Perspective's full viewer configuration (the viewer's "copy" button gives it), merged over the parameters

Column names in these parameters are matched without regard to case; names with spaces work ('Lead Hours > 48'). Filter values take the column's type ('Code == 007' stays text in a text column, a number column takes only numbers, a boolean column true/false); in and not in take a comma-separated list (values themselves cannot contain a comma). A name that matches no column, a value of the wrong type or a malformed -Sort/-Filter entry is reported above the grid and left out; names of expression columns from -Config count as columns.

Pivot: tickets per team and priority

-GroupBy rows, -SplitBy columns, -Aggregates per column; the reader can change all of it.

$rng = [System.Random]::new(7)
$tickets = foreach ($i in 1..800) {
    [pscustomobject]@{ Id = $i; Team = ('Service Desk', 'Network', 'Server', 'Applications')[$rng.Next(0, 4)]; Priority = 'P{0}' -f $rng.Next(1, 5); LeadHours = [math]::Round(2 + 40 * $rng.NextDouble(), 1) }
}
New-UDPerspective -Data $tickets -GroupBy Team -SplitBy Priority -Columns Id, LeadHours -Aggregates @{ Id = 'count'; LeadHours = 'avg' } -Height 320px

Perspective chart: open tickets per team

A chart plugin with a filter; the WebGL charts redraw as the reader changes the grouping.

$rng = [System.Random]::new(3)
$tickets = foreach ($i in 1..800) {
    [pscustomobject]@{ Id = $i; Team = ('Service Desk', 'Network', 'Server', 'Applications')[$rng.Next(0, 4)]; Customer = 'Customer {0}' -f [char](65 + $rng.Next(0, 5)); Status = ('Open', 'Closed', 'Closed')[$rng.Next(0, 3)] }
}
New-UDPerspective -Data $tickets -Plugin 'Y Bar' -GroupBy Customer -SplitBy Team -Columns Id -Aggregates @{ Id = 'count' } -Filter 'Status == Open' -Height 360px

Theme and layout

Light and dark follow the app's switch (Perspective's "Pro Light" and "Pro Dark"); -Theme Light or Dark pins one. -Height (default 480px), -Width, -Id, -ClassName and -Style as on PSU's own components. Number formats follow Perspective (thousands separators also on id columns); adjust them in the configuration panel or through -Config.