'Функция 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
'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
Комментариев нет:
Отправить комментарий