前些日子拿到的《Microsoft SharePoint 2007 Development Unleashed》这本书,今天得有时间仔细阅读,看这书的名字就能猜得出是讲MOSS的开发。
把章节中的要点放到这里,值当是做些总结和标记了--俗称读书笔记。
CAML的定义和使用范围就不在这里多做介绍了,具体还是要去看SDK了。
记下几个要点,这章就算没白看。(有些知识点是从SDK中找出来的。)
1.格式
1<Query>
2 <Where>
3 <And>
4 <Lt>
5 <FieldRef Name="Start_x0020_Date" />
6 <Value Type="DateTime">2003-01-01T00:00:00Z</Value>
7 </Lt>
8 <Gt>
9 <FieldRef Name="Salary" />
10 <Value Type="Currency">80000</Value>
11 </Gt>
12 </And>
13 </Where>
14
15 <OrderBy>
16 <FieldRef Name="Title" />
17 <FieldRef Name="Start_x0020_Date" Ascending="FALSE" />
18 </OrderBy>
19
20 <GroupBy>
21 <FieldRef Name="" />
22 </GroupBy>
23</Query>
2.<OrderBy>中的Ascending属性默认值是"True",可不写。
3.从上面的代码片段里可以找到字段Start_x0020_Date,这个应该是SPField.InternalName,所以这个栏名(显示名称)应该是"Start Date",它的内部名称是"Start_x0020_Date"。帮我们可知CAML所涉及的栏名(字段名)都使用的是内部名称。为了以后我们在写CAML时不那么费事,提议先建个英文名称(起名时最好不要有空格,而且最好就是26个字母,已经不想费事了为什么不整成最省事的呢?),再修改成中文,这样显示名称是中文了,内部名称还是那个英文名称,为什么会这样呢?这个规律在SharePoint中是很常见的,还在什么地方出现过呢?
4.日期元素:<Now/>,<Today>,<Week>,这紧Element是可以用在Query中的。
在章节最后还介绍了非常有名的工具 U2U CAML Query Builder ,下载地址:http://www.u2u.info/SharePoint/U2U%20Community%20Tools/Forms/AllItems.aspx。