Форум продуктов IBM Lotus

Общие вопросы => Разработка приложений => Тема начата: K85 от 24 Июль 2009, 17:54:49

Название: Удалить всю категорию
Отправлено: K85 от 24 Июль 2009, 17:54:49
Необходимо удаленить все документы категории из вида нажатием на кнопку.
Делаю так, но почему-то всегда выводит 0, т.е. не удаляет ничего. Может мне кто-нибудь помочь?
    Dim NUIWS As New NotesUIWorkspace
    Dim NV As NotesView
    Dim NVN As NotesViewNavigator
    Dim NVE As NotesViewEntry
    Dim strCaretCategory As String
    Dim blnContains As Boolean
   
    blnContains = False
    strCaretCategory = NUIWS.CurrentView.CaretCategory
    Set NV = NUIWS.CurrentView.View
  Set NVN = NV.CreateViewNav()
    Set NVE = NVN.GetFirst

    Dim collection As NotesDocumentCollection
    Set collection = NV.Parent.Search( "" , Nothing , 0 )
   
    Do While Not(NVE Is Nothing)
        If Instr(NVE.GetPosition("."), strCaretCategory)=1 Then
            blnContains = True
                        If NVE.IsDocument Then
                On Error 4469 Resume Next
                Call collection.AddDocument( nve.Document )
            End If
        Elseif blnContains Then
            Exit Do
        End If
        Set NVE = NVN.GetNext(NVE)
    Loop
'    If collection.count > 0 Then Call collection.RemoveAll( True )
    Messagebox(collection.count )
    Call NUIWS.ViewRefresh()
Название: Re: Удалить всю категорию
Отправлено: ViV от 27 Июль 2009, 16:34:38
Добрый день!

Представление содержит только одну категорию? по номеру документа в нем?
В условие ...If Instr(NVE.GetPosition("."), strCaretCategory)=1 Then... заходит?
Название: Re: Удалить всю категорию
Отправлено: K85 от 28 Июль 2009, 11:32:34
Добрый день. Нет представление содержит несколько категорий. И при выборе одной из категорий она (категория с подкатегориями и документами) должна удаляться. После If Instr(NVE.GetPosition("."), strCaretCategory)=1 Then всегда выполняется else. Первая колонка в виде с формулой @DocNumber
Название: Re: Удалить всю категорию
Отправлено: ViV от 28 Июль 2009, 14:32:06
Попробуйте вывести значение strCaretCategory. Вроде бы CaretCategory работает только для вида с одной категорией.
Название: Re: Удалить всю категорию
Отправлено: K85 от 28 Июль 2009, 15:07:22
а не подскажешь что можно использовать для видов не с одной категорией?
Название: Re: Удалить всю категорию
Отправлено: ViV от 28 Июль 2009, 15:15:51
С категоризацией по @DocNumber проблематично, т.к. этот параметр высчитывается при открытии вида.
Хорошо бы сделать категорию по полю в документе и потом работать уже с документами.

Или оставить в виде только одну категорию.
Название: Re: Удалить всю категорию
Отправлено: K85 от 28 Июль 2009, 15:41:22
т.е. изменить первую колонку?
Название: Re: Удалить всю категорию
Отправлено: ViV от 28 Июль 2009, 15:44:37
Да, если это возможно. И потом работать не с CaretCategory, а с полем документа.