Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Вопросы по скриптам в Simple-Scada 2  (Прочитано 1222135 раз)

ART63

  • Постоялец
  • ***
  • Сообщений: 151
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #1350 : 16 Марта 2022, 13:52:39 »
Цитировать
USE лучше не использовать, вместо этого укажите имя БД в запросе перед именем таблицы, как описал выше Victor_P..

Правильно я понимаю, что это будет работать только при условии, что обе БД на одном сервере расположены?

Victor_P.

  • Пользователь
  • **
  • Сообщений: 69
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #1351 : 16 Марта 2022, 15:00:45 »
Правильно я понимаю, что это будет работать только при условии, что обе БД на одном сервере расположены?
По идее можно прилинковать и другой сервер к используемому.

mihanikus45rus

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #1352 : 25 Марта 2022, 11:10:24 »
Добрый день. Из за чего может возникать такая ошибка - "Telegram. EC: 400. SendTelegram error: HTTP/1.1 400 Bad Request, ChatID: 892141957". Добавил нового пользователя в список получателей(восьмого по счёту), и только ему не доходят сообщения.

Дополнительно - при добавлениии пользователя(нажимает старт в боте), в настройках скады ему присваивается 10 значный ID. Тестовое сообщение приходит. После сохраняю настройки, захожу заново - ID 9 значный. Сообщения не приходят. В самом телеграмме ID как первый раз присвоено было. Версия скады - 2.5.15.0
« Изменён: 25 Марта 2022, 15:05:38 от Simple-Scada »

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3214
    • Просмотр профиля
    • Simple-Scada
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #1353 : 25 Марта 2022, 15:05:07 »
Здравствуйте.
Нашли ошибку при сохранении настроек, было лишнее ограничение по величине значений ChatID. Сделаем исправление в ближайшее время.

mihanikus45rus

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #1354 : 25 Марта 2022, 15:24:16 »
Спасибо

ACHE

  • Новичок
  • *
  • Сообщений: 22
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #1355 : 27 Марта 2022, 15:34:49 »
Здравствуйте.
Скажите пожалуйста, можно ли отправлять созданный автоматически отчет на почту в формате XLS, а не в PDF?
Пока работает такой скрипт (каждый день формируется отчет, сохраняется в ексель на сервер, отправляется на почту пдф):
Код: (delphi)
var
  aReport: TM_Report;
  aMail: TM_Mail;
begin
    if HourOf(Now) <> 15 then Exit;
   
DateEndAuto.Value := RecodeTime(Now, 14, 5, 0, 0);

  aReport := ReportBuild('Gagarina_sutki');
  aReport.UseOnePageHeaderAndFooter := 1;
  aReport.ExportPageBreaks := 1;
  aReport.Save(SS_SERVER_NAME, 'Отчет Гагарина за ' + DateTimeToFileName(Now, ''), 'C:\Отчеты Асино\Гагарина\', rfExcel2007);
  aMail := SendMail('Simple-Scada', 'Ежедневный отчет по энергоресурсам Гагарина', 'Отчет создан автоматически.');
  aMail.AttachReport(aReport, 'Отчет Гагарина за ' + DateTimeToFileName(Now, ''));

end.
« Изменён: 27 Марта 2022, 21:38:19 от Simple Scada »

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1400
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #1356 : 28 Марта 2022, 11:22:39 »
Здравствуйте.
 
Используя AttachReport можно отправить отчет только в формате PDF. Если требуется обязательно отправлять в письме отчет в Excel, то нужно в скрипте сохранить его в Excel, дождаться построения и сохранения отчета и только после этого отправлять его. Для этого, в Вашем случае можно формировать и сохранять отчет как указано в скрипте в 15:00, а производить отправку, к примеру через 5 минут, в 15:05, когда отчет точно будет сформирован и сохранен. Прикрепить к письму файл отчета можно при помощи команды AttachFile - пример скрипта можно посмотреть по ссылке.

ACHE

  • Новичок
  • *
  • Сообщений: 22
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #1357 : 28 Марта 2022, 14:50:31 »
Прикрепить к письму файл отчета можно при помощи команды AttachFile[/url].

В имени файла используется "+ DateTimeToFileName(Now, '')", так же в конце имени отчёта в скобках проставляется уникальный номер. Как с этим быть?

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1400
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #1358 : 28 Марта 2022, 15:20:23 »
Можно создать внутреннюю переменную с типом данных String и записывать в нее имя файла при формировании отчета. Например:
Код: (delphi)
var
  aReport: TM_Report;
  aMail: TM_Mail;
begin
  if HourOf(Now) <> 15 then Exit;

  vrFileName.Value := 'Отчет Гагарина за ' + DateTimeToFileName(Now, '');

  DateEndAuto.Value := RecodeTime(Now, 14, 5, 0, 0);
  aReport := ReportBuild('Gagarina_sutki');
  aReport.UseOnePageHeaderAndFooter := 1;
  aReport.ExportPageBreaks := 1;
  aReport.Save(SS_SERVER_NAME, vrFileName.AsStr, 'C:\Отчеты Асино\Гагарина\', rfExcel2007);
end.
, где vrFileName - это внутренняя переменная String. Затем эту переменную можно использовать при отправке e-mail.

ACHE

  • Новичок
  • *
  • Сообщений: 22
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #1359 : 28 Марта 2022, 19:13:26 »
где vrFileName - это внутренняя переменная String. Затем эту переменную можно использовать при отправке e-mail.

Тыкните носом до конца уже пожалуйста)) всяко пытался приложить файл, никак не получается.
Делал так:
Код: (delphi)
aReport.Save(SS_SERVER_NAME, FileNameReport.AsStr, 'C:\Отчеты Асино\Гагарина\', rfExcel2007); //работает, читаю переменную FileNameReport, имя пишется правильно, файл сохраняется
aMail := SendMail('Simple-Scada', 'Отчет по энергоресурсам Гагарина', 'Отчет во вложении', Email.Value);
aMail.AttachFile('C:\Отчеты Асино\Гагарина\'+FileNameReport.Value); //письмо приходит пустое

Для теста разделял скрипты, один формирует, второй отправляет по нажатию кнопки. Кириллические символы в пути к файлу и в имени могут влиять?
« Изменён: 28 Марта 2022, 20:29:11 от Simple Scada »

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1400
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #1360 : 29 Марта 2022, 10:48:01 »
К имени прикрепляемого файла нужно добавить расширение ".xlsx". Также следует учитывать, что нужно использовать явное приведение значения переменной к нужному типу. Например, в Вашем случае использовать приведение в строку (свойство AsStr):
Код: (delphi)
aMail.AttachFile(' C:\Отчеты Асино\Гагарина\ ' + FileNameReport.AsStr + '.xlsx');

Чтобы все работало корректно, нужно производить отправку e-mail только после сохранения файла отчета. Если вызвать сохранение отчета в Excel и отправку файла отчета на e-mail в одном скрипте, то скрипт выполнится мгновенно, на момент отправки файла отчет не успеет сохраниться и отправлять будет нечего. Поэтому можно формировать и сохранять отчет как указано у Вас в скрипте в 15:00, а производить отправку, к примеру через 5 минут, в 15:05, когда отчет точно будет сформирован и сохранен. Создайте отдельный секундный скрипт для отправки отчета, например:
Код: (delphi)
var
  aMail: TM_Mail;
begin
  if (HourOf(Now) = 15) and (MinuteOf(Now) = 5) then   // если сейчас 15:05
    if FileNameReport.AsStr <> '' then 
    begin
      FileNameReport.Value := '';
      aMail := SendMail('Simple-Scada', 'Ежедневный отчет по энергоресурсам Гагарина', 'Отчет создан автоматически.');
      aMail.AttachFile(' C:\Отчеты Асино\Гагарина\ ' + FileNameReport.AsStr + '.xlsx');
    end;
end.
Чтобы отправка выполнилась однократно, можно использовать переменную FileNameReport и после отправки сбрасывать ее.
« Изменён: 29 Марта 2022, 11:00:58 от Simple-Scada »

fp

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #1361 : 06 Апреля 2022, 08:43:03 »
Добрый день!
Подскажите, пожалуйста, возможно ли при открытии (переход через скрипт) страницы с трендом или страницы трендов установить начальную точку для отображения трендов на этой странице и интервал?

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1400
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #1362 : 06 Апреля 2022, 10:36:32 »
Здравствуйте. Такой возможности нет.

Raa

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #1363 : 09 Апреля 2022, 10:09:25 »
Здравствуйте. Такой возможности нет.
Очень зря.
« Изменён: 28 Апреля 2022, 11:13:13 от Simple_Scada »

Avtovazov

  • Новичок
  • *
  • Сообщений: 27
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #1364 : 30 Мая 2022, 09:03:24 »
Добрый день
Помогите пожалуйста со скриптом. Задача следующая мне нужно сделать так, чтоб выполнилась математическая функция например вычитание одной переменной из другой, но условием которое разрешит делать это вычитание должно быть, чтоб одна переменная имела статус TRUE, а другая переменная должна изменить свое состояние и вернуться в изначальное (т.е. стать true потом false, симитировать импульс кнопки без фиксации) и только после этого выполнится вычитание?
Ниже скрипт который мне нужен, только немогу понять как сделать так, чтоб только после того как К2 станет true  затем false происходило вычисление

Код: (delphi)
begin
if (k1.AsBool = true) and (k2.AsBool = true) then
vrC.Value := vrA.AsSingle -  vrB.AsSingle
end.
« Изменён: 30 Мая 2022, 09:30:42 от Simple_Scada »