Показано с 1 по 8 из 8

Тема: Получение информации о пользователе в задаче родительского объекта MasterSca

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Цитата Сообщение от AlexeyKitaev Посмотреть сообщение
    ч/з права доступа есть возможность задать только управление элементом, в нашем случае нужно управлять отображением (видимостью) элементов или же передавать значения в программу находящуюся в объекте исполняемом в задаче родительского объекта или в задаче узла (в том числе в экземплярах библиотечных объектов)
    Сделал проект, может поможет: Проект 1.zip

    Для понимания лучше зайти сразу с нескольких браузеров из под разных пользователей.

    Для примера добавлены:
    пользователи: Admin, User1, User2, Guest1, Guest2
    роли: Администратор, Оператор, Диспетчер, Гость

    Возможные пути решения вопроса видимости элементов:

    1. Способ ч/з разграничение по окнам.
    Для пользователя 'Guest2' назначено стартовое окно 'Окно для гостей', для остальных по умолчанию 'Главное окно'.
    У экземпляров библиотечного объекта 'Test2' 'Окно 1' -> 'Главное окно', 'Окно 2' -> 'Окно для гостей'

    2. Способ ч/з текущего пользователя.
    Программы, исполняемые в задаче экрана:
    Объекты > Main > CurrentUser > CurrentUser_FBD_1
    Объекты > Main > Программа_ST_2
    Библиотека > Локальная > TestProgram > Программа_ST

    CurrentUser_FBD_1 предоставляет имя текущего пользователя для Программа_ST_2 и Программа_ST для его проверки.
    Результат работы - вкл/откл видимости кнопок. Видимость кнопки библиотечного объекта Test настроена ч/з параметр окна, а в дереве объектов с выходным параметром ButtonVisibility (Программа_ST).

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

  2. #2

    По умолчанию

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

  3. #3

    По умолчанию

    Цитата Сообщение от AlexeyKitaev Посмотреть сообщение
    Спасибо за содействие, я проверил и способ с переводом библиотечных объектов в наследники работает, однако боюсь, что данный способ мне не подходит, т.к. у меня сотни аналоговых и дискретных датчиков, десятки насосов и задвижек, боюсь, что все ссылки на объекты переводить в наследники будет трудозатратно, и от части костыльно, т.к. вырастит размер проекта и его нагрузка на систему в несколько раз.
    Еще способ. С помощью пользовательского элемента и динамизации.

    Проект 2.zip
    Пользовательский элемент (Script).pdf

    Суть в пробросе пользователя ч/з контролы:
    Res/control_set_current_user.js - для CurrentUser (он глобально устанавливает пользователя через 'window.currentUser')
    Res/control_get_current_user.js - для Test (берет пользователя из 'window.currentUser'. В принципе любой другой может)

    Доступ к свойствам элементов ч/з динамизацию. В экземплярах работает.

    Ознакомьтесь с пользовательским элементом и веб-компонентами. Контролы в MS4D построены на веб-компонентах.

  4. #4

    По умолчанию

    Пообщался с тех. поддержкой, и получил решение задачи, все окна выполняются в задаче экрана, независимо от того, в каком объекте они находятся, и следовательно, если привязать username напрямую к параметру окна, то его значение будет отрабатываться только для одного пользователя.
    Поставил ФБ get_current_username в объект исполняемый в задаче экрана и привязал значение username к параметру библиотечного окна (НАПРЯМУЮ) и всё заработало.

  5. #5

    По умолчанию

    Цитата Сообщение от AlexeyKitaev Посмотреть сообщение
    получил решение задачи
    Спасибо. На самом деле весьма ценная информация, которую обычно не расписывают в справочной системе.
    Последний раз редактировалось Larrrik; 27.10.2023 в 10:32.

Похожие темы

  1. Ответов: 0
    Последнее сообщение: 17.10.2023, 09:57
  2. Получение информации с ПЛК73
    от Lordhmen в разделе OPC Серверы
    Ответов: 7
    Последнее сообщение: 15.09.2022, 19:44
  3. Логгирование информации
    от Exen3city в разделе Трёп (Курилка)
    Ответов: 0
    Последнее сообщение: 04.05.2021, 16:00
  4. Ответов: 8
    Последнее сообщение: 28.03.2016, 21:36
  5. СБОР ИНФОРМАЦИИ С ПЛК
    от Алексей Александрович в разделе Master SCADA 3
    Ответов: 3
    Последнее сообщение: 23.01.2014, 08:11

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •