Полная версия этой страницы:
вью
Добрый день!
При двойном нажатии по документу во вью, открывается документ.
Возможно сделать так, чтобы документ не открывался?
medin84
30:07:2008, 09:33
во вью
Sub Queryopendocument(Source As Notesuiview, Continue As Variant)
Continue=False
End Sub
можно ли на уровне представления, запретить удалять документы?
Цитата(kizarek @ 1:08:2008 - 11:40)

можно ли на уровне представления, запретить удалять документы?
А если попробовать в Скрипте Бд на querydocumentdelete проверять какая вюха активна и запрещать из неё удалять? Не устроит?
PaKo кхм, а что такое скрипт БД?)
а нашел) шас попробуемс.
но все же актуально, можно ли запретить удаление документа на уровне вью?)
Morpheus
1:08:2008, 08:15
kizarek
в базе данніх есть свои собственніе события (event)
в дизайнере. в БД зайти в Other->Database resources->Database Script ... вот там и есть заголовки тех самых ивентов
можно использовать свойство документа ParentView property - но ограничения надо учесть ( читай хэлп )
кхм, а как в этом событии определить какие документ(ы) удаляются?
Morpheus
1:08:2008, 08:20
kizarek
анпроцесед документс
или просто Source.Documents
Morpheus
задолбаю счас)))
как убрать с документа выделение о удалении?)
допустим делаем при пометке документа на удаление условие, и надо потом снят эту пометку.
Morpheus
1:08:2008, 08:30
kizarek
NOtesUIView -> DeselectAll
во залип то)))
как зная NotesDocument получить его NotesUIDocument ?)))
Morpheus
1:08:2008, 09:26
kizarek
никак, можно тока проверить IsUIDocOpen
а зачем это?
Цитата(kizarek @ 1:08:2008 - 13:11)

как зная NotesDocument получить его NotesUIDocument ?)))
UI - UserInterface, так что через UI можн овзять только открытый документ. А получить его можно через NotesUIWorkspace
Morpheus
ну получаем коллекцию документов которые помечены на удаление, дальше условие:
Set doc = collection.GetNthDocument(i)
If doc.getitemvalue("Form")(0) = "форма1" Then
'Call notesUIDocument.DeselectAll - тут снять документ с удаления надо
End If
Morpheus
1:08:2008, 10:51
kizarek первое замечание ... не юзать GetNthDocument(i) , а юзать GetFirst/Next
втарое ... что мешает после всех операций вызвать снятие галок ( кстати, разве они,галки, сами не снимуться после удачного удаления ???)
If doc.getitemvalue("Form")(0) = "форма1" Then
тутчтото делаем и удалям
end if
Call notesUIDocument.DeselectAll
ребята, а вы не слишком увлеклись?

для чего тут NotesUIDOCUMENT?..
если снимать галки надо в виде... NotesUIDocument.DeselectAll и NotesUIView.DeselectAll это немного разные методы
Morpheus
1:08:2008, 11:51
Цитата(Akupaka @ 1:08:2008 - 13:36)

NotesUIDocument.DeselectAll и NotesUIView.DeselectAll э
плять, я и не заметил как
kizarek поменял уивид на уидок..... пятница блин....
я ж написал
Цитата(Morpheus @ 1:08:2008 - 10:30)

NOtesUIView -> DeselectAll
ыть....в том то и запара что хз как галки то снять.
есть код:
Sub Querydocumentdelete(Source As Notesuidatabase, Continue As Variant)
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Dim uidoc As NotesUIDocument
Set db = Source.Database
Set collection = Source.Documents
For i=1 To collection.Count
Set doc = collection.GetNthDocument(i)
If doc.getitemvalue("Form")(0) = "Spr" Then
если сюда вошли, то необходимо галку снять с документа...или как то
по другому предотвратить удаление документа...вопрос как?))
End If
Next
End Sub
Morpheus дык потому и поменял что отлавить событие можно только при удалении документа, во вью то не поймаешь.
Цитата(kizarek @ 1:08:2008 - 14:54)

For i=1 To collection.Count
If doc.getitemvalue("Form")(0) = "Spr" Then
Call collection.DeleteDocument(doc)
End If
Next
Call collection.RemoveAll(true)
Continue = False
Morpheus
1:08:2008, 12:02
kizarek
а тут в любом случае только один вариант Continue = False
я бы так предложил:
Sub Querydocumentdelete(Source As Notesuidatabase, Continue As Variant)
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Dim uidoc As NotesUIDocument
Set db = Source.Database
Dim doc2 As notesDocument
Set collection = Source.Documents
Set doc = collection.GetFirstDocument
While Not(doc Is Nothing)
Set doc2 = collection.GetNextDocument(doc)
If doc.getitemvalue("Form")(0) = "Spr" Then
Call collection.DeleteDocument(doc)
End If
Set doc = doc2
Wend
' просто так, в принципе
continue = collection.Count > 0
End Sub
Morpheus
1:08:2008, 12:05
Medevic
а где ж переход к след. документу
Akupaka
а где-ж удаление из базы ненужных доков?
Medevic
так вообще не 1 документ удалятся не будет, а надо только чтобы определённой формы не удалялись)
товарисч
Morpheus, Вы заметили в обработчике какого события код написан?
Morpheus
1:08:2008, 12:09
Akupaka
пля... я понял... всё сваливаю с форума
Цитата(kizarek @ 1:08:2008 - 14:54)

дык потому и поменял что отлавить событие можно только при удалении документа, во вью то не поймаешь.
В этом же событии смотришь NotesUIWorkspace.CurrentView.ViewName
Akupaka
так все замечательно удаляется.
Цитата(Morpheus @ 1:08:2008 - 15:05)

а где ж переход к след. документу
Нужно добавить.

Цитата(kizarek @ 1:08:2008 - 15:06)

так вообще не 1 документ удалятся не будет, а надо только чтобы определённой формы не удалялись)
Почему не будет?
Цитата(Medevic @ 1:08:2008 - 15:12)

В этом же событии смотришь NotesUIWorkspace.CurrentView.ViewName
дык это уже дело второе))) можно чтобы вообще не удалялись) не только из вью. по поводу вью я думал есть способ в событиях самой вью неразрешать удаление документов.
Цитата(Medevic @ 1:08:2008, 14:17 )

Почему не будет?
та не, его просто сбило с толку, что ты не инициализируешь док, а удаляешь один, по коду, вот он и уточняет, что он не один
Ну ладно.

Хотя никто не мешает скопировать ссылки и удалить документ из самого документа.

Цитата(Medevic @ 1:08:2008 - 15:24)

Хотя никто не мешает скопировать ссылки и удалить документ из самого документа. smile.gif
Это если в зависимости от имени представления удалять.
Вот в общем что получилось:
Sub Querydocumentdelete(Source As Notesuidatabase, Continue As Variant)
On Error Goto ends
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Dim uidoc As NotesUIDocument
Set db = Source.Database
Dim doc2 As notesDocument
Set collection = Source.Documents
Set doc = collection.GetFirstDocument
While Not(doc Is Nothing)
Set doc2 = collection.GetNextDocument(doc)
If doc.getitemvalue("Form")(0) = "Spr" Then
Call collection.DeleteDocument(doc)
End If
Set doc = doc2
Set doc2 = collection.GetNextDocument(doc)
Wend
Messagebox "Нельзя удалять справочники.",16,"Внимание!"
continue = collection.Count > 0
ends:
Exit Sub
End Sub
Без обработчика ошибок, при удалении документа другой формы вылезает ошибка, хз почему, будет время разберусь)
хм... а зачем тот мессадж при каждом удалении?

плюс ошибка из-за того, что ты добавил строки см. ниже
Sub Querydocumentdelete(Source As Notesuidatabase, Continue As Variant)
'On Error Goto ends
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Dim uidoc As NotesUIDocument
dim shMess as boolean
Set db = Source.Database
Dim doc2 As notesDocument
Set collection = Source.Documents
shMess = false
Set doc = collection.GetFirstDocument
While Not(doc Is Nothing)
Set doc2 = collection.GetNextDocument(doc)
If doc.getitemvalue("Form")(0) = "Spr" Then
shMess = true
Call collection.DeleteDocument(doc)
End If
Set doc = doc2
'Set doc2 = collection.GetNextDocument(doc) ' эта строка лишняя! и из-за нее всегда будет ошибка, т.к. в конце-концов, doc станет равным Nothing, т.е. вся коллекция будет обработана, и метод GetNextDocument(Nothing) будет генерить ошибку!
Wend
if shMess then Messagebox "Нельзя удалять справочники.",16,"Внимание!"
continue = collection.Count > 0
ends:
Exit Sub
End Sub
кроме всего прочего, нужно обработать спец. условия, чтобы была хоть какая-то возможность удаления этих доков, т.к. такая возможность когда-нить да появится...
Turochek
8:08:2008, 14:28
Добрый день.
Подскажите, как обработать событие OnClick
на вьюхе, используя LotusScript
Спасибо
Akupaka
11:08:2008, 06:33
по-идее, обработать можно только те события, для которых нотес сам создал шаблон обработчика...
kizarek
11:08:2008, 12:30
Ну или Java в помощь...
Akupaka
11:08:2008, 12:33
а чем тут ява поможет?..
Turochek
13:08:2008, 07:25
а кто-нибудь пользуется
ActiveX- контролами
т.е. - Create-Object-Control
какие плюсы/минусы
спасибо
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.