2014-02-11 3 views
1

У меня есть форма A, где у меня есть поле '_author', которое имеет тип Authors/Computed для отображения со значением (@Subset ($ Обновлено, 1)). Я показываю информацию от formA на viewA. Я хочу достичь того, что созданные вами документы видны только вам на viewA. Я попробовал следующую формулу в viewA 'View Selection': SELECT (form = "formA" & @UserName = _author). Хотя я знаю, что эти две переменные имеют одинаковые значения, когда я читаю их из свойств документа, условие не выполняется, и я не вижу ни одного документа. Если я удалю все после «&», на экране отображаются все документы. Все размещено на сервере, который обрабатывает пользователей.проверка, является ли текущий пользователь автором документа

+0

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

ответ

4

Удобное обходное решение - создать страницу со встроенным представлением. Этот вид в точности соответствует вашему представлению, но имеет дополнительный столбец с первой категорией (!) С вашим полем _author.

В зависимости от того, как отформатирован ваш категоризированный столбец _author, в формуляре @UserName или @Name([CN]; @UserName). Показывать тогда всегда страницу вместо представления.

Таким образом, вы избегаете проблем с просмотром «Общие, частные при первом использовании», и пользователи видят только свои собственные документы.

+0

создана страница, создан новый вид с дополнительной категоризированной колонкой с "_author". В свойствах встроенного представления у меня есть только два, «встроенный выбор» и «показать одну категорию». В show single category я ставил @UserName, и когда я запускаю страницу, я получаю «Категория не найдена». Где это свойство «показать выбранное» только для встроенного представления? – Thunderer

+0

Я обновил свой ответ. Извините, вы правы, свойство называется «Показать одну категорию». Попробуйте это с помощью '@Name ([CN]; @UserName). –

+0

Это решение также повышает производительность для пользователей, которым разрешено просматривать только несколько документов, содержащих много документов. –

1

@UserName работает специальным образом в формулах выбора во взглядах. В вашем случае вид должен быть Private on First Use. Подробнее читайте здесь: http://www-01.ibm.com/support/docview.wss?uid=swg21089773.

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

+0

Также стоит отметить, что, поскольку просмотр SPOFU только переиндексируется, когда пользователь обращается к нему, и поскольку компьютер пользователя должен выполнять эту работу, большие представления SPOFU могут быть медленными. Кроме того, если вы должны были написать агент, который работает на сервере, но полагается на представление SPOFU, он никогда не сможет быть уверенным, что представление будет актуальным. –

Смежные вопросы