Можете показать реализацию?
1. 1.png открыли главный экран.
2. 2.png навели курсор - открылось меню.
Вот на этом месте и вопрос: почему, когда наводим курсор, то меню открывается на всех клиентах, у которых открыт главный экран? Клиенты под разными уч. записями. В программе указано: захват мыши - установить параметр истина, покидание мыши - установить параметр ложь. Параметр, который переключается - подключен к свойству Видимость окна с пунктами меню.
Это как делали вингард. Не зная о проблеме, я скопировал подход, но визуальную составляющую делал с нуля. Когда начал "тестировать" с одного клиента, все работало отлично, решил открыть с другого компа, и тогда обнаружил проблему.
Как вариант - предполагаю, что нужно всё таки сделать главный экран, который будет содержать кликабельные объекты (кнопки - линии, отчеты и т.д.) которые уже будут просто открывать без заморочек заданные окна. Хотелось сделать красиво.
Ну самое огорчающее в этой ситуации - что не могу сделать так, чтобы программа выполнялась на клиентах по отдельности. Но и понимания, как это вообще работает (например, как сайты в интернете) нет. То есть как один сайт с одним экземпляром кода работает уникально у тысяч пользователей. Думаю, что в браузер там подгружается сам код программы, который отрисовывает элементы, взаимодействие и т.д. А в мастерскаде такое реализовано? Раз уж расширение лицензии на дополнительного клиента выходит в копеечку, думаю - что должно быть.
Не рассматривали какие то штатные варианты логгирования действий или они не подходят?
Если правильно понял, Вы говорите о галочках действий (подтверждение, запись в журнал).
В проекте я сделал библиотеку, в которой находится таблица. Над таблицей есть поля и кнопки для заполнения.
Логика следующая: Останавливается линия - происходит запрос в БД о последнем 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 возвращает нужный результат, этот же запрос в протоколах также работает корректно, записывает в массив структур, и отображается в таблице. А ФБ почему-то не хочет работать. Если по этому вопросу есть какие-либо варианты действий, подскажите, пожалуйста.
Планы на скаду были наполеоновские, несмотря на отсутствие опыта работы с ней, относительно быстро разобрался в основах. Но чем больше пытаюсь сделать, тем больше появляется проблем. БОльшая часть решается со временем, но раз я дошел до того, что сам пишу на форум - это, возможно уже отчаяние))





Ответить с цитированием