И Опять Про Show Single Category

  • Автор темы vitte
  • Дата начала
Статус
Закрыто для дальнейших ответов.
V

vitte

Полазил по форуму но не нашел нужной инфы, может кто направит в нужную сторону.
Есть embedded view с show single category. Есть набор документов с категоризированым полем.
В поле строки типа :
"АА"
"ББ"
"ААББ"
"ББАА"
"ААББСС"
"ББААСС"
При задании в show single category значения "АА", по идее, должны показыватся документы АА, ААББ, ААББСС. Но этображаются не все эти доки, а только часть.
Мне не ясен алгоритм отбора доков. И вроде метасимволы замены тоже не воспринимает.
Где про это почитать можно?
 

VladSh

начинающий
Lotus Team
11.12.2009
1 797
158
BIT
233
Нигде не надо читать. Эта опция работает только по чёткому соответствию.
Вот если бы поле включало несколько значений, то и отображался бы док в разных категориях. Ну или через разделитель если хранится, - можно разбить формулой в колонке поля.
 
V

vitte

Нигде не надо читать. Эта опция работает только по чёткому соответствию.
Вот если бы поле включало несколько значений, то и отображался бы док в разных категориях. Ну или через разделитель если хранится, - можно разбить формулой в колонке поля.
про четкое соответствие, несколько не так, насколько позволяет мне понять мой английский:
Через разделитель, т.е привести к виду АА-ББ-СС?
 
N

nvyush

про четкое соответствие, несколько не так, насколько позволяет мне понять мой английский:
Насколько мне позволяет мне мой английский :mellow:, всё так:
если формула Show single category содержит AB, то возвращается ПЕРВАЯ непустая категория, начинающаяся на AB (но не все категории на AB). Как правило требуется, чтобы при отсутствии категории не возвращалось ничего, для этого рекомендуется добавлять в конце названия категории "терминатора" (в примере по ссылке это знак доллара, я обычно добавляю неразрывный пробел Chr(160)).
Через разделитель, т.е привести к виду АА-ББ-СС?
АА\ББ\СС
 

VladSh

начинающий
Lotus Team
11.12.2009
1 797
158
BIT
233
vitte, nvy
Вопрос тут в том, разбираться с баго-фичами или сделать так, чтобы работало всегда, независимо от баго-фич.
Если обеспечивать обязательность вхождений в других документах, то таких ситуаций никогда не возникнет. Заполняю эти вхождения сразу же, при создании документов (которые потом будут отбираться по "Show Single Category") либо использую этот механизм для отбора по имени пользователя в системе. Т.е. вхождения - более-менее статичные данные, тогда вопросов по работе "Show Single Category" не возникает.

vitte
Отдельные значения в поле:
"АА"
"ББ"
Если то же самое вручную в колонке: "АА":"ББ".
Если всё-же в поле содержится строка, а не список, то в колонке разбить по разделителю: @Explode(itemName; sep).

nvy
> АА\ББ\СС
Не знаю, как подействует такая "искусственная категоризация" на "Show Single Category" (на getAllDocumentsByKey и т.п. плохо действует), потому такое в этом случае предпочитаю не использовать.
 
V

vitte

ага с ангийским ошибся.

Насколько мне позволяет мне мой английский :mellow:, всё та Chr(160)).

АА\ББ\СС

привел к такому виду, теперь другая засада - отображает все категории которые ниже АА, даже если в Show Single стоит АА\ББ (т.е там и АА\СС.. и АА\АА). Буду пытать другие методы
 
N

nvyush

VladSh
Имелась ввиду ситуация, когда категория пуста, то есть соответствующих дочерних документов в БД ещё нет. Когда отбор идёт по unid, подобных проблем не возникает, но если название пустой категории соответсвует началу другой категории, Show single category глючит вышеописанным образом.
 
V

vitte

vitte
Отдельные значения в поле:
"АА"
"ББ"
Если то же самое вручную в колонке: "АА":"ББ".
Если всё-же в поле содержится строка, а не список, то в колонке разбить по разделителю: @Explode(itemName; sep).

Не совсем понимаю . Есть документ, у него поле категоризации К, в это поле вносить значения К(0)="АА", К(1)="ББ" и тд. Затем в Show single указать в качестве критерия список "АА":"ББ". Так?
 
N

nvyush

привел к такому виду, теперь другая засада - отображает все категории которые ниже АА, даже если в Show Single стоит АА\ББ (т.е там и АА\СС.. и АА\АА). Буду пытать другие методы
Обратный слэш используется для разбивки на подкатегории, т.е. АА\ББ\ВВ отображается в представлении как
>AA
..>ББ
....>ВВ
Show single category отбирает только верхний уровень, т.е. в данном случае АА. Single по-английски означает один, единственный, соответственно отбираются документы только одной категории. Никакие метасимволы, частичное совпадение здесь не работают.

Добавлено:
Не совсем понимаю . Есть документ, у него поле категоризации К, в это поле вносить значения К(0)="АА", К(1)="ББ" и тд. Затем в Show single указать в качестве критерия список "АА":"ББ". Так?
Нет.
Если у Вас есть документы "АА":"ББ" и "ББ":"СС", то когда нужно отобрать только первые, подставляете "АА", когда только вторые — "СС", когда и те и те — "ББ".
 

VladSh

начинающий
Lotus Team
11.12.2009
1 797
158
BIT
233
nvy
А, это наверное "мой" баг, когда при создании нового дока вьюха отображала какую-то ерунду, так она отображала доки от пустой категории.
Это я решил заданием в формуле Show Single Category, если док новый, "несуществующего" во вхождениях символа (пока пробела хватало).
В тех случаях, когда данных ещё нет (т.е. что-то типа динамики), эту штуку обходил тем, что просто прописывал UNID или @Unique(), это и уникально и избавляемся от пустых категорий. Но потом вообще ушёл от таких ситуаций (больше не проектирую так приложения).

Иногда, если допускается, скрываю внедрённое представление если док новый. Но пробел в формуле гораздо проще))

vitte
Есть документ, у него поле категоризации К, в это поле вносить значения К(0)="АА", К(1)="ББ" и тд.
Это верно.
А дальше nvy ответил - в Show Single Category указываем отбираемое значение, например "АА" или "ББ" или ...

P.S. И чтобы док разбивался в виде по разным категориям, надо в первой колонке вида на 2-й вкладке свойств обязательно установить Categorized.

Добавлено:
привел к такому виду, теперь другая засада - отображает все категории которые ниже АА, даже если в Show Single стоит АА\ББ (т.е там и АА\СС.. и АА\АА). Буду пытать другие методы
Это то, что я выше говорил, - лучше не использовать псевдокатегоризацию для сабжа, т.к. будет глючить. Он будет хорошо работать, если давать ему только фразы с точным совпадением или самому обеспечивать точное совпадение.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

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