문제

나는 달력 목록에 반복되는 항목을 저장하기 위해 다음 코드를 수행했습니다. Bookings.

    SPSite site = new SPSite(SPContext.Current.Web.Url);
    using (SPWeb web = site.OpenWeb())
    {
        SPList list = web.Lists["Bookings"];
        SPListItem recEvent = list.Items.Add();
        try
        {
            recEvent["EventDate"] = startdate;//11/09/2012 08:00:00
            recEvent["EndDate"] = enddate;//11/09/2012 08:30:00
            recEvent["Booking_x0020_Title"] = Convert.ToString(txtTitle.Text);
            recEvent["Title"] = Convert.ToString(txtTitle.Text);
            recEvent["RecurrenceData"] = Recur_Xml.ToString();//ReccurrenceRule
            recEvent["fRecurrence"] = "True";
            recEvent["EventType"] = 1;
            recEvent["UID"] = System.Guid.NewGuid();
            recEvent["TimeZone"] = 0;
            recEvent["Recurrence"] = -1;
            recEvent["XMLTZone"] = "<timeZoneRule><standardBias>-330</standardBias><additionalDaylightBias>-60</additionalDaylightBias></timeZoneRule>";

            recEvent.Update();
        }
        catch (Exception er)
        {

        }

반복 규칙을 사용하여 위의 내용을 다음과 같이 저장하면 Repeat every 1 day for 10 occurences 항목이 올바르게 저장되고 현재 이벤트 보기에 모든 인스턴스가 표시되지만 반복 항목을 가져오는 동안 시작 날짜에 단 1개의 결과만 표시됩니다.다음은 반복 값을 검색하는 코드입니다.

SPWeb oWeb = SPContext.Current.Web;
                SPList oListBookings = oWeb.Lists.TryGetList("Bookings");
SPQuery oQueryBookings = new SPQuery();

                            string strQuery = "";
    strQuery = @"<Where><DateRangesOverlap><FieldRef Name='EventDate' /><FieldRef Name='EndDate' /><FieldRef Name='RecurrenceID' /><Value Type='DateTime'><Today /></Value></DateRangesOverlap></Where>";
                            oQueryBookings.ExpandRecurrence = true;
                            oQueryBookings.Query = strQuery;
                            oQueryBookings.CalendarDate = date;
    SPListItemCollection oCollBookings = oListBookings.GetItems(oQueryBookings);

결과는 다음 경우에만 표시됩니다. oQueryBookings.CalendarDate = date; 같음 11/09/2012 08:00:00 해당 날짜까지 인스턴스가 존재하는 경우에도 그 이후 날짜에 대한 항목은 반환되지 않습니다. 19/09/2012 08:00:00

내가 설정한 경우 쿼리는 모든 항목을 반환합니다. recEvent["EndDate"] 에게 19/09/2012 08:00:00 항목을 저장하는 동안.사용자 양식에서 반복 항목의 종료 날짜를 같은 날로 설정하고 싶습니다(no user would want to calculate the last date of his occurence for recurring pattern with no end date) 저장 시 자동 계산되어야 합니다. 어떻게 그게 가능합니까?

Sharepont UI를 사용하여 항목을 작성하면 이 종료 날짜가 같은 날짜로 설정되어 있고 반복 항목인 경우에도 자동 계산됩니다.

내가 어디로 잘못 가고 있는지 안내해주십시오.저장하는 동안인가요, 아니면 기록을 가져오는 동안인가요?아니면 그 때문인가? EndDate 은(는) 날짜와 같습니다 StartDate?친절하게 도와주세요.

도움이 되었습니까?

해결책

문제는 시작 날짜와 종료 날짜가 같은 날이기 때문에 발생했습니다.맞춤형 코드 프로젝트의 코드 반복 패턴에 따라 종료 날짜를 계산합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 sharepoint.stackexchange
scroll top