Категоризированные представления

  • Автор темы Azazel
  • Дата начала
A

Azazel

Здравствуйте. Наверно, у меня глупый вопрос, но все же если кто поможет, буду признателен.
Вопрос: Как в категоризированное представление добавить документ именно в какую-либо категорию?
Я много времени потратил на поиски в интернете, но то ли не то ищу, то ли информации мало. Если у кого-нибудь есть простейший пример, то я бы с удовольствием изучил его. Примеров найти тоже не удалось толком :-(
 
M

morpheus

Для: Azazel
Категория в представлении строиться на соновании какого либо значения в докменте, соответственно Вам надо в документе в нужном поле указать тоже значение которое Вам надо( тоесть ту категорию в которую должен попасть документ )
 
O

oshmianski

Для: Azazel
а каким образом хотите создать документ? может Formulas inherit values from selected document подойдет?
 
A

Azazel

Мне трудновато пока ориентироваться в Лотусе. У меня есть форма, которая типа "документ", которая заполняется пользователем и должна попасть в выделенную в данный момент категорию. Но по-моему, я плохо представляю как это должно произойти. При создании документа по форме он попадает в категорию "Вне категорий". В этом и состоит моя проблема. Но все равно спасибо за отклик.

Совет помог, я добавил поле в создаваемый документ по названию категории, и теперь документ попадает куда надо. Вот только как автоматически заполнять это поле - чтобы туда попадало название выделенной категории?
 
L

LIGHT

Все просто!

Делаеш в форме дока поля которые будут использоватся для катигоризации

Например: MyPole - которое заполняется значением (как вариант с клавиатуры)

Теперь возьмен создадим по этой форме документы

Где в поле MyPole напишим:

1. документ : Мое значение1
2. документ : Мое значение2
3. документ : Мое значение4
4. документ : Мое значение2
и далее по аналогии сколько угодно

Дальше во вьюхе делаеш колонку, в которую будет выводится значене MyPole в свойствах колонки указываеш - категория (это в свойствах колонки вторая вкладка Type - Categories
Все
 
R

RAJ

Текущую категорию можно получить через NotesUIView.CaretCategory,
и поместить это значение в поле нового документа, которое категоризируется в представлении
Код:
Sub Click(Source As Button)
Dim workspace As New NotesUIWorkspace
Dim view As NotesUIView
Dim category As Variant
Set view = workspace.CurrentView
category = view.CaretCategory
Messagebox category
End Sub
 
A

Azazel

Сделал кнопку, куда вставил данный фрагмент кода. При нажатии я так понимаю должна выводится текущяя категория, к которой относится документ. Вот только по моему документ не считается выделенным, так как я получаю сообщение Object variable not set.
вот прилагаю скриншот, чтобы желающие оценили степень моей безграмотности :)
 
A

Azazel

Если подскажете в чем я ошибаюсь, буду очень признателен.
 
R

RAJ

Подскажу.
Дело в том, что кнопка должна располагаться в панели действий представления!!!
Иначе теряется контекст при выполнении кода.
 
A

Azazel

Спасибо! Долго думал как передать это значение в поле на форме, потом осилил. Что-то типа:

Sub Click(Source As Button)
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim view As NotesUIView
Dim category As Variant

Set view = workspace.CurrentView
category = view.CaretCategory

Set uidoc = workspace.ComposeDocument("", "" ,"addreport")
Set doc = uidoc.Document
doc.subject = category //// subject то поле, по которому происходит категоризирование
End Sub

Только вот поле передается если выделено именно сама категория, а не документ, относящийся к ней. В остальных случаях пишет Object variable not set в открытой форме addreport. Хотя при этом по нажатию кнопки ( там где был Messagebox category ) все работает - как при позиции каретки на названии категории, так и при позиции на любом документе, входящем в категорию. Извиняюсь за беспокойство, конечно, но если можете ответьте в чем дело.
 
R

RAJ

попробуйте
Код:
Call uidoc.FieldSetText("Subject", category)
 
A

Azazel

Большое человеческое вам спасибо. Помогло. Правда пришлось сделать поля не вычисляемыми при создании как было изначально, а изменяемыми. А то выдавал ошибку о невозможности изменения данного поля.
 
Мы в соцсетях:

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