2011-07-05 1 views
1

Je suis en train de jouer avec VSTO pour Outlook 2007.
Lorsque j'accède à des rendez-vous dans le calendrier, j'aimerais voir toutes les récurrences - pas seulement l'élément principal de la série.Outlook ne renvoie pas de rendez-vous récurrents

Mon code est le suivant

var calendarFolder = Globals.TestAddin.Application.GetNamespace("MAPI").GetDefaultFolder(OlDefaultFolders.olFolderCalendar); 
var outlookCalendarItems = calendarFolder.Items; 
outlookCalendarItems.IncludeRecurrences = includeRecurring; 

var appointmentItems = outlookCalendarItems.Cast<AppointmentItem>(); 
foreach (var appointmentItem in appointmentItems) 
{ 
    var item = appointmentItem; 
    this.LogBox.AppendText(item.Subject); 
} 

Il montre tous les articles normaux, tous les éléments série maître mais sans rendez-vous de la série calculées.
Exemple: il montre l'anniversaire de ma mère en octobre 1949 comme un article récurrent, mais aucun de ses anniversaires suivants en 1950, 1951 ... etc

Qu'est-ce que je fais mal?

Merci pour les idées!
Sascha

+0

Outlook programmation ne semble pas être très populaire - juste 16views dans 13 jours. :-( – Sascha

Répondre

2

L'ajout d'une seule ligne a fait:

outlookCalendarItems.Sort("[Start]"); 
0

En incluant récurrences sans « Rechercher » entre les dates, ce code a le potentiel de devenir une boucle éternelle. En effet, il créera un «rendez-vous» pour chaque occurrence qu'il peut trouver. S'il existe des éléments de calendrier récurrents qui n'ont pas de date de fin de récurrence définie, cette boucle continuera à créer des éléments de rendez-vous pour chaque occurrence (pour toujours).

Pour contourner ce problème, vous devez limiter les résultats que vous trouvez, voir ci-dessous comment limiter les résultats .:

http://msdn.microsoft.com/en-us/library/office/dd469461(v=office.12).aspx

Set currentAppointment = myAppointments.Find("[Start] >= """ & _ 
     tdystart & """ and [Start] <= """ & tdyend & """") 
Questions connexes