Здравствуйте.
Просьба присылать сразу полный код, т.к. непонятно какие типы данных у переменных. Полный код такой, как описан ниже?
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, как
описано в руководстве. Чтобы удалить миллисекунды можно использовать
функцию Copy и скопировать из имени всё, кроме миллисекунд.