пятница, 16 марта 2012 г.

Добавление в письмо OutLook файлов в виде вложений

'Функция  AddFilesToLetter добавляет в письмо OutLook (применяется объектная модель Outlook) вложенные файлы из карточки в виде вложений

'UserSession - сессия пользователя
'CardData - объект данные карточки
'oMessage - объект типа MailItem из объектной модели Outlook

' Функция добавления в письмо файлов в виде вложений.
 Sub AddFilesToLetter(UserSession, CardData, oMessage)

' Создаем объект Scripting.FileSystemObject для получения временной папки
   Set oDiskSystem = CreateObject("Scripting.FileSystemObject")
' Получаем временную папку
   oTempFolder = oDiskSystem.GetSpecialFolder (2)

'Создаем объект вложения
   Set oMesAttach = oMessage.Attachments

   Set oFileListSection = GetFileListSection(UserSession, CardData)

'Получаем количество строк секции Файлы карточки Список файлов
   filesCount = oFileListSection.Rows.Count

   i = 0
'Заполняем письмо вложениями из карточки документа
   while i < filesCount
      oFileCardID = oFileListSection.Rows(i).Value("CardFileID")
      Set oFileCard = UserSession.CardManager.CardData(oFileCardID)
      oFileVersID = oFileCard.Sections(oFileCard.Type.Sections.GetByAlias("MainInfo").ID).FirstRow.Value("FileID")
      FileName = oFileCard.Sections(oFileCard.Type.Sections.GetByAlias("MainInfo").ID).FirstRow.Value("FileName")

      set oFileVersCard = UserSession.CardManager.CardData(oFileVersID)

      CurrentVersionID = oFileVersCard.Sections(oFileVersCard.Type.Sections.GetByAlias("MainInfo").ID).FirstRow.Value("CurrentID")
      FileID = oFileVersCard.Sections(oFileVersCard.Type.Sections.GetByalias("Versions").ID).GetRow(CurrentVersionID).Value("FileID")

      set oFile = UserSession.FileManager.File(FileID)

      FilePath = oTempFolder & "\" & FileName

      oFile.Download FilePath
      oMesAttach.Add FilePath

      oDiskSystem.DeleteFile FilePath
      i = i+1
   wEnd
End sub


'Функция для получения секции Файлы из карточки Список Файлов текущей карточки
Function GetFileListSection(UserSession, CardData)
' Получаем ID карточки Список Файлов по FilesID основной секции карточки исходящего
   oFilesID = CardData.Sections(CardData.Type.Sections.GetByAlias("MainInfo").ID).FirstRow.Value("FilesID")

' Получаем карточку Список Файлов по oFilesID
   Set oFileList = UserSession.CardManager.CardData(oFilesID)
' Получаем секцию Файлы из карточки Список Файлов
   Set GetFileListSection=oFileList.Sections(ID_SectionRefFiles)
End Function

Комментариев нет:

Отправить комментарий