G
George1979
Передо мной была поставлена задача присоединения файлов к документу.
Я это сделал с помощью @Command [EditInsertFileAttachment].
В списке документов столбцу прописываю Simple Function
[Attachment Names].
Все работает правильно. Но когда присоединяется дважды один и
тот же файл, на форме все отображается нормально, а в списке документов
пишется какая-то билиберда: ATTT8VBQ, ATT7DQGJ.
Посмотрел Help по EditInsertFileAttachment не нашел ничего нужного.
Решил программно перебрать все уже присоединенные файлы. И если
встречается повтор, то отменить присоединение.
Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document
If doc.HasEmbedded Then
Forall o In doc.EmbeddedObjects
Messagebox( o.Name )
End Forall
Else
Messagebox "No embedded objects found"
End If
Но на строчке 'Forall o In doc.EmbeddedObjects' вылетает ошибка
"Type mismatch".
Еще попробовал считать имена файлов через поле $FILE.
Forall item In doc.Items
If item.Name = "$FILE" Then
Forall v In item.Values
If Cstr(v) = FileName2 Then
Messagebox "Файл с именем "+v+" уже присоединен к документу"
End If
End Forall
End if
End forall
Если документ сохранен, то работает правильно.
Но если не сохранен, то всегда возвращает имя первого присоединенного
файла. Т.е. если имя 1-го присоединенного файла, допустим, eulo.doc,
2-го otgul.doc и т.д. то возвращает каждый раз eulo.doc.
Я это сделал с помощью @Command [EditInsertFileAttachment].
В списке документов столбцу прописываю Simple Function
[Attachment Names].
Все работает правильно. Но когда присоединяется дважды один и
тот же файл, на форме все отображается нормально, а в списке документов
пишется какая-то билиберда: ATTT8VBQ, ATT7DQGJ.
Посмотрел Help по EditInsertFileAttachment не нашел ничего нужного.
Решил программно перебрать все уже присоединенные файлы. И если
встречается повтор, то отменить присоединение.
Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document
If doc.HasEmbedded Then
Forall o In doc.EmbeddedObjects
Messagebox( o.Name )
End Forall
Else
Messagebox "No embedded objects found"
End If
Но на строчке 'Forall o In doc.EmbeddedObjects' вылетает ошибка
"Type mismatch".
Еще попробовал считать имена файлов через поле $FILE.
Forall item In doc.Items
If item.Name = "$FILE" Then
Forall v In item.Values
If Cstr(v) = FileName2 Then
Messagebox "Файл с именем "+v+" уже присоединен к документу"
End If
End Forall
End if
End forall
Если документ сохранен, то работает правильно.
Но если не сохранен, то всегда возвращает имя первого присоединенного
файла. Т.е. если имя 1-го присоединенного файла, допустим, eulo.doc,
2-го otgul.doc и т.д. то возвращает каждый раз eulo.doc.