Основы языка формул. Синтаксис и лексические элементы формул, страница 7

Чтобы в представлении отображались не номера месяцев, а их названия, необходимо выполнить дополнительную работу, так как ни одна функция не возвращает непосредственно названия месяцев (например, июль или август). Но даже если бы такая функция была, все равно невозможно было бы проводить сортировку по названиям месяцев, так как они сортировались бы в алфавитном порядке и апрель бы стоял впереди января! Функция s @Month() возвращает номер месяца, поэтому ее можно использовать для сортировки  документов по месяцам с помощью скрытого столбца, расположенного слева от столбца с названиями месяцев.

Функция @Date() может быть также использована для преобразования числовых значений в даты. Более подробно об этом говорится далее в настоящей главе в разделе "Преобразование значений даты/времени".

Работа со значениями времени

Несколько функций @Functions служат для извлечения и отображения значений времени. В частности, функция @Time извлекает компонент времени из значения даты/времени.

Функции @Hour(), @Minute() и @Second() возвращают, соответственно, часы, минуты и секунды, являющиеся частями значения даты/времени.

Функция @Now возвращает текущую системную дату и время компьютера, на котором выполняется формула; это функция возвращает полное значение даты/времени с точностью до секунды. Таким образом функция @Now дает возможность запоминать время выполнения операций, что очень полезно. Например, можно отслеживать точное время выполнения программы-агента и запоминать это значение в поле хронологии программы-агента или документа.

Следующая формула преобразует текущее время в текстовое значение и присоединяет ее к значениям, уже имеющимся в хронологии документа:

@SetField ("cDocHistory"; cDocHistory: "Notification entailed to

+ jcSendTo + " on " + @Text (@Now; "S2"))

Двоеточие между cDocHistoryи текстовой константой означает, что текстовая константа помещается в конец поля хронологии документа, которое является полем многих значений. Результирующий текст мог бы быть следующим: Notification emailed to John Smith/IS/MyCompany on 08/16/98 08:48:04 PM.

Преобразование значений даты/времени

Преобразование значений даты/времени, как правило, связано с текстовыми значениями. Функция @Text() преобразует значения даты/времени в текстовые значения. Функция @TextToTime() преобразует текстовое значение в значение даты/времени. Функции @Date() и @Time() преобразуют числовые значения в значения даты/ времени.

Функция @Text()имеет следующий синтаксис:

@Text(время-дата;   параметры)

Параметры перечислены в табл. 19.4; они определяют формат возвращаемого значения.

В формуле @Text(@Now; "S2") используется форматированная строка "S2", в результате чего возвращается следующий результат: "05/22/98 04:46:58 РМ".

Таблица 19.4 Параметры функции преобразования даты/времени @Text()

Параметр          Результат

Общие параметры

SO                  Только дата

S1                   Только время

S2                   Дата и время                                                                   

S3                   Дата и время плюс значения Today, Yesterday или Tomorrow

Sx                    Используется когда невозможно предсказать формат передаваемого значения Параметры даты

DO                   Год, месяц и день

D1                    Месяц и день плюс год, если это не текущий год

D2                   Только месяц и день

D3                    Год и месяц

Параметры времени

ТО                   Часы, минуты и секунды

Т1                    Только часы и минуты

Параметры часового пояса

Z0Устанавливает время текущего часового пояса

Z1                    Отображает часовой пояс, если он не является текущим часовым поясом

Z2                    Всегда отображает часовой пояс

Функция @Text() может быть также использована для преобразования текстовых величин в числовые. Она позволяет задавать следующие параметры: