zoukankan      html  css  js  c++  java
  • 学习:How To Use Filters in SharePoint to show items in the current Calendar Month(转)

     

    Its very easy using the Filter feature of SharePoint views to show only items completed in the last 30 days or items due in the next X days; for example :-

    Completed >= [Today]-30

    On the Advanced SharePoint View and Filter techniques post Ed asked how you could filter for the current calendar month rather than a rolling 30 day period (for example all tasks due this calendar month).

    Like all great questions it seemed simple enough – something like only showing items where the Month and Year of the due date = the Month and Year of the current date.

    Alas, we can’t use [Today] in calculated columns and we can’t use functions like Month([Due Date]) in the filter – so this approach will not work.

    The solution is to turn this on its head – its a bit weird, so bear with me!

    We need to have two calculated fields, one showing the first day of the month that the due date is in and one showing the last day of the month that the due date is in.

    We can then use the filter to show only records where

    [Today] >= First Day Of Month

    AND

    [Today] <= Last Day Of Month

    So looking at this in graphical form we have :

    Timeline

    • In this diagram the current date is 15th Nov (the orange dotted line).
    • Task 1 & 2 should be shown if the current date [Today] is in between the first and the last day of November (the blue line)
    • Task 3 will not be shown until [Today] is between the first and the last day of December (the blue line)

    To put this into SharePoint open your list, click Settings > List settings > Create Column and setup the following two columns.

     

    • The first column will be called something like Start of Month
    • Set the column type to Calculated and the data type to Date only
    • Uncheck the ‘Add to default view’ button as we want these columns to stay behind the scenes
    • The Start of Month column formula should be

        =DATE(YEAR([Due Date]), MONTH([Due Date]), 1)

     

    • The End of Month formula :-

        =DATE(YEAR([Due Date]), MONTH([Due Date])+1,1)-1

     

        (Which is the first day of next month - 1)

    View a few records to check the formula is working OK and you see the correct dates.

    Now create a new view, call it something like “Due This Month” and setup the filter for

    Start of Month is less than or equal to [Today]

     AND

    End of Month is greater than or equal to [Today]

    Further tips

    You can use this with date fields other than [Due Date] – e.g. [Created] for items created in the current month, [Modified] for items well… urm… modified in the current month!

    Using the same technique you can also use the following formula

    The current week (Sunday to Saturday inclusive)

     Start Week =[Due Date] - WEEKDAY([Due Date]) +1

     End Week   =[Due Date] +7 - WEEKDAY([Due Date])

    The previous month

     Start Month =DATE(YEAR([Due Date]), MONTH([Due Date])+1, 1)

     End Month   =DATE(YEAR([Due Date]), MONTH([Due Date])+2,1)-1

    The next month

     Start Month =DATE(YEAR([Due Date]), MONTH([Due Date])-1, 1)

     End Month   =DATE(YEAR([Due Date]), MONTH([Due Date]),1)-1

     

    The current year

     Start Year =DATE(YEAR([Due Date]),1,1)

     End Year   =DATE(YEAR([Due Date]),12,31)

     

    Edit

    I should make clear that this technique will not work correctly on Event lists with recurring event as SharePoint only records the start time of the first event, not each occurrence in the series.

    References

    Come from:

     http://blog.pentalogic.net/2009/11/howto-filter-items-current-calendar-month-view-sharepoint/

     

  • 相关阅读:
    首页调单个产品分类的推荐产品,最新产品和热卖商品
    ecshop模板<! TemplateBeginEditable name="左上角主区域" >用法
    复制DataTable数据到新DataTable
    定时任务时间与当前时间比较的方法
    批量删除文件夹下包含指定字段的文件
    SQL 字符串去除空格函数
    Javascript的IE和Firefox(火狐)兼容性的常用例子
    查询表某列的加权平均值
    Jquery实现页面定时跳转
    Date.parse Firefox返回Nan的解决办法
  • 原文地址:https://www.cnblogs.com/LeimOO/p/2064367.html
Copyright © 2011-2022 走看看