Проблемы С Inputenable

Тема в разделе "Lotus - Программирование", создана пользователем Shandrik, 13 май 2014.

Наш партнер Genesis Hackspace
  1. Shandrik

    Shandrik Well-Known Member

    Регистрация:
    30 дек 2010
    Сообщения:
    247
    Симпатии:
    25
    Решил поэкспериментировать с опцией поля Input Enable - создал настроечный документ, где выбираю юзеров, которым дается право редактировать определенное поле в документе.
    В поле в документе в Input Enable делаю @DBLookup к этой настройке. При открытии документа курсор начинает дергаться, в левой части статусбара мигает молния. Через какое-то время лотус молча падает.
    Поставил в Queryrecalc и Postrecalc: Print Getthreadinfo(1) & " " & Now, но в статусбар ничего не выводится.
    Кто использовал Input Enable? Что за грабли?
     
  2. savl

    savl Well-Known Member
    Команда форума Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.098
    Симпатии:
    155
    Проще (да даже правильнее) сделать группу таких пользователей и проверять состоит ли пользователь в этой группе.
    Или не только сделать группу, а еще и роль отдельную и проверять эту роль у данного сотрудника.
    Никаких граблей, просто там должна быть наиболее простая логическая функция.
    Если 1 - редактируем, если 0 - нельзя.
    Так же стоит добавить в эту функцию @IsDocBeingEdited, чтобы редактировать только в режиме редактирования.
    Если сделать 1, то в открытии "на четние" поле будет выглядеть как "редактируемое"
     
  3. Shandrik

    Shandrik Well-Known Member

    Регистрация:
    30 дек 2010
    Сообщения:
    247
    Симпатии:
    25
    Я отдаю базу в отдел и хочу, чтобы они сами её настраивали. Манагерский доступ им давать не хочу и уж тем более не хочу изменять состав группы всякий раз, как им захочется добавить ещё одного сотрудника.
    Вот изменять поле в настроечном документе - ради богу.



    Куда уж проще-то:

    @If(@IsMember("[Supervisor]";@UserRoles);@Return(@True);"");
    ReviewersListEditors:=@DbLookup("":"NoCache";""; "(SettingsAndClassif)";"privilegium";"ReviewersListEditors");
    ReviewersListEditors:=@If(@IsError(ReviewersListEditors);"";ReviewersListEditors);
    @IsMember(@Name([Canonicalize];@UserName);@Name([Canonicalize];ReviewersListEdit
    ors))

    Тут именно какая особенность InputEnable.
    Сейчас попробую вычислить редакторов dblookup-ом в cfd-поле и уже с ним работать.
     
  4. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.195
    Симпатии:
    308
    проще создать форму с сабформами и на основании доступа подгружать редактируемую или нет
     
  5. Shandrik

    Shandrik Well-Known Member

    Регистрация:
    30 дек 2010
    Сообщения:
    247
    Симпатии:
    25
    Нет, в режиме чтения просто текст - без ковычек и выбора из АB

    Добавлено: Вынес DBLookup в CFD-поле и уже с ним сравниваю юзера. Всё работает без глюков!
    Вобщем, будьте осторожны с InputEnable!

    Добавлено:
    Да, тоже решение, хотя и не уверен, то более простое.
     
  6. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.195
    Симпатии:
    308
    адназначна простое :)
     
  7. savl

    savl Well-Known Member
    Команда форума Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.098
    Симпатии:
    155
    Тут и особенность @DbLookup.
    Для вычисления постоянно лезет к представлению, причем не кэшируя записи.
    Возможно стоит сделать кэширование, не думаю, что список будет меняться каждый час.
    Еще стоит добавить в DbLookup слово: [FAILSILENT]
    Вернет пустую строку, если ничего не найдет.
     
  8. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.109
    Симпатии:
    19
    дблукап неправильный - отсюда и проблема
     
  9. Shandrik

    Shandrik Well-Known Member

    Регистрация:
    30 дек 2010
    Сообщения:
    247
    Симпатии:
    25
    Что с ним не так? Будучи вынесенным в отдельное поле исправно работает.

    Добавлено:
    На этапе разработки без этого никак - постоянно настройки правлю.
    А если и забуду перед релизом убрать - так там вьюшка мизерная.
     
  10. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.109
    Симпатии:
    19
    параметр сервер:файл должен быть 2х значным а не ""
    если в поле работает поставь это поле перед тем а в нипутенеблед ссылайся на 1е поле
     
  11. Shandrik

    Shandrik Well-Known Member

    Регистрация:
    30 дек 2010
    Сообщения:
    247
    Симпатии:
    25
    To perform the lookup on the current database (the same database in which the formula is being evaluated), specify "" as the entire argument to the function.


    Ну я так и сделал - см. выше.


    Долго думал - причем тут путен? :D
     
Загрузка...
Похожие Темы - Проблемы Inputenable
  1. nikos
    Ответов:
    29
    Просмотров:
    232
  2. lmike
    Ответов:
    18
    Просмотров:
    184
  3. VikTor1990
    Ответов:
    0
    Просмотров:
    48
  4. hitesh
    Ответов:
    6
    Просмотров:
    133
  5. Hackerelite
    Ответов:
    24
    Просмотров:
    407

Поделиться этой страницей