Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: BeRnesty от 25 Июня 2024, 11:50:38

Название: Формирование отчета в скрипте "По изменению переменной"
Отправлено: BeRnesty от 25 Июня 2024, 11:50:38
Добрый день!
Задача: формировать отчет по окончанию процесса. Конец процесса устанавливается в переменной.
Столкнулся с проблемой, что в скрипте "По изменению переменной" отчет формируется, но после строки с ReportBuild ничего не выполняется.
Делаю тот же скрипт "По клику" - все работает.

Скрипт "по изменению переменной":
Код: (delphi)
begin
IF Variable = Experiment then
  if PrevAsBool = True then
RepBuild();
end.
(Да, мне нужно формировать когда переменная старнет False)

Скрипт "По клику":
Код: (delphi)
begin
  RepBuild();
end.

Сам скрипт отчета:
Код: (delphi)
var
aReport: TM_Report;
  begin
  vrTimeEnd.Value:= Now;
  ReportPath.Value:= ('C:\ScadaReports\Plasma_Movement\' + DateToStr(vrTimeEnd.Value) + '\');
  ForceDirectories(ReportPath.Value);

  aReport := ReportBuild('Plasma_Report');
  aReport.View(GetClientName);
  aReport.Save(GetClientName, 'Plasma_Report' + DateTimeToFileName(Now, ''), '', rfExcel2007);
  end;
end.
(VrTimeBegin:= Now; задается при старте процесса)
Название: Re: Формирование отчета в скрипте "По изменению переменной"
Отправлено: Simple Scada от 25 Июня 2024, 15:06:13
Здравствуйте.

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