Синтаксис
function DateTimeToFileName(ADateTime: TDateTime; AExt: string): string;
Описание
Возвращает имя файла на основе переменной типа TDateTime и расширения AExt. В полученном имени, после даты/времени, в скобках отображаются миллисекунды.
Пример 1:
var
aDate: TDateTime;
aStr : string;
begin
aDate := StrToDateTime('15.06.2017 14:45:33');
aStr := DateTimeToFileName(aDate, '.txt'); // результат: переменная aStr = '15.06.2017 14.45.33(000).txt'.
end.
Пример 2:
Если стандартный формат функции DateTimeToFileName не подходит (например когда требуется использовать в имени файла дату/время без миллисекунд), то при помощи функции ZeroPad можно сформировать имя файла в требуемом формате. Для этого нужно создать новый скрипт с типом события "Глобальный модуль" и написать свою функцию формирования имени файла в требуемом формате, например:
interface
function myDateTimeToFileName(AVal: TDateTime; aExtFile: string): string;
implementation
// функция формирования имени файла в своем формате на основе переменной типа TDateTime
function myDateTimeToFileName(AVal: TDateTime; aExtFile: string): string;
var
aDate, aTime, aExt: string;
begin
aDate := ZeroPad(DayOf(AVal), 2) + '.' + ZeroPad(MonthOf(AVal), 2) + '.' + ZeroPad(YearOf(AVal), 4) + ' '; // формируем дату в нужном формате
aTime := ZeroPad(HourOf(AVal), 2) + '.' + ZeroPad(MinuteOf(AVal), 2) + '.' + ZeroPad(SecondOf(AVal), 2); // формируем время в нужном формате
Result := aDate + aTime + aExtFile; // формируем итоговое имя файла
end;
end.
Далее можно использовать полученную функцию в нужных скриптах, например:
var
aReport: TM_Report;
begin
// примеры использования:
// строим отчет и сохраняем его на клиенте в формате ".xlsx",
// с добавлением к имени файла текущей даты/времени в своем формате
aReport := ReportBuild('Мой отчет');
aReport.Save(GetClientName, 'Мой отчет ' + myDateTimeToFileName(Now, ''), '', rfExcel2007);
// строим отчет и сохраняем его на клиенте в формате ".docx",
// с добавлением к имени файла периода построения отчета в своем формате
aReport := ReportBuild('Мой отчет');
aReport.Save(GetClientName, 'Мой отчет с ' + myDateTimeToFileName(vrRepFrom.AsDateTime, '') +
' по ' + myDateTimeToFileName(vrRepTo.AsDateTime, ''), '', rfWord2007);
// создаем текстовый файл с добавлением к имени файла текущей даты/времени в своем формате
TextFileOpen('Мой файл ' + myDateTimeToFileName(Now, '.txt'), '', fomRewrite, fcpUTF8);
end.