• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Удаление из вида

  • Автор темы I123321
  • Дата начала
I

I123321

Есть вопрос. Возможно ли удаление из вида, если документы в виде разбиты по категориям, необходимо удалять документы не выделяя их, а сразу всю категорию (то есть свернутую)
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Если категория не вложенная, то можно с помощью свойства NotesUIView.CaretCategory узнать категорию, потом NotesView.GetAllDocumentsByKey получить коллекцию и удалить её.
 
I

I123321

спасибо, буду прбывать

сделано так:
Код:
Dim view As NotesUIView
Dim category As Variant
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Set db = session.CurrentDatabase
Set view = workspace.CurrentView
category = view.CaretCategory
Set view = db.GetView( "category" )
Set dc = view.GetAllDocumentsByKey("view ", False)
Delete dc
что делаю не правильно??? помогите пожалуйста
 
S

susinmn

category = view.CaretCategory
Set dc = view.GetAllDocumentsByKey(category , False)
 
I

I123321

так проверял. на Set dc = view.GetAllDocumentsByKey(category , False) выдает Not a member GetAllDocumentsByKey
 
H

hosm

можно так
Код:
Set view = workspace.CurrentView	' uiview
category = view.CaretCategory	
Set dc = view.view.GetAllDocumentsByKey(category, False) ' получить view от uiview
 
T

turumbay

что делаю не правильно???
да почти все. начнем с того, что код не компилируеца с включенным "option declare"

view.GetAllDocumentsByKey("view ", False) - нет такого метода в uiview

Копайте в направлении
Dim ws As New NotesUIWorkspace
Dim uiview As NotesUIView
Set uiview = ws.CurrentView
Dim category$
category$ = uiview.CaretCategory

Если категоризованный столбец в виде один и первый сортированный - то
Dim collection As NotesDocumentCollection
Set collection = uiview.View.GetAllDocumentsByKey( category$ , True )
Call collection.RemoveAll( True )

При удалении коллекции не должно быть открытых в UI документов из этой коллекции.( в т.ч. в превью )
З.Ы. Рекомендую включить в настройках дизайнера опцию в Programmers Pane Properties: "Automatically add "option Declare"". Убережетесь от многих проблем.
 
I

I123321

сделал так , по вашим комментариям
Код:
	Dim workspace As New NotesUIWorkspace
Dim view As NotesUIView
Dim category As Variant
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Set db = session.CurrentDatabase
Set view = workspace.CurrentView
category = view.CaretCategory
Messagebox "Категория '" + category + "' будет удалена"
category = view.CaretCategory
Set view = workspace.CurrentView 
category = view.CaretCategory 
Set dc = view.view.GetAllDocumentsByKey(category, False) 
Delete dc
но ничего не удаляется
 
H

hosm

Omh
я согласна :)
сорри, но я наспех ответила, мне лень было код переписывать (даже сперва для dc Set пропустила - пришлось подправить)
конечно, еще стоило нормально описать переменные, как предложил turumbay
I123321
ой-ой-ой... А зачем 3 раза категорию получать?
Delete dc - удаляет объект коллекции из памяти. посмотри вариант turumbay - RemoveAll !!!
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
мне вот было совсем лень...
Код:
	Dim WS As New NotesUIWorkspace	
Dim uiview As NotesUIView
Dim view As NotesView
Dim category As Variant
Dim dc As NotesDocumentCollection

Set uiview = WS.CurrentView
Set view = uiview.View
category = uiview.CaretCategory

Set dc = view.GetAllDocumentsByKey( category, True)

Call dc.RemoveAll( True )

Call ws.ViewRefresh

все. теперь точно все
 
O

Omh

Ну и естественно, это будет работать, только если в виде одна категолрия :)
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Да. Этот код для одноуровневой категории. А разве разговор о многоуровневой?
 
O

Omh

Ну просто потом I123321 сделает ещё одну категорию и опять появятся вопросы :)
Так сказать "предупреждён - вооружён"
 
I

I123321

а кто нибудь мог бы мне хотябы сказать в каком русле мне надо искать читать, чтобы сделать кнопку для удаления нескольких уровней?
 
O

Omh

А что, уже понадобилось?

Как вариант:
1. ты знаешь формулу view
2. ты знаешь название удаляемой категории
3. ты знаешь поле в котором лежит категория

На PostDocumentDelete науськиваешь на базу, например, db.Serach скомпонованный из тех вещей, которые ты знаешь.
На выхлопе получаешь коллекцию, к которой применяешь метод RemoveAll(True) :)
 
T

TIA

На Интертрастовском форуме
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!