Добрый день!
Процесс формирования отчета не менялся.
1. Формируем отчет:
aReport := ReportBuild('MotoRunHour'); 2. Формируем имя отчета:
NameFileForSend := 'MotoRunHour_'+ DateTimeToFileName(Now, '');
3. На всякий случай сохраняем его на сервере:
aReport.Save(SS_SERVER_NAME, NameFileForSend, 'C:\GeneratedReports\', rfPDF);
4. Отправляем по почте:
aMail := SendMail('Simple-Scada', 'Mail с отчетом', 'Отчет во вложении', 'user1@mail.com, user2@mail.com');
aMail.AttachReport(aReport, NameFileForSend); И вот после обновления по почте присылается файл, но без расширения pdf.
Раньше:
MotoRunHour_01.10.2023 00.00.00 (542).pdf
Теперь:
MotoRunHour_01.10.2023 00.00.00 (542).00 (542.00 (542
Можете проверить у себя?
Дополнительно хотел бы уточнить следующее:
1. В скобках указываются миллисекунды?
2. Для удаления их из названия нужно перед началом изменить формат времени (SetTimeFormat('hh:nn:ss'); ), а в конце при необходимости вернуть обратно той же командой (SetTimeFormat('hh:nn:ss:zzz'); )?
Жду вопросов и ответов!
Здравствуйте.
Просьба присылать сразу полный код, т.к. непонятно какие типы данных у переменных. Полный код такой, как описан ниже?
var
aMail: TM_Mail;
aReport: TM_Report;
NameFileForSend: string;
begin
aReport := ReportBuild('MotoRunHour');
NameFileForSend := 'MotoRunHour_'+ DateTimeToFileName(Now, '');
aReport.Save(SS_SERVER_NAME, NameFileForSend, 'C:\GeneratedReports\', rfPDF);
aMail := SendMail('Simple-Scada', 'Mail с отчетом', 'Отчет во вложении', 'user1@mail.com, user2@mail.com');
aMail.AttachReport(aReport, NameFileForSend);
end.
Или у Вас с переменными выполняются ещё какие-то операции, либо есть разница в типах данных? Есть ли другие обращения к переменным aMail, NameFileForSend или aReport?
Такой код у нас работает правильно, отчет приходит с именем "MotoRunHour_02.10.2023 15.49.28 (548)"
В скобках указываются миллисекунды?
Да.
Для удаления их из названия нужно перед началом изменить формат времени (SetTimeFormat('hh:nn:ss'); ), а в конце при необходимости вернуть обратно той же командой (SetTimeFormat('hh:nn:ss:zzz'); )?
Формат функции DateTimeToFileName нельзя изменить. SetTimeFormat распространяется только на TimeToStr, DateTimeToStr, StrToTime, StrToDateTime, как описано в руководстве (https://simple-scada.com/help/script/settimeformat.html?q=SetTimeFormat). Чтобы удалить миллисекунды можно использовать функцию Copy (https://simple-scada.com/help/script/copy.html) и скопировать из имени всё, кроме миллисекунд.