Скрытие поля

  • Автор темы Автор темы romanko
  • Дата начала Дата начала
зачем такие "фокусы"? еси надо визуально - сделать таблицу в виде вкладок, поля для редактора - на отдельной вкладке
Если надо "нормально" - вынести в отдельный док и "по-человечьи" управлять секуритями
Это получается лучше сделать 2 формы одну для ридкра вторую для редактора. А как тогда генерить каму какую выводить?И как показывать поля ридеру которые заполняет редактор?Объясните как это делаетца?Если у меня поля что для читателя что для писателя одинаковые просто читателю нельзя их заполнять а писателю можно но только после того как его учетка совпадет и он выберит в 1 поле правельные данные?ИЛИ как объясните подробно пожайлуста!!!
 
через связь парент-чайлд, редакторский док сделать чайлдом (респонсом) как вариант...
зависит от того - что с этими данными дальше делать надо
выводить можно в CFD поля по @GetDocField (если редеру их надо видеть)
 
Это получается лучше сделать 2 формы одну для ридкра вторую для редактора. А как тогда генерить каму какую выводить?И как показывать поля ридеру которые заполняет редактор?Объясните как это делаетца?Если у меня поля что для читателя что для писателя одинаковые просто читателю нельзя их заполнять а писателю можно но только после того как его учетка совпадет и он выберит в 1 поле правельные данные?ИЛИ как объясните подробно пожайлуста!!!
У пользователя с правами читателя нет возможности перевести документ в режим редактирования, соответственно, специально ничего прятать от него нет необходимости.
Что касается пользователя с правами редактора документа — он может открыть документ в режиме чтения (опять ничего прятать не нужно), или в режиме редактирования. Допустим, есть всегда редактируемое поле field1 и редактируемые при определённых условиях поля field2, field3...
Создаёте для них computed-for-display поля-дублёры field2_1, field3_1... на абзац ниже с формулами вида field2, field3... .
В формулах скрытия редактируемых полей пишите что-то типа:
Код:
!@IsDocBeingEdited | field1 != "нужное значение"
в формулах скрытия полей-дублёров пишите что-то типа:
Код:
@IsDocBeingEdited & field1 = "нужное значение"

P.S. Не забывайте обновлять документ после изменения поля field1.
 
nvy у редактора будет возможность использовать PreviewPane (для отображения родителя и редактирования), потому не надо будет никаких CFD, в этом случае


Добавлено: можно и для редактора сделать фэйковый $REF (CFD) для превьюпэйн...
 
упреждая вопросы...
как редактировать/создавать чайлд, например (формы подставить свои):
Код:
Sub Postopen(Source As Notesuidocument)
On Error Goto ErrH
Dim client As String, legal As String
client={investor}
legal=client+{-legalentity}
If Source.IsNewDoc Then
Dim parent As NotesDocument
Set parent=Source.Document
Call parent.ReplaceItemValue({form}, client)
Call parent.Save(True, False)
Dim doc As NotesDocument
Set doc=db.CreateDocument
Call doc.MakeResponse(parent)
Call doc.ReplaceItemValue({form}, legal)
Call doc.Save(True, False)
Call Source.Close
Call wks.EditDocument(True, doc)
End If
Quit:
Exit Sub
ErrH:
RaiseError
Resume Quit
End Sub
 
А почему такое условие на поле не срабатывает
!@IsMember("[2]";@UserRoles) & !@IsDocBeingEdited & pidrozdil != "2" | !@IsMember("[1]";@UserRoles) & !@IsDocBeingEdited & pidrozdil != "1"
Пока юзеру не буит присвоена роль 2 и не будут даны права редактора и поле pidrozdil не буит равно 2 то поле должно быть скрытым ИЛИ Пока юзеру не буит присвоена роль 1 и не будут даны права редактора и поле pidrozdil не буит равно 1 то поле должно быть скрытым.Почему не срабатывает??
 
Код:
(@IsNotMember("[2]";@UserRoles) & !@IsDocBeingEdited & pidrozdil != "2") | 
(@IsNotMember("[1]";@UserRoles) & !@IsDocBeingEdited & pidrozdil != "1")
 
и не будут даны права редактора
Где в формуле хоть что-нибудь про права редактора??? В упор не наблюдаю @UserAccess. @UserRoles возвращает список ролей, @IsDocBeingEdited указывает на режим открытия документа. И настоятельно рекомендую расставить скобочки — будет читабельней и ошибок в приоритете операций избежите.
 
Где в формуле хоть что-нибудь про права редактора??? В упор не наблюдаю @UserAccess. @UserRoles возвращает список ролей, @IsDocBeingEdited указывает на режим открытия документа. И настоятельно рекомендую расставить скобочки — будет читабельней и ошибок в приоритете операций избежите.
Подскажите как лучше делать. У меня есть телефонный справочник, в этом справочнике 156 предприятий, мне нужно чтобы человек который буит заполнять бд для своего предприятия не мог напортачить в другом, тоесть как я думаю нужно чтобы пока человек не выбрал свое предприятие остальные поля скрывались.Как это сделать?
 
Имхо, как вы описали, то вот так:
! ((@IsMember("[2]";@UserRoles) & @IsDocBeingEdited & pidrozdil = "2") | (@IsMember("[1]";@UserRoles) & @IsDocBeingEdited & pidrozdil = "1"))
или, если раскрыть:
!(@IsMember("[2]";@UserRoles) & @IsDocBeingEdited & pidrozdil = "2") & !(@IsMember("[1]";@UserRoles) & @IsDocBeingEdited & pidrozdil = "1")
(@IsNotMember("[2]";@UserRoles) | !@IsDocBeingEdited | pidrozdil != "2") & (@IsNotMember("[1]";@UserRoles) | !@IsDocBeingEdited | pidrozdil != "1")
Использовала @IsDocBeingEdited, которое дает @true, если документ в режиме редактирования. Если надо проверять права к БД, это делается по-другому, если надо проверять права редактора к документу, это делается через перебор всех авторс-полей для уровня доступа автор и перебор ридерс-авторс-полей для уровня доступа выше автора.
 
Имхо, как вы описали, то вот так:
! ((@IsMember("[2]";@UserRoles) & @IsDocBeingEdited & pidrozdil = "2") | (@IsMember("[1]";@UserRoles) & @IsDocBeingEdited & pidrozdil = "1"))
или, если раскрыть:
!(@IsMember("[2]";@UserRoles) & @IsDocBeingEdited & pidrozdil = "2") & !(@IsMember("[1]";@UserRoles) & @IsDocBeingEdited & pidrozdil = "1")
(@IsNotMember("[2]";@UserRoles) | !@IsDocBeingEdited | pidrozdil != "2") & (@IsNotMember("[1]";@UserRoles) | !@IsDocBeingEdited | pidrozdil != "1")
Использовала @IsDocBeingEdited, которое дает @true, если документ в режиме редактирования. Если надо проверять права к БД, это делается по-другому, если надо проверять права редактора к документу, это делается через перебор всех авторс-полей для уровня доступа автор и перебор ридерс-авторс-полей для уровня доступа выше автора.
Тоесть если делать вот так
!((@UserAcces(@DbName;[4]) & @IsNotMember("[1]";@UserRoles) & @IsDocBeingEdited & pidrozdil != "1") |(@UserAcces(@DbName;[4]) & @IsNotMember("[2]";@UserRoles) & @IsDocBeingEdited & pidrozdil != "2") |.....и вот так 156 раз)
Тоесть в полях которые должны быть закрыты вот такие формулы вставлять?Тогда оно проверит на права пользователя, тоесть редактор он или нет на то что открыт ли документ в режиме редактирования есть ли у него определленая роль и выбрал ли он в определенном поле нужное значение.Правельно?И если можно поравте в синтаксисе.
 
!((@UserAcces(@DbName;[2]) & @IsNotMember("[1]";@UserRoles) & @IsDocBeingEdited & pidrozdil != "1") |(@UserAcces(@DbName;[2]) & @IsNotMember("[2]";@UserRoles) & @IsDocBeingEdited & pidrozdil != "2") |.....и вот так 156 раз)
Насколько помнит мой склероз, ролей в ACL может быть не более 75.
Может создать в Domino Directory группы типа "Редакторы 1", "Редакторы 2", ... "Редакторы 156" и включать пользователей в соответствующие группы, а в документах в полях авторов указывать группы? И ничего скрывать не надо будет.
 
Насколько помнит мой склероз, ролей в ACL может быть не более 75.
Может создать в Domino Directory группы типа "Редакторы 1", "Редакторы 2", ... "Редакторы 156" и включать пользователей в соответствующие группы, а в документах в полях авторов указывать группы? И ничего скрывать не надо будет.
расскажите полее детально про группы и как их потом указывать в полях?

Добавлено:
Насколько помнит мой склероз, ролей в ACL может быть не более 75.
Может создать в Domino Directory группы типа "Редакторы 1", "Редакторы 2", ... "Редакторы 156" и включать пользователей в соответствующие группы, а в документах в полях авторов указывать группы? И ничего скрывать не надо будет.
расскажите полее детально про группы и как их потом указывать в полях?
 
эт что за собака такая? в общем, (@UserAcces(@DbName;[2]) - полный бред. есть @UserAccess
Подскажите как лучше делать. У меня есть телефонный справочник, в этом справочнике 156 предприятий, мне нужно чтобы человек который буит заполнять бд для своего предприятия не мог напортачить в другом, тоесть как я думаю нужно чтобы пока человек не выбрал свое предприятие остальные поля скрывались.Как это сделать?
авторс-поля + отдельная форма-диалог для заполнения полей.
или создать профайл или документ, в котором записана принадлежлежность пользователя какому-то предприятию, если это фиксировано.

Добавлено:
Тоесть если делать вот так
!((@UserAcces(@DbName;[2]) & @IsNotMember("[1]";@UserRoles) & @IsDocBeingEdited & pidrozdil != "1") |(@UserAcces(@DbName;[2]) & @IsNotMember("[2]";@UserRoles) & @IsDocBeingEdited & pidrozdil != "2") |.....и вот так 156 раз)
Тоесть в полях которые должны быть закрыты вот такие формулы вставлять?
это бред. так нельзя делать.
 
эт что за собака такая? в общем, (@UserAcces(@DbName;[2]) - полный бред. есть @UserAccess

авторс-поля + отдельная форма-диалог для заполнения полей.
или создать профайл или документ, в котором записана принадлежлежность пользователя какому-то предприятию, если это фиксировано.

Добавлено:
это бред. так нельзя делать.
Раччкажите что такое авторские поля?
можете предоставить какой то пример бд с такими ограничениями?Или кто может дать свою аську или скайп и помочь?Очень нужно!Вот мыло Spirt.88@mail.ru
 
Вы шутите, сэр? Вот тут упоминаются Authors-поля
посмотрите хелп дизайнера, почитайте книги или пойдите на курсы по лотусу.
Если в Одессе их нет, приедьте в Днепропетровск Киев Москву или где там еще есть подобные...
 
ну вот началось...
вопрос о скрытии полей вывел на незнание архитектуры LDN
форум не лучшее место для создания приложений, без знаний по платформе
я боюсь даже предполагать - что там уже "наколбасили" :facepalm:
 
А счас мы получим просьбу: "Расскажите более детально, что такое хелп дизайнера и как его использовать."
P.S. Извиняюсь за оффтоп -- не удержался.
 
Подскажите как лучше делать. У меня есть телефонный справочник, в этом справочнике 156 предприятий, мне нужно чтобы человек который буит заполнять бд для своего предприятия не мог напортачить в другом, тоесть как я думаю нужно чтобы пока человек не выбрал свое предприятие остальные поля скрывались.Как это сделать?

И вы хотите чтобы юзер из каждого предприятия вбивал в "свое" поле? =) И тогда под поле телефон вы сделаете 156 полей для каждого предприятия и будете прятать все остальные? Так чтоли? Поподробнее распишите, что и как вы там делате?
 
помогите написать на лоотус формуле такую проверку.Если пользователь принадлежит такой-то группе и у него есть права редактора и в поле1 он выбрал значение 1, то поля открываются ему на доступ.
К вот этому добавить проверку на группу и на права редактора
!@IsDocBeingEdited & pidrozdil != "1"
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы