我需要创建一个视图,该视图将逐月自动更改以仅显示当前月份(即,如果当前月份是 7 月 - 显示 7 月份发布的项目)。目前我设置了一个视图,但是每次更改时我都必须手动更改月份(它是根据当月的第一天和当月的最后一天设置的)。
谢谢
我需要创建一个视图,该视图将逐月自动更改以仅显示当前月份(即,如果当前月份是 7 月 - 显示 7 月份发布的项目)。目前我设置了一个视图,但是每次更改时我都必须手动更改月份(它是根据当月的第一天和当月的最后一天设置的)。
谢谢
你可以通过把问题转过来来做到这一点。
首先,您需要添加两个计算列,它们将计算出月初和月底。(此示例使用 [Due Date] 但您可以使用任何日期/时间列)
"Start of Month" =DATE(YEAR([Due Date]), MONTH([Due Date]), 1)
"End of Month" =DATE(YEAR([Due Date]), MONTH([Due Date])+1,1)-1
然后你在你的视图中设置一个过滤器
"Start of Month" is less than or equal to [Today]
AND
"End of Month" is greater than or equal to [Today]
创建一个 CC“NextMonth”,为您的日期添加一个月 =DATE(YEAR(Modified),MONTH(Modified)+1,"1")
使用此过滤器创建视图“ThisMonth”
"NextMonth" 大于 [Today]
这将始终返回当前月份。也可以与年份关联,返回当前年份
创建一个 CC“NextYear”,为您的日期添加一年 =DATE(YEAR(Modified)+1,MONTH(Modified),"1")
使用此过滤器创建视图“ThisYear”
"NextYear" 大于 [Today]
现在的诀窍是返回上个月的视图。让我知道你是否解决了这个问题
我相信没有开箱即用的解决方案。一个技巧可以是在默认视图中编写代码,该代码实际上会为您设置月份或重定向到任何其他视图。就像是
SPWeb web = SPContext.Current.Web;
string[] monthViewUrls = { "url1", "url2", ... };
string currentMonthUrl = monthViewUrls[DateTime.Now.Month-1];
Response.Redirect(currentMonthUrl );
希望这可以帮助。
你能忍受日历视图吗?默认情况下显示当前月份。也许您可以从它开始并尝试在 SPD 中对其进行自定义 - 它可能会保留其当前月份的行为。
上个月开始 =DATE(YEAR(Created),MONTH(Created)-1,"1")
上个月月底 =DATE(YEAR(Created),MONTH(Created),-1)