我正在尝试根据项目的年龄找到一种有效的过滤Sharepoint列表的方法。换句话说,如果我想查找7天之前的列表项,我应该能够在数据上构建过滤视图。
有a hack to build a "Today" field that works,但未正确过滤。
有没有人有什么好主意?
答案 0 :(得分:63)
如果您只想过滤少于7天的商品,那么您只需使用
过滤
创建
大于或等于
[今天] -7
注意 - 屏幕截图不正确。
2007年及之后的
[Today] is fully supported in view filters(只是保留空格!)你只需要在2003年使用计算列进行调整。
答案 1 :(得分:5)
您是否尝试过这样做:创建一个名为“Expiry”的Computed列,其公式相当于'[Created] + 7 days'。然后在View的过滤器中使用计算列。让我们知道这是否有效或这带来了什么问题!
答案 2 :(得分:1)
在视图中,修改当前视图或创建新视图并进行过滤器更改,选择单选按钮"仅当以下内容为真时显示项目",在以下列中键入" ;创建"在下一个下拉列表中,选择"小于"并填写下一栏[今天] -7。
关键字[今天]表示计算的当前日期,此视图将根据您的要求显示
答案 3 :(得分:1)
关于使用TODAY(或列中的任何计算)的警告。
如果你设置了一个过滤器并且只是[今天]它就可以了。
但是,当您执行类似[今天] -1的操作时......在尝试选择警报时,视图将不再显示。
另一个微软奇迹。
答案 4 :(得分:-2)
在$ viewQuery属性中按照下面提到的值传递今天:
$web = Get-SPWeb "http://sitename"
$list = $web.Lists.TryGetList($listtitle)
write-host "Exporting '$($list.Title)' data from '$($web.Title)' site.."
$viewTitle = "Program Events" #Title property
#Add the column names from the ViewField property to a string collection
$viewFields = New-Object System.Collections.Specialized.StringCollection
$viewFields.Add("Event Date") > $null
$viewFields.Add("Title") > $null
#Query property
$viewQuery = "<Where><Geq><FieldRef Name='EventDate' /><Value IncludeTimeValue='TRUE' Type='DateTime'><Today/></Value></Geq></Where><OrderBy><FieldRef Name='EventDate' Ascending='True' /></OrderBy>"
#RowLimit property
$viewRowLimit = 30
#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()