Удалить всю категорию

Автор Тема: Удалить всю категорию  (Прочитано 10700 раз)

K85

  • Старший специалист
  • ****
  • Сообщений: 127
  • http://nick-name.ru/sertificates/727639/
    • Просмотр профиля
Удалить всю категорию
« : 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()

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Re: Удалить всю категорию
« Ответ #1 : 27 Июль 2009, 16:34:38 »
Добрый день!

Представление содержит только одну категорию? по номеру документа в нем?
В условие ...If Instr(NVE.GetPosition("."), strCaretCategory)=1 Then... заходит?

K85

  • Старший специалист
  • ****
  • Сообщений: 127
  • http://nick-name.ru/sertificates/727639/
    • Просмотр профиля
Re: Удалить всю категорию
« Ответ #2 : 28 Июль 2009, 11:32:34 »
Добрый день. Нет представление содержит несколько категорий. И при выборе одной из категорий она (категория с подкатегориями и документами) должна удаляться. После If Instr(NVE.GetPosition("."), strCaretCategory)=1 Then всегда выполняется else. Первая колонка в виде с формулой @DocNumber

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Re: Удалить всю категорию
« Ответ #3 : 28 Июль 2009, 14:32:06 »
Попробуйте вывести значение strCaretCategory. Вроде бы CaretCategory работает только для вида с одной категорией.

K85

  • Старший специалист
  • ****
  • Сообщений: 127
  • http://nick-name.ru/sertificates/727639/
    • Просмотр профиля
Re: Удалить всю категорию
« Ответ #4 : 28 Июль 2009, 15:07:22 »
а не подскажешь что можно использовать для видов не с одной категорией?

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Re: Удалить всю категорию
« Ответ #5 : 28 Июль 2009, 15:15:51 »
С категоризацией по @DocNumber проблематично, т.к. этот параметр высчитывается при открытии вида.
Хорошо бы сделать категорию по полю в документе и потом работать уже с документами.

Или оставить в виде только одну категорию.

K85

  • Старший специалист
  • ****
  • Сообщений: 127
  • http://nick-name.ru/sertificates/727639/
    • Просмотр профиля
Re: Удалить всю категорию
« Ответ #6 : 28 Июль 2009, 15:41:22 »
т.е. изменить первую колонку?

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Re: Удалить всю категорию
« Ответ #7 : 28 Июль 2009, 15:44:37 »
Да, если это возможно. И потом работать не с CaretCategory, а с полем документа.