0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
1

Не понятный глюк Embeddedobjects

12.09.2010, 14:57. Показов 25531. Ответов 19
Метки нет (Все метки)

Всем привет!
Вот столкнулся с каким приколом. Есть документ с приатаченным файлом. файл обрабатываю вот так (грубо говоря)

LotusScript
1
2
3
4
5
6
7
 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
В чем может быть прикол?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.09.2010, 14:57
Ответы с готовыми решениями:

Embeddedobjects
Господа, столкнулся с непонятной фигней. Есть форма в ней два ричтекстовых поля для аттачментов....

Глючит Rtitem.embeddedobjects
Есть стандартная процедура по выдергиванию имен файлов из RT поля Dim abody As Variant Set...

Isempty (rtitem.embeddedobjects) врет
не знаю почему но IsEmpty (rtitem.EmbeddedObjects) врет всегда возращает TRUE хотя rtitem...

Передача Embeddedobjects Из Дока В Док
Всем Доброго дня, встала такая задачка, есть письмо надо сделать операцию, которая бы брала все...

19
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
12.09.2010, 15:08 2
Вообще-то не глюк, а фича. ртфм.
Unlike the EmbeddedObjects property in NotesRichTextItem, thys property does not include file attachments
0
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
12.09.2010, 16:45 3
NickProstoNick
через @AttachNames... надо
0
0 / 0 / 0
Регистрация: 12.10.2007
Сообщений: 522
12.09.2010, 16:52 4
А через RT не подойдет?

Set rtdoc=doc.GetFirstItem("Files")
If ( rtdoc.Type = RICHTEXT ) Then
If Not Isempty(rtdoc.EmbeddedObjects) Then
Forall object In rtdoc.EmbeddedObjects
If (object.Type = EMBED_ATTACHMENT ) Then
filepath =Environ("Temp")+"\"+Cstr(Object.Name)
Call object.ExtractFile(filepath)
0
0 / 0 / 0
Регистрация: 15.05.2009
Сообщений: 1,454
12.09.2010, 17:19 5
рт не учитывает приаттаченные не к рт, а напрямую к доку аттачи (через веб, например)
0
0 / 0 / 0
Регистрация: 12.10.2007
Сообщений: 522
12.09.2010, 17:42 6
Цитата Сообщение от OKEN
рт не учитывает приаттаченные не к рт, а напрямую к доку аттачи (через веб, например)
А если по всем полям $FILE пробежаться?
0
0 / 0 / 0
Регистрация: 15.05.2009
Сообщений: 1,454
12.09.2010, 17:45 7
и как вы это себе представляете - форалл?
0
0 / 0 / 0
Регистрация: 12.10.2007
Сообщений: 522
12.09.2010, 17:51 8
Цитата Сообщение от OKEN
и как вы это себе представляете - форалл?
Перевод от Google:
Если несколько элементов в документе, имеют те же названия, программный доступ ограничен первого дня. Остальные пункты повестки дня выхода неверные данные. Обойти это, чтобы получить первый элемент, а обработать его, удалите его, снова получить первый пункт (который был второй пункт), и так далее, пока вы не обрабатывать все элементы с таким же названием. Если вы не сохраните этот документ, пунктов на самом деле не удаляется. Тем не менее, эта рекомендация является то, что избежать создания нескольких объектов с тем же именем.
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
12.09.2010, 18:07 9
ToxaRat
точна, и кот здеся был
0
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
12.09.2010, 19:03 10
susinmn
Можно... пробовал... только вот какой прикол еще обнаружился.
Поле Body какое-то кривое... без флага Summary. :unsure:
Документы попадают в базу в виде сообщений через SMTP... после обрабатываются.
0
0 / 0 / 0
Регистрация: 07.02.2010
Сообщений: 1,063
12.09.2010, 20:19 11
А так разве не сработает? Могу ошибавться, давно дело было:


LotusScript
1
2
3
4
5
6
7
8
9
10
Dim doc As NotesDocument
Dim neo As NotesEmbeddedObject
....
forall it in doc.items
if it.name = "$FILE" Then
forall n in it.values
Set neo = doc.GetAttachment(n)
Делаем что-то с аттачментом
end forall
end forall
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
13.09.2010, 09:19 12
Цитата Сообщение от NickProstoNick
susinmn
Можно... пробовал... только вот какой прикол еще обнаружился.
Поле Body какое-то кривое... без флага Summary. :unsure:
Ну как бы так и должно быть.
0
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
13.09.2010, 10:22 13
Цитата Сообщение от Medevic
Ну как бы так и должно быть.
Да... прошу прощения... тупанул
0
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
13.09.2010, 10:37 14
такая конструкция тоже не работает

LotusScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    If ( body.Type = RICHTEXT ) Then
ForAll o In body.EmbeddedObjects
 
If ( o.Type = EMBED_ATTACHMENT ) Then
 
......
 
Call o.Remove
 
End If
 
End ForAll
 
End If
Medevic и тут дело не в том что это аттач! body.EmbeddedObjects должно вернуть объект или Nothyng, а не ругаться на несоответствие типов
0
0 / 0 / 0
Регистрация: 19.04.2009
Сообщений: 2,219
13.09.2010, 10:43 15
NickProstoNick
Может вместо Forall пройтись обычным циклом For i = 0 To Ubound(body.EmbeddedObjects)? Кстати, а что говорит проверка IsArray(body.EmbeddedObjects)?
0
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
13.09.2010, 11:02 16
Цитата Сообщение от nvy
NickProstoNick
Может вместо Forall пройтись обычным циклом For i = 0 To Ubound(body.EmbeddedObjects)? Кстати, а что говорит проверка IsArray(body.EmbeddedObjects)?
вопрос решился так

LotusScript
1
2
3
4
5
6
7
Forall it In Doc.Items
If it.name = "$FILE" Then
filename = it.values(0)
Set f= Doc.GetAttachment( fileName )
Call f.ExtractFile(strFileLocation & f.Source)
End If
End Forall
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
13.09.2010, 11:05 17
Цитата Сообщение от NickProstoNick
Medevic и тут дело не в том что это аттач! body.EmbeddedObjects должно вернуть объект или Nothyng, а не ругаться на несоответствие типов
Не должно. EmbeddedObjects возвращает Empty. Отсюда несоответствие типов. И проверять надо соответственно isEmpty.
0
0 / 0 / 0
Регистрация: 15.05.2009
Сообщений: 1,454
13.09.2010, 11:11 18
таки Forall в итоге вышел ))
кста, насчет проверки isEmpty указывала в теме http:///ipb.html?s=&sh...st&p=177565
А почему нельзя было эвалюейтить @attachmentNames?
0
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
13.09.2010, 12:10 19
OKEN


А почему нельзя было эвалюейтить @attachmentNames
подожди, пусть намучаются, я им это с самого начала написал, можа вдруг кто-то найдёт еще действенный метод кроме этого одного
0
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
13.09.2010, 12:52 20
Мыш
Дякую... только сейчас прочел сообщения
Всем спасибо
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.09.2010, 12:52

Не понятный глюк с cout
Дня доброго Есть небольшая програмулина #include<iostream> #include<string> #include<iomanip>...

AVR студия не понятный глюк
Доброго времени суток!!! Во время отладки в авр студии, не переходит желтый курсор на обработку...

Не понятный глюк библиотеки VCL
На скрине гога по непонятому глюку библиотеки VCL. Как с ним бороться?

Не понятный глюк вызова перегруженной функции
void f (std::wfstream&, bool, const char*, size_t , size_t); void f (std::wfstream&, int, const...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.