VSTO Outlook Надстройка: Как проверить, какая кнопка-переключатель отмечена в окне повторения? - PullRequest
0 голосов
/ 31 мая 2018

У меня есть надстройка Outlook VSTO, и мне нужно собрать все элементы календаря и задач со всеми их свойствами.Это нормально, но проблема возникает, когда я использую RecurrencePattern.Он работает очень хорошо и возвращает почти все свойства, которые мне нужны, кроме одного.

В форме «Диапазон повторения» пользователь может выбрать, как долго продолжать свою задачу, когда он выбирает переключатели дерева.

  • Нет даты окончания
  • Конец после: 3 (например) вхождения
  • Конец: некоторая дата

RecurrencePattern имеет логическое свойство только для первого - нет даты окончания.

Когда первое радио не помечено, мне нужно понять, какое из второго или третьего помечено, но RecurrencePattern не имеет свойства для них.Он возвращает количество вхождений и дату окончания, но мне нужна кнопка-переключатель.

Мне интересно, могу ли я иметь событие на этих переключателях или я могу использовать их логические свойства каким-либо другим способом, но я ничего не могу найти по этому поводу.

Не знаюиспользовать ленту или другую форму, и мне не нужно использовать ее в этом случае.

Мой Outlook - 2016, а .net framework - 4.6.1.

Спасибо за любую помощь!

Ответы [ 2 ]

0 голосов
/ 01 июня 2018
  1. См. NoEndDate .

  2. Похоже, вы заинтересованы в свойстве Вхождений RecurrencePatternкласс, который возвращает Long, указывающий количество вхождений шаблона повторения.Это свойство позволяет определить шаблон повторения, который действителен только для указанного числа последующих вхождений.Например, вы можете установить это свойство равным 10 для официального учебного курса, который будет проводиться в следующие десять вечеров четверга.Это свойство должно быть согласовано с другими свойствами при настройке шаблона повторения.Если установлено свойство PatternEndDate или свойство Occurrences, шаблон считается конечным, а свойство NoEndDate имеет значение False.Если не установлены ни PatternEndDate, ни Occurrences, шаблон считается бесконечным, а NoEndDate имеет значение True.

  3. Свойство PatternEndDate RecurrencePatternКласс возвращает дату, указывающую дату окончания для шаблона повторения.Это свойство является необязательным, но должно быть согласовано с другими свойствами при настройке шаблона повторения.Если установлено это свойство или свойство Occurferences, шаблон считается конечным, а свойство NoEndDate имеет значение False.Если не установлено ни PatternEndDate, ни вхождений, шаблон считается бесконечным, а NoEndDate имеет значение True.Свойство Interval должно быть установлено до установки PatternEndDate.

0 голосов
/ 31 мая 2018

По какой-то необъяснимой причине объектная модель Outlook не предоставляет эту информацию.Вы можете либо проанализировать блоб шаблона повторения самостоятельно (его формат задокументирован , но разбирать не интересно), либо вы можете использовать Redemption и RDORecurrencePattern .PatternEndKind собственность.Если в Outlook выбрана повторяющаяся встреча:

  set Session = CreateObject("Redemption.RDOSession")
  Session.MAPIOBJECT = Application.Session.MAPIOBJECT
  set appt = Session.GetMessageFromID(Application.ActiveExplorer.Selection(1).EntryID)
  strPattern = "Not recurring"
  if appt.IsRecurring Then
    set pattern = appt.GetRecurrencePattern
    select case pattern.PatternEndKind
      case 0 strPattern = "No end date"  'rekNoEndDate
      case 1 strPattern = "End after X occurrences"  'rekEndAfterOccurrences
      case 2 strPattern = "End by date"  'rekEndByDate
    end select
  End If
  MsgBox strPattern
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...