Пожалуйста, включите JavaScript для просмотра этого сайта.

Скрипты Simple-Scada

Синтаксис

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.