我正在开发SharePoint托管的应用程序,以计算同一网站集下多个列表的值。我得查一下名字相似的名单。
例如:根站点:
/dev
子网站:
/dev/site1
/dev/site2
两个站点1&站点2具有名为"时间表"的列表
考虑用户1&用户2。每个用户都可以访问这两个子站点。他们更新了两个网站的时间表。
我需要的是我必须计算来自站点1&站点2,然后添加它,然后将它存储到根站点列表(单独的列表)。
此外,我必须仅根据用户筛选值。
例如:在站点1>时间表中-我必须计算当前用户创建的项目,在站点2>时间表中-计算当前用户所创建的项目并将其存储到根站点。
我正在使用caml查询来检索值。但我不知道如何通过caml查询根据当前用户进行过滤。
我的代码
var TimesheetList01 = web01.get_lists().getByTitle('Timesheet');
var camlQuery01 = new SP.CamlQuery();
camlQuery01.set_viewXml("<View><Query><Where></Where></Query></View>");
this.collListItem01 = TimesheetList01.getItems(camlQuery01);
currentcontext01.load(collListItem01, 'Include(Id,LoggedHours)');
currentcontext01.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
function onQuerySucceeded(sender, args) {
var mysum01 = 0;
var myloggedHours01 = 0;
var listItemInfo01 = '';
var listItemEnumerator011 = collListItem01.getEnumerator();
while (listItemEnumerator011.moveNext()) {
var oListItem01 = listItemEnumerator011.get_current();
myloggedHours01 = oListItem01.get_item('LoggedHours');
mysum01 = mysum01 + myloggedHours01;`
请帮忙。
谢谢,Arun
我会更新CAML查询中的Where
以包含(其中"Author"将是您要筛选的People字段的内部名称):
<Where>
<Eq>
<FieldRef Name='Author' />
<Value Type='Integer'>
<UserID />
</Value>
</Eq>
</Where>
UserID
将解析为当前用户的UserID。