Удаление документа

  • Автор темы ivashkalotus
  • Дата начала
Статус
Закрыто для дальнейших ответов.
I

ivashkalotus

#1
Доброе утро, Лотусисты!

Возникла такая проблема, не могу нормально удалить документ из базы.

Код такой:
Код:
Sub Click(Source As Button)

Dim doc As NotesDocument
Dim docUI As NotesUIDocument	
Dim ws As New NotesUIWorkspace

Set docUICurr=ws.CurrentDocument
Set docCurr=docUICurr.Document

Call docUICurr.Close()
Call docUICurr.DeleteDocument()
End Sub
Такая штука только помечает документ на удаление.
После F9 все удаляется, но как "нажать" F9 программно?
Что то типа DB.Refresh() есть наверное?

Если удалять бэкэнд документ (doc.Remove(false)), то если он взят из UI документа, его удалить нельзя ;) О чем честно сказано в хелпе
То есть нужно искать документ через view. Чего не хочется, так как единственный очевидный идентефикатор документа это поле Дата/Время, по которому документ не находится :)

Может что подскажите.
 
D

Domino6

#2
<!--QuoteBegin-ivashkalotus+17:04:2006, 10:16 -->
<span class="vbquote">(ivashkalotus @ 17:04:2006, 10:16 )</span><!--QuoteEBegin-->Если удалять бэкэнд документ (doc.Remove(false)), то если он взят из UI документа, его удалить нельзя О чем честно сказано в хелпе
То есть нужно искать документ через view.
[snapback]33731" rel="nofollow" target="_blank[/snapback]​
[/quote]

именно так только искать его по UNID
 
I

ivashkalotus

#3
Не злиться, см в подпись :)

Т.е. взять UNID из документа полученного из UI документа, и найти его в базе?

P.S. Кто нить расскажет почему такой изврат ???
 
I

ivashkalotus

#4
Не помагает :D
Выдает такую же ошибку, что и до этого

код
Код:
Call doc.Save(True,True)
Call docUICurr.Close()
Call docCurr.Save(True,True)

' Создаем промежуточный документ для удаления текущего документа
Dim doc4Del As NotesDocument

Set doc4Del =db.GetDocumentByID(docCurr.NoteID)
Call doc4Del.Remove(True)
У doc4Del свойство IsUIdocopen все равно стоит в true :D

Скорее всего этот документ можно удалить только внешним скриптом, после закрытия UIdoc :)
 
D

Domino6

#6
Перед поиском по УНИД набо удалить из памяти объект UIDocument
 
I

ivashkalotus

#7
А как, если скрипт находиться именно в нем (т.е. в форме, которая для него открыта)?
 
D

Domino6

#8
<!--QuoteBegin-ivashkalotus+18:04:2006, 08:59 -->
<span class="vbquote">(ivashkalotus @ 18:04:2006, 08:59 )</span><!--QuoteEBegin-->P.S. Кто нить расскажет почему такой изврат ???
[snapback]33862" rel="nofollow" target="_blank[/snapback]​
[/quote]

Это не изврат просто при нахождении в памяти объекта и доступ к нему нотест определяет его как расположеного в памяти и не занимает лишние участки памяти

Код:
UNID$=docCurr.NoteID
docUICurr Delete
docCurr Delete

Set docCurr =db.GetDocumentByID(UNID$)
Call docCurr.Remove(True)
 
Статус
Закрыто для дальнейших ответов.