Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.84/687: Рейтинг темы: голосов - 687, средняя оценка - 4.84
0 / 0 / 0
Регистрация: 21.02.2005
Сообщений: 358
1

Пишу базу

28.07.2008, 14:00. Показов 124230. Ответов 99
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет,
пишу базу для отчетов..
появились вопросы: (заранее спасибо за помошь!!)

1. Возможно ли реализовать механизм разграничения доступа к полям? т.е. один пользователь может редактировать в документе только одни поля, другой только другие, третий все.
как я понял это все можно реализовать создав соответствующие формы для каждого типа пользователей и через роли им назначить. Чтобы с данной формой редактировать могла только нужная роль пользователей , в свойствах формы выставляю на последней закладке права - "кто может создавать док по этой форме" - этого будет достаточно или есть другой способ (например на уровне полей или секций !?) ?
2. В случае если в разных репликах пользователи будут редактировать один документ , но разные поля, в итоге не приведет это к конфликту репликаций?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.07.2008, 14:00
Ответы с готовыми решениями:

Пишу базку(management)
Всем привет вобщем так: База нужна для расмотрения неких проектов некими людьми. пользователь...

Пишу 30000 строк в базу Access, как ускорить?
Экспериментирую тут с заливкой большого объема данных в базу Access. Данные заливаются в одну...

Пишу базу данных на основе данных из базы access
Здравствуйте уважаемые форумчане)) у меня к вам несколько вопросов 1) как сделать так чтобы при...

Как выгрузить базу данных 1с 8.2 с SQL сервера в новую созданную локальную базу?
Добрый день! Возникла следующая проблема, при работе в конфигураторе с базой которая находится на...

99
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
28.07.2008, 14:22 2
1. В принципе нет. Можно только шифровать поля. Остальное делается в UI и создаёт только иллюзию разграничения прав.
2. Да. Но можно изменить свойтво формы Conflict Handling или соответствующее поле $ConflictAction в документе.
0
0 / 0 / 0
Регистрация: 04.10.2007
Сообщений: 2,977
28.07.2008, 14:26 3
1) разграничение доступа к полям можно по-разному реализовать, это могут быть и Controlled Access секции, и скрытие, и другие варианты

2) приведет но, можно постараться уменьшить вероятность конфликта - свойство обработки конфл. ситуаций на форме; потом, желательно максимально уменьшить возможность редактирования дока разными пользователями в одно и то же время или разграничить между ними поля, которые они могут редактировать (это к пп1)



Цитата Сообщение от Medevic
1. В принципе нет. Можно только шифровать поля. Остальное делается в UI и создаёт только иллюзию разграничения прав.
см. isProtected
0
0 / 0 / 0
Регистрация: 21.02.2005
Сообщений: 358
28.07.2008, 14:35 4
спасибо за ответы!!

т.е. в итоге в итоге я смогу построить архитектуру при которой, все данные хранятся в одном документе, а 4 разных пользователя заполняют каждый свою часть полей? , т.е. что это будет все-таки 1 документ а не 4 ?
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
28.07.2008, 14:40 5
Цитата Сообщение от Akupaka
см. isProtected
Как мне кажется, это практически бесполезное свойство. Не получится это сделать:


Цитата Сообщение от phantom76
один пользователь может редактировать в документе только одни поля, другой только другие, третий все.



Цитата Сообщение от phantom76
т.е. в итоге в итоге я смогу построить архитектуру при которой, все данные хранятся в одном документе, а 4 разных пользователя заполняют каждый свою часть полей? , т.е. что это будет все-таки 1 документ а не 4 ?
Ну а почему бы не сделать в 4-х документах?
Еще можно дать всем права Readers, а поля через агент менять.
0
0 / 0 / 0
Регистрация: 21.02.2005
Сообщений: 358
28.07.2008, 15:01 6
Цитата Сообщение от Medevic
Как мне кажется, это практически бесполезное свойство. Не получится это сделать:




Ну а почему бы не сделать в 4-х документах?
Еще можно дать всем права Readers, а поля через агент менять.
алгоритм работы базы должен быть такой:

есть менеджер базы - он имеет право на создание шаблона отчета с заданными параментрами для подразделений, есть 4 ответственных лица в подразделениях, которые должны заполнить соответствующие разделы в этом отчете.
и в итоге отчет должен быть предоставлен руководителю как единая форма.
соответственно если это будет уже 4 документа, то нужно будет или по ним построить 5-ый итоговый и предусмотреть механизм переноса начальных данных введенных менеджером в документы подразделений, вот пока размышляю как логичнее построить этот процесс?
0
0 / 0 / 0
Регистрация: 04.10.2007
Сообщений: 2,977
28.07.2008, 15:14 7
в программировании нельзя руководствоваться терминами "кажется" и подобными

указанное свойство итемов isProtected небезполезно, если им правильно пользоваться...
а свойство формы Conflict handling = Merge Conflicts очень даже хорошо справляется, если пользователи изменяли разные поля...
и то, что требуется phantom76 можно сделать, правильно все организовав, и с помощью единого документа...

зы: а еще можно не использовать лотус




Цитата Сообщение от phantom76
алгоритм работы базы должен быть такой:

есть менеджер базы - он имеет право на создание шаблона отчета с заданными параментрами для подразделений, есть 4 ответственных лица в подразделениях, которые должны заполнить соответствующие разделы в этом отчете.
и в итоге отчет должен быть предоставлен руководителю как единая форма.
соответственно если это будет уже 4 документа, то нужно будет или по ним построить 5-ый итоговый и предусмотреть механизм переноса начальных данных введенных менеджером в документы подразделений, вот пока размышляю как логичнее построить этот процесс?
тут вариантов много, по сути тут уже маленький workflow...
если организовывать его последовательно, то можно обойтись одним документом, но давать доступ к нему последовательно, сначала одному, затем второму...
если организовывать параллельно, т.е. все сразу заносят данные, то либо с помощью правильного разграничения доступа к отдельным полям, либо через отдельные документы...

я бы выбрал, все-таки, отдельные документы, т.к. здесь предусматривается одновременная работа с документом, т.е. вероятность одновременной правки документа стремится к 100%

т.е. к примеру, Ваш менеджер создает документ, устанавливает его статус "жду ответа", остальные заходят в этот документ и нажимают на княпку "ответ", при этом создается ответный документ, в котором пользователь заносит данные... каждый отвечает, в итоге получается документ и дочерние к нему...
эти дочерки можно различными способами обработать:
- можно просто отображать их в виде как связанные доки;
- можно серверным агентом поместить данные из ответов в родительский, а дочерние убить;
- можно отображать данные из дочерок в открытом родительском в виде встроенного вида, либо в какие-то поля засовывать данные при открытии;

либо другим способом...
0
0 / 0 / 0
Регистрация: 21.02.2005
Сообщений: 358
28.07.2008, 16:36 8
спасибо, все приму к сведению
0
0 / 0 / 0
Регистрация: 21.02.2005
Сообщений: 358
30.07.2008, 14:46 9
какой лучше функцией восспользоваться для проверки наличия\отсутствия у пользователя определенной роли, с целью скрытия секции на форме?
0
0 / 0 / 0
Регистрация: 04.10.2007
Сообщений: 2,977
30.07.2008, 15:22 10
@IsMember()
@UserRoles
0
0 / 0 / 0
Регистрация: 21.02.2005
Сообщений: 358
30.07.2008, 15:45 11
спасибо!
я так понял на локале @UserRoles не работает?

Text list. Each item in the list is the name of a role that the current user has in the current database. The role names are enclosed in brackets. Returns an empty string ("") if the current database is local and "Enforce a consystent Access Control List across all replicas" is not in effect.
0
0 / 0 / 0
Регистрация: 16.07.2007
Сообщений: 849
30.07.2008, 18:36 12
phantom76
правильно понял)
0
0 / 0 / 0
Регистрация: 04.10.2007
Сообщений: 2,977
30.07.2008, 18:50 13
понял-то правильно, но есть ведь и вторая часть ответа - Returns an empty string ("") if the current database is local and "Enforce a consystent Access Control List across all replicas" is not in effect
так что, можно сделать чтобы работало

эта галка находится на закладке дополнительных параметров ТУД
0
0 / 0 / 0
Регистрация: 21.02.2005
Сообщений: 358
31.07.2008, 17:17 14
еще вопросик, глюк какой-то..

на форме пытаюсь спрятать секции в зависимости от роли, соответственно в опции: Hide paragraph if formula is true: ставлю "галку" и пишу формулу: @If(@IsMember("[user1]"; @UserRoles);@True;@False) , но заметил такой глюк, что зачастую скрывает только имя секции, если она развернута на форме..

как правильно реализовать этот механизм?
0
0 / 0 / 0
Регистрация: 04.10.2007
Сообщений: 2,977
31.07.2008, 17:33 15
ну, либо сделать так чтобы секция не раскрывалась, либо добавить в скрытие того, что внутри секции ту же проверку на роль...
к стати, достаточно написать @IsMember("[user1]"; @UserRoles) , она сама вернет @True
0
0 / 0 / 0
Регистрация: 21.02.2005
Сообщений: 358
04.08.2008, 15:58 16
вот еще вопросик:

хочу в документе дополнительно контролировать модификацию определенных полей по последнему изменению,: дату и автора
для чего на форме созданы соответсвтующие поля, сначала использовал в вычисляемых полях фомулы вида :
@If(@IsMember("[Roles1]"; @UserRoles);@Name([CN];@UserName);"");
@If(@IsMember("[Roles1]"; @UserRoles);@Now;"");

но в этом случае, пользователь с другой ролью, очищает поля по "иначе" (может присваивать полю свое текущее значение?! )
поставил все эти формулы в QuerySave на форме,

@If(@IsMember("[Roles1]"; @UserRoles);@SetField(Updatedby1;@Name([CN];@UserName));"");
@If(@IsMember("[Roles1]"; @UserRoles);@SetField(Updated1;@Now);"");

но почему-то не работают они там..
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
04.08.2008, 16:15 17
Цитата Сообщение от phantom76
может вместо "иначе" присваивать полю свое текущее значение?!
Присвой.



Цитата Сообщение от phantom76
поставил все эти формулы в QuerySave на форме, но почему-то не работают они там..
Кавычки не забыл в @SetField?
0
0 / 0 / 0
Регистрация: 21.02.2005
Сообщений: 358
04.08.2008, 16:32 18
а где кавычки-то ? вроде не забыл..
@SetField( fieldName ; value ) имя поле идет разве в кавычках?


понял.. имя поля должно быть в кавычках ))
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
04.08.2008, 16:34 19
Ну да.
0
0 / 0 / 0
Регистрация: 21.02.2005
Сообщений: 358
04.08.2008, 17:02 20
Спасибо, все заработало!
0
04.08.2008, 17:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.08.2008, 17:02
Помогаю со студенческими работами здесь

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

Как программно перегнать базу из *.dbf в базу access
Как программно перегнать базу из *.dbf в базу access. С указанием полей из которых в которые надо...

Как вообще сделать эту базу данных онлайн.Чтобы я мог отправлять запросы из приложения в базу
Например база где нибудь строит . А приложение на компах пользователей. Пока только делаю...

Можно ли базу Excel преобразовать в базу Oracle?
Если у меня есть ехсеl база, как можно преобразовать её в базу оракл?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru