Ужас, а как же пользователи, права, экземпляры для них?
Представляю, ходишь в сбер онлайн, а там другой пользователь тебе меню тыкает. :)
Вид для печати
Ужас, а как же пользователи, права, экземпляры для них?
Представляю, ходишь в сбер онлайн, а там другой пользователь тебе меню тыкает. :)
egor3150 ну по идее это регулировать web сервер должен, и даже если с двух разных ПК зайдут два одинаковых пользователя, выбор какого-то меню одним пользователем не должны приводить к показу этого меню у другого пользователя. То есть кроме имя/пароль еще должно фигурировать id пользователя (правильнее сессии), которое у каждой сессии должно быть своим и web сервер должен разруливать это самостоятельно, а не по прихоти настроек в scada (по сути если что-то в ms4d и можно сделать, то получается костылями)
меня такой факт еще больше отвращает от MS4D, получается там кривой WEB сервер.
1) Кас. окна меню
Можете показать реализацию?
Потому что как я понял задумку, должно отрабатывать нормально - у каждого юзера свое окно или всплывающее окно
2)
Не исключено что имеет место баг,
Не рассматривали какие то штатные варианты логгирования действий или они не подходят?
3) В текущей 1.3.5. есть косяк с подключением внешних источников, в частности у меня Postgres так же часть кнопок не доступна, нужно долбить ТП
Можете показать реализацию?
1. Вложение 78449 открыли главный экран.
2. Вложение 78448 навели курсор - открылось меню.
Вот на этом месте и вопрос: почему, когда наводим курсор, то меню открывается на всех клиентах, у которых открыт главный экран? Клиенты под разными уч. записями. В программе указано: захват мыши - установить параметр истина, покидание мыши - установить параметр ложь. Параметр, который переключается - подключен к свойству Видимость окна с пунктами меню.
Это как делали вингард. Не зная о проблеме, я скопировал подход, но визуальную составляющую делал с нуля. Когда начал "тестировать" с одного клиента, все работало отлично, решил открыть с другого компа, и тогда обнаружил проблему.
Как вариант - предполагаю, что нужно всё таки сделать главный экран, который будет содержать кликабельные объекты (кнопки - линии, отчеты и т.д.) которые уже будут просто открывать без заморочек заданные окна. Хотелось сделать красиво.
Ну самое огорчающее в этой ситуации - что не могу сделать так, чтобы программа выполнялась на клиентах по отдельности. Но и понимания, как это вообще работает (например, как сайты в интернете) нет. То есть как один сайт с одним экземпляром кода работает уникально у тысяч пользователей. Думаю, что в браузер там подгружается сам код программы, который отрисовывает элементы, взаимодействие и т.д. А в мастерскаде такое реализовано? Раз уж расширение лицензии на дополнительного клиента выходит в копеечку, думаю - что должно быть.
Не рассматривали какие то штатные варианты логгирования действий или они не подходят?
Если правильно понял, Вы говорите о галочках действий (подтверждение, запись в журнал).
В проекте я сделал библиотеку, в которой находится таблица. Над таблицей есть поля и кнопки для заполнения.
Логика следующая: Останавливается линия - происходит запрос в БД о последнем ID записи (запросы через протоколы - Postgres - в созданную для этих целей таблицу). ID получен - назначается следующий по порядку, фиксируется время. Назначенный ID + время начала остановки записываются в БД. Далее, если линия запускается - по этому же ID происходит запись времени окончания остановки. Так по кругу запусков-остановок.
Оператор выбирает из таблицы нужный ID записи и вносит в поля данные (причина, узел, комментарий) и жмет "Подтвердить". Происходит обновление строки с этим ID.
Это сделано по той причине, что встроенный Журнал из палитры не предоставляет нужного функционала (есть только комментарий, который вносится от руки) (писал по этому вопросу в ТП, закрыли заявку, возможно модернизируют). А нужно, чтобы причины простоев были систематизированы, для корректных отчетов (у меня причины и узлы выбираются из выпадающего списка).
Вот там и нужен вызов ФБ для получения имени пользователя, который подтвердил простой.
Пока что выход из ситуации вижу такой: поставить время авторизации группе, например, "Операторы", около 3мин. Чтобы авторизованных отключало автоматически, а каждый, кто будет заходить - будет "последним" и, предполагаю, что ФБ будет отрабатывать корректно (но это не точно). Другая проблема - как правило - операторам не нужно лишних движений, и каждый раз авторизовываться чтобы проверить, всё ли подтверждено и учтено - им будет лень и сложно.
В текущей 1.3.5. есть косяк с подключением внешних источников, в частности у меня Postgres так же часть кнопок не доступна, нужно долбить ТП
Я отработал модуль отчетов в 1.3.4. Пока не занимался этим в 1.3.5, не знаю, что меня там ждет, кроме отсутствия конструктора запросов.
Но из того, что сейчас актуально для меня - это использование ФБ SqlRequestWithResult. Ранее тут обсуждалась проблема с тем, что ФБ возвращает "Result is not array" но о её решении так и не было написано. Предполагали, что проблема в том, что бесплатная версия RT не позволяет вызвать этот ФБ. Я попробовал на лицензии (PRO на 1000 точек). И результат тот же самый. Запрос через pgAdmin возвращает нужный результат, этот же запрос в протоколах также работает корректно, записывает в массив структур, и отображается в таблице. А ФБ почему-то не хочет работать. Если по этому вопросу есть какие-либо варианты действий, подскажите, пожалуйста.
Планы на скаду были наполеоновские, несмотря на отсутствие опыта работы с ней, относительно быстро разобрался в основах. Но чем больше пытаюсь сделать, тем больше появляется проблем. БОльшая часть решается со временем, но раз я дошел до того, что сам пишу на форум - это, возможно уже отчаяние))
Как нас учили, первый экран должна быть авторизация, ввод имени пользователя и пароля и уже далее в зависимости от статуса,
открываются главный экран, тех процесс или что там нужно.
2. не уверен, но кажется похожая тема всплывала (не именно с меню но что-то похожее). Суть, в захват мыши как-то надо добавлять кто ее захватил, какой-то параметр.
kondor3000 - учили костылям? :). Ну пример, открыл на работе клиента и не вышел. Потом из дома или еще откуда опять зашел под собой, что, на работе на мониторе будут выполняться те же действия? Это че за такой Web сервер, который так делает?
kondor3000 правильный Web сервер, а не черте что в данном случае. :)
пока я не прочитал выше написанное, преспокойно пользуясь RapidScada как-то и не задумывался, что может быть иначе. я могу входить хоть с нескольких ПК под одним пользователем. Тем более при входе разными пользователями (с доступом к управление и без оного) действия одного пользователя не отражаются на мониторе другого, даже если они открыли одну и ту же мнемосхему.
А тут явно, что-то нечистое творится :)
Вообще все действия должны выполняться на клиенте, который подключился к Web серверу, а не на Сервере с ретрансляцией картинки клиенту.
На сервере должен выполняться только бекэнд, а отрисовка у клиента.