In Blogs

I wanted to create a tailor made view of a list, using the first position in a calculated column to determine whether or not to place specific text in a cell. This calculated column A contains a status description of items in the list (1. Starting, 2. In Progress, …).

In case an item is in phase 1 or 2, I wanted to show a specific text in the first cell. I used Frontpage 2003 to edit the page and I set the filter options using the standard dialog to A contains 1 Or A contains 2.

I succesfully tested the page in Frontpage, saved the page and found out that I got a nasty message:

All other pages kept working though. Just this page refused to serve right.

I checked the CAML code:

<dsp:Where >http://schemas.microsoft.com/sharepoint/dsp”>

<dsp:Or>
<dsp:Contains>
<dsp:FieldRef Name=”A”/>
< dsp:Value Type=”xsd:string”>1.</dsp:Value>
</dsp:Contains>
<dsp:Contains>
<dsp:FieldRef Name=”A”/>
< dsp:Value Type=”xsd:string”>2.</dsp:Value>
</dsp:Contains>
</dsp:Or>
</dsp:Where>

And modified it to:
<dsp:Where >http://schemas.microsoft.com/sharepoint/dsp”>

<dsp:Contains>
<dsp:FieldRef Name=”A”/>
< dsp:Value Type=”xsd:string”>1.</dsp:Value>
</dsp:Contains>

< /dsp:Where>
to see if the OR clause would be causing the problem. Unfortunately, still same error.

Now I tried:
<dsp:Where >http://schemas.microsoft.com/sharepoint/dsp”>

<dsp:Eq>
<dsp:FieldRef Name=”A”/>
< dsp:Value Type=”xsd:string”>1. Starting</dsp:Value>
</dsp:Eq>
</dsp:Where>

This one worked. Would it be the Contains clause?

I checked with some other field:
<dsp:Where >http://schemas.microsoft.com/sharepoint/dsp”>

<dsp:Contains>
<dsp:FieldRef Name=”ID”/>
< dsp:Value Type=”xsd:string”>56</dsp:Value>
</dsp:Contains>

< /dsp:Where>
This one worked as well.

My conclusion is that you cannot use the Contains clause on a calculated column. Work around I used, was replacing Contains with Eq (Equals)

<dsp:Where >http://schemas.microsoft.com/sharepoint/dsp”>

<dsp:Or>
<dsp:Eq>
<dsp:FieldRef Name=”A”/>
< dsp:Value Type=”xsd:string”>1. Starting</dsp:Value>
</dsp:Eq>
<dsp:Eq>
<dsp:FieldRef Name=”A”/>
< dsp:Value Type=”xsd:string”>2. In Progress</dsp:Value>
</dsp:Eq>
</dsp:Or>
</dsp:Where>

 

Vul je zoekopdracht in.