Frage

Ich möchte alle Artikel an einem bestimmten Tag abholen.Programmgesteuert wird der Eintrag als wiederkehrendes Ereignis hinzugefügt. Jetzt muss ich alle Instanzen wiederkehrender Ereignisse an jedem Tag gemäß dem vom Benutzer ausgewählten Datum abrufen.

Z.B:Ich habe am 12. September drei wiederkehrende Einträge vorgenommen, die am 21. September enden, wobei alle drei unterschiedliche Einträge haben TIME und ein separates ROOM NAME Calendar

Ich möchte alle Artikel am 12., 13., 14. usw. bis zum 21. abholen, je nach ausgewähltem Datum.

Das Folgende ist der Code, mit dem ich arbeite, um alle Einträge an einem ausgewählten Tag abzurufen. Das Problem, das ich hier habe, ist jedoch: Die Abfrage gibt nur Elemente zurück, wenn ich als Datum den 12. September auswähle und für alle Bei anderen Daten, z. B. vom 13. bis zum 21., gibt die Abfrage kein Ergebnis zurück.

    SPQuery oQueryBookings = new SPQuery();

                            string strQuery = "";
                            oQueryBookings.ExpandRecurrence = true;
                            //oQueryBookings.Query = strQuery;
                            oQueryBookings.CalendarDate = date.Date;
                            SPListItemCollection oCollBookings = null;
                            strQuery = "<Where><And><DateRangesOverlap><FieldRef Name='EventDate' />" +
                            "<FieldRef Name='EndDate' />" +
                                       "<FieldRef Name='RecurrenceID'/>" +
                                       "<Value Type='DateTime'>" +
                                       "<Today />" +
                                       "</Value>" +
                                      "</DateRangesOverlap>" +
                                      "<Eq><FieldRef Name='Room' /><Value Type='Lookup'>" + room + "</Value></Eq>" +
                                      "</And></Where>";

oQueryBookings.ViewFields = string.Concat("<FieldRef Name='Title' />" +
                    "<FieldRef Name='EventDate' />" +
                    "<FieldRef Name='EndDate' />" +
                    "<FieldRef Name='Location' />" +
                    "<FieldRef Name='Description' />" +
                    "<FieldRef Name='fRecurrence' />" +
                    "<FieldRef Name='RecurrenceData' />" +
                    "<FieldRef Name='fAllDayEvent' />" +
                    "<FieldRef Name='LinkTitle'/>" +
                    "<FieldRef Name='Room'/>");

                            oQueryBookings.Query = strQuery;
                            oCollBookings = list.GetItems(oQueryBookings);
                            if (oCollBookings.Count > 0)
                            {
                               //Code Here
                            }
War es hilfreich?

Lösung

Das Problem bestand darin, das zu speichern EndDate Sobald das Enddatum gespeichert wurde, werden die Einträge korrekt abgerufen ExpandRecurrence Und CalendarDate

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top