2013-06-05 2 views
1

주어진 날짜의 30 일 이내에 예약 된 캘린더에서 모든 목록 항목을 가져 오려고합니다. webservice를 사용하는 Sharepoint 캘린더의 모든 이벤트

  ndQueryOptions.InnerXml = "<ExpandRecurrence>TRUE</ExpandRecurrence>"; 
      ndQueryOptions.InnerXml += "<CalendarDate>" + calendarDate + "</CalendarDate>"; 
      ndQueryOptions.InnerXml += "<ViewAttributes Scope=\"RecursiveAll\" />"; 

      ndQuery.InnerXml = @"<Where><DateRangesOverlap><FieldRef Name=""EventDate"" /><FieldRef Name=""EndDate"" /><FieldRef Name=""RecurrenceID"" /><Value Type=""DateTime""><Now /></Value></DateRangesOverlap></Where><OrderBy><FieldRef Name=""EventDate"" /></OrderBy>"; 

은 그 때 나는 날짜 범위 내에서 데이터를 얻을 수있는 데이터를 마사지.

주어진 날짜가 특정 범위 내에 있으면 작동하는 것 같습니다. 예를 들어 매주 수요일과 금요일에 이벤트가 있습니다. 2013 년 6 월 5 일이면 지금부터 2013 년 9 월 13 일까지 데이터를 반환합니다. 2 일 (2014 년 4 월 5 일 이전 또는 1014 년 10 월 1 일과 같은 더 늦은 날짜)이 아닌 다른 검색어 (지정된 날짜)는 기간 사이에 이벤트를 반환하지 않습니다.

업데이트

: 내가 <Now />에서 <Value Type=""DateTime""><Year /></Value>을 변경, 결과는 몇 가지 역사적 데이터를 반환 않습니다 더 나은,하지만 작년에,도 내년이다.

업데이트

: 나는 그것은 단지 재발 이벤트에 대한 하나 개의 노드를 반환하는 대신 그들을 펼쳐 그래서는 DateRangesOverlap 부분을 놓친, 더글러스의 제안을 따랐다. 그래서 나는 그것이 효과 있다고 생각하지 않는다.

업데이트 :은 내가 DateRangesOverlap에 대한 값 유형을 설명하는 기사를 발견했다. Here<Year />이 오늘부터 만 데이터를 반환하며 캘린더 날짜 (내가 원했던 시작 날짜)와 작동하지 않는다는 것을 확인합니다. 이 기사에 따르면 <Month />이 더 안정적입니다. 그래서 나는 (적어도 단일 웹 서비스 호출 내에서) 날짜 범위 검색을 할 수 없다. 대신 <Month />을 사용하겠습니다.

답변

0

당신은 시도 다음 쿼리 문자열을 가질 수 있습니다

<Where><And><Leq><FieldRef Name='EventDate' /><Value Type='DateTime'>...</Value></Leq><Geq><FieldRef Name='EndDate' /><Value Type='DateTime'>...</Value></Geq></And></Where> 

을이 2013-06-01T00:00:00 같은 형식으로 시작 날짜와 종료 날짜의 값을 지정합니다.

+0

내가 넣어'문자열 ndQueryString = 및 String.format (@ "<" "EVENTDATE =의 FieldRef 이름" "/><값 유형 =" "날짜 시간" "> {0}<의 FieldRef 이름 =" "EndDate" "/> {1}"startDay, lastDay);'startDay 및 last day는 DateTime 필드입니다. 그것은 아무것도 반환하지 않습니다. – user1541389

+0

수정, 위에서 언급 한 형식으로 startDay 및 lastDay를 변경했지만 데이터를 가져 오기 시작했지만 반복되는 이벤트에 대한 이벤트를 매일 처리했습니다. 나는 그 데이터를 마사지하는 나의 방법을 바꿀 필요가 있다고 생각한다. – user1541389

+0

안녕하세요 더글러스, 나는 그것이' ...을 그리워하기 때문에 이것이 작동하지 않는다고 생각합니다. 그래서 반복되는 이벤트를 전개하지 않습니다. – user1541389

관련 문제