Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: NewUser от 15 Ноября 2023, 09:16:14

Название: Не работает ShowClient в веб интерфейсе.
Отправлено: NewUser от 15 Ноября 2023, 09:16:14
Добрый день, тестирую проект в веб интерфейсе, ибо банально проще перезапустить проект, чем постоянно открывать Simple Scada Client.
Создаем окно Window1, создаем кнопку Button1  и когда создаем сигнал (событие) OnClick.
Код: (delphi)
procedure Button_OnClick(Sender: TM_Control);
begin
  Window1.ShowClient(GetCientName);
end.
То событие будет корректно отрабатывать как в клиенте, так и в веб-интерфейсе.
Но если мы отойдем от этого шаблона , то ShowClient уже не будет работать в веб-интерефейсе т.е выводить окно, и не только он а еще ShowMessageClient.
1) Не будет работать если повесить на скрипт-событие Sql_error (Ошибка Sql-запроса)
2) Не будет работать если повесить на событие  OnDataChange
3) Не будет работать если создать объект ему прописать событие OnClick (вызов Button1.OnClickEvent)
Это то что нашел.
В общем событие ShowClient и ShowMessageClient в веб-интерфейсе работают почему только в событие OnClick, не важно событие какого объекта Кнопка, фигура...
хотя другие объекты не тестировал.
Название: Re: Не работает ShowClient в веб интерфейсе.
Отправлено: Simple-Scada от 15 Ноября 2023, 09:43:36
Здравствуйте.

Все верно, см. описание функции GetClientName в руководстве по ссылке (https://simple-scada.com/help/script/getclientname.html). События которые Вы описали вызываются сервером скады, а не клиентом (и будут вызываться даже если к серверу не подключено ни одного клиента), поэтому получить имя клиента (как и любую другую информацию о клиенте) не получится. Поэтому GetClientName в них будет возвращать пустую строку и окно будет выдано только на клиентах у которых имя равно пустой строке. Для десктоп клиентов имя задаётся в настройках, через поле "Имя этого клиента" (https://simple-scada.com/help/manual/settings-simple-client.html?anchor=servset). Для веб-клиентов генерируется уникальное имя.
Используйте метод ShowAll (https://simple-scada.com/help/script/wshowall.html), если нужно отобразить окно на всех подключенных клиентах.