Domanda

Ho fatto il seguente codice per salvare una registrazione periodica di Calendario Lista di nome 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)
        {

        }

Se salvo quanto sopra con la regola di Ricorrenza come Repeat every 1 day for 10 occurences che l'Elemento viene salvato correttamente e attualità mostra tutte le istanze, ma durante il recupero Ricorrenti voce ho solo 1 Risultato.e sulla Data di Inizio.Il seguente è il Codice per recuperare i ricorrenti valori:

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);

Il risultato è visualizzato solo se oQueryBookings.CalendarDate = date; uguale 11/09/2012 08:00:00 e non restituisce gli elementi per le Date dopo che anche quando le istanze sono presenti per queste date fino 19/09/2012 08:00:00

La query restituisce la voce di tutti se ho impostato il recEvent["EndDate"] per 19/09/2012 08:00:00 durante il salvataggio di un elemento.Voglio la Data per gli elementi ricorrenti essere impostata stesso giorno sul modulo utente (no user would want to calculate the last date of his occurence for recurring pattern with no end date) e dovrebbe essere autocalculated su salva.Come è possibile?

Se faccio la voce utilizzando sharepont UI di questo Termine è autocalculated anche se è impostato per lo stesso giorno e se la sua una registrazione periodica.

Si prega di guida dove sto andando di male?È durante il salvataggio o durante il recupero dei record?o è perché il EndDate è la stessa data StartDate?Gentilmente aiuto.

È stato utile?

Soluzione

Il problema era perché la Data di Inizio e Data di Fine erano lo stesso giorno.Personalizzati codice Codice Progetto per calcolare la data di fine del secondo modello ricorrente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top