2

I want to create a view for a calendar. The view must display only currently running events.

Right now, I can create a view that filter on for daily event : I currently filter events with Start Date <= [Today] AND End Date >= [Today].

If this was MS Access, I'd do Start Date <= [Now] AND End Date >= [Now], but [Now] doesn't exist in MOSS 2007...

How could I filter my events on an (at least) hourly basis?

Sidenote : This list is used to have a quick look at currently running maintenances for a list of servers. Alternative solution are welcome.

2 Answers 2

1

The [Today] filter is not getting you what you want? You might need to add an additional filter like Status does not equal Complete or Statusequals In Progress to weed out other data.

If you have access to Sharepoint Designer, you can use your own CAML or use other XSLT filters to get more precise than [Today].

You could also utilize jQuery to do client side filtering or roll your own display utilizing SPServices where you have control over the CAML.

2
  • No, [Today] is not enough. I don't want a red flag to be raised for the whole day when there's a maintenance during the morning only (example). I also do not want to have to update a Status field to update manually. I'm not sure I can get access to SP Designer, I'll ask. Finally, I doubt I can use jQuery since the list is used in another webpart...
    – Kraz
    Commented Jun 13, 2011 at 14:54
  • +1 Since I had to toy with XSL filters to find a way to do it. I'll post the solution I went it.
    – Kraz
    Commented Jun 20, 2011 at 16:46
1

To allow myself to do that, I used the Custom Query WebPart.

In its webPart declaration, I used this property :

<property name="QueryOverride" type="string">
<![CDATA[
<Where>
    <And>
        <Leq>
            <FieldRef Name="EventDate" Nullable="False" Type="DateTime"/>
            <Value Type="DateTime" IncludeTimeValue="TRUE">
            <Today />
            </Value>
        </Leq>
        <Geq>
            <FieldRef Name="EndDate" Nullable="False" Type="DateTime"/>
            <Value Type="DateTime" IncludeTimeValue="TRUE">
            <Today />
            </Value>
        </Geq>
    </And>
</Where>
<OrderBy>
    <FieldRef Name="Systeme" Nullable="False" Type="Text" Ascending="True"/>
</OrderBy>
]]>
</property>

The key info is the IncludeTimeValue="TRUE" part.

Note: Do not put crlf or space between nodes.

After that, I had to design a custom view for the webpart...

This is not a filter on the calendar list (as I originally wanted). This seems to be impossible.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.