Hi everyone,
So I am attempting to create a new view for a particular list in a large group of sub sites. I’ve got it to work, as written below, I am just missing how to add the grouping. I want to group the list items by business unit, then by subcategory. Can’t seem to get the syntax right.
#Get destination site and list
$web = Get-SPWeb http://mysharepoint.com/site
$list = $web.GetList(($web.ServerRelativeURL.TrimEnd(“/”) + “/ListName”))
$viewTitle = “Business Unit Grouped” #Title property
#Add the column names from the ViewField property to a string collection
$viewFields = New-Object System.Collections.Specialized.StringCollection
$viewFields.Add(“DocIcon”) > $null
$viewFields.Add(“LinkFilename”) > $null
$viewFields.Add(“Business Unit”) > $null
$viewFields.Add(“Subcategory”) > $null
$viewFields.Add(“Modified”) > $null
$viewFields.Add(“Editor”) > $null
#Query property
$viewQuery = “<OrderBy><FieldRef Name=’Modified’ Ascending=’FALSE’/></OrderBy>”
#RowLimit property
$viewRowLimit = 50
#Paged property
$viewPaged = $true
#DefaultView property
$viewDefaultView = $false
#Create the view in the destination list
$newview = $list.Views.Add($viewTitle, $viewFields, $viewQuery, $viewRowLimit, $viewPaged, $viewDefaultView)
Write-Host (“View ‘” + $newview.Title + “‘ created in list ‘” + $list.Title + “‘ on site ” + $web.Url)
$web.Dispose()
I suspect the issue is either:
1) SharePoint GUI requires static/internal names for fields
OR
2) If your field has spaces in the name, you may need to use the special characters to replace the spaces.
If you create the view you want with the SharePoint web app and inspect the created view with SharePoint Manager, it may show your the expected syntax.
By the way… What version of SharePoint are you running?