adfun.ru
| |
BIGLIB |
| большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно |
|
| |
ФАНТАСТИКА |
| фентези,
фантастика, фантастические повести |
|
| |
ФИЛОСОФИЯ |
книги, которые заставляют
задуматься над окружающим тебя миром.
|
|
| |
МЕДИЦИНА |
медицинские книги,
методички,
народные лечебники |
|
| |
КУЛИНАРИЯ |
рецепты
тортов, консервирование,
все о спиртных
напитках. |
|
| |
СТИХИ |
| стихи популярных
и не очень авторов |
|
| |
ТВОРЧЕСТВО |
| народное творчество,
стихи, песни и т.д. |
|
| |
ЮМОР |
| анекдоты, приколы,
смешные истории |
|
| |
ЭРОТИКА |
| эротические рассказы,
книги о технике секса,
кама-сутра и др. |
|
|
| |
 |
В данной части Учебника Вам предстоит добавить деревья принятия
решений, в которых используются функции @NOW, @INT и @ROUND.
89
Синтаксис
--------------------------------------------------------------------
Все функции имеют один и тот же типовой синтаксис:
Имя-функции (аргумент1, аргумент2, ...)
___________ _________ _________
Каждая функция имеет имя, которое помогает идентифицировать
выполняемое ею действие. Вы можете задавать имена функций в верхнем
регистре (прописными буквами), в нижнем регистре (строчными буквами)
или в комбинации обоих регистров. Вы можете либо вводить имя функции
в выражение, либо вклеивать ее с помощью операции Paste Function
(Вклеить функцию).
Каждая функция имеет определенное число аргументов. Аргумент
__________
задает данные, необходимые этой функции. В зависимости от функции,
число аргументов варьируется от 0 до 14.
Аргументы для функции задаются внутри круглых скобок и
разделяются с помощью символа-разделителя элементов списка, который
описан в блоке International (Международная поддержка) управляющей
панели (Control Panel) (обычно этим разделителем является запятая).
До аргумента и после него могут находиться пробелы. Если
аргументы не требуются, то скобки задавать не обязательно.
Каждый аргумент функции может быть значением-константой, именем
поля, выражением или другой функцией. Если какой-либо из аргументов
функции является выражением или функцией, система ObjectVision
сначала интерпретирует эти аргументы и передает их значения в
главную функцию (с нулевым уровнем вложенности).
В случае необходимости система ObjectVision пытается
преобразовать аргументы к тому типу данных, который требуется
функции.
Функции @NOW, @INT и @ROUND
--------------------------------------------------------------------
Выражения в деревьях принятия решений полей Order Date (Дата
заказа), Less Discount (Уменьшенная скидка) и Sales Tax (Налог на
продажи) используют функции @NOW, @INT и @ROUND.
Функция @NOW возвращает текущее значение даты и времени,
считанных из таймера компьютера, на котором функционирует система
ObjectVision. Это значение имеет целую часть и дробную часть:
- целая часть представляет даты с 1 Января 1800 года и до 31
Декабря 2099 года включительно. Его значение может находиться в
диапазоне от -36522 до 73050 и вычисляется как число дней до 30
Декабря 1899 года или после него (сам это день имеет значение
0).
- дробная часть этого значения представляет время с 12:00 по
полуночи до 11:59:59 после полудня и вычисляется как дробная
часть от 24 часового дня.
90
Функция @NOW изменяет значения только тогда, когда система
ObjectVision вычисляет ее (например, когда открывается прикладная
задача или когда вычисляется значение поля, которое обращается в
своем дереве принятия решений к функции @NOW).
Функция @INT отсекает дробную часть аргумента, превращая его в
целое. Функция @ROUND округляет свой первый аргумент до числа цифр,
указанных во втором аргументе.
Дерево принятия решений поля Order Date (Дата заказа)
--------------------------------------------------------------------
Дерево принятия решений поля Order Date (Дата заказа) состоит
из одного узла вывода, который содержит следующее выражение:
@INT(@NOW)
Это выражение начинается с имени функции @INT, непосредственно
за которым следует левая круглая скобка. @NOW является другой
функцией, и здесь она используется в качестве аргумента функции
@INT. Непосредственно за функцией @NOW следует правая круглая
скобка, поскольку функция @NOW не имеет аргументов. Эта последняя
правая скобка завершает список аргументов функции @INT.
Данное выражение указывает системе ObjectVision получить
текущее значение даты и времени из таймера компьютера, а затем
отбросить дробную часть, превратив его в целое число. Поскольку
дробная часть значения, представляющая время, отбрасывается, эта
формула вычисляет текущую дату, отображаемую системой ObjectVision в
поле Order Date (Дата заказа).
Блоки диалога Condition (Условие) и Conclusion (Вывод)имеют
кнопку Paste Function (Вклеить функцию), подобную кнопке Paste Field
(Вклеить поле), которую Вам уже приходилось использовать. Когда Вы
выбираете кнопку Paste Function (Вклеить функцию), Вы селектируете
необходимую функцию из списка. Вы можете также селектировать
операцию Paste Argument (Вклеить аргумент), чтобы получить шаблон
списка аргументов функции, вклеенный в выражение с помощью этой
операции.
+++> Ваши дальнейшие действия:
1. Селектируйте поле Order Date (Дата заказа), затем выберите
команду Tools| Tree (Инструментарий| Дерево).
2. Выберите команду Objects| Conclusion (Объекты| Вывод).
3. Выберите кнопку Paste Function (Вклеить функцию) и из списка,
который появляется в блоке диалога Paste Function (Вклеить
функцию), выберите функцию INT. Выражение в блоке диалога
Objects| Conclusion (Объекты| Вывод) будет выглядеть следующим
образом:
@INT()
4. Вновь выберите кнопку Paste Function (Вклеить функцию) и
выберите функцию NOW. Теперь выражение завершено:
91
@INT(@NOW)
5. Нажмите клавишу Enter или выберите кнопку OK, чтобы закрыть
этот блок диалога.
6. Закройте инструментальное окно дерева (Tree Tool). Заметьте,
что сегодняшняя дата отображается в поле Order Date (Дата
заказа).
Значение поля Order Date (Дата заказа) не будет изменяться до
тех пор, пока система ObjectVision не вычислит его повторно. Если бы
Ваша работа над прикладной задачей затянулась бы за полночь, но в
процессе этой работы у системы ObjectVision не возникало
необходимости вычислить функцию @NOW (например, вследствие
перезагрузки прикладной задачи или путем использования команды
Field| Calculate (Поле| Вычислить)), то Вы увидели бы, что поле
Order Date (Дата заказа) попрежнему содержит то значение, которое
оно имеет в настоящий момент.
Дерево принятия решений для поля Less Discount (Уменьшенная скидка)
--------------------------------------------------------------------
Дерево принятия решений для поля Less Discount (Уменьшенная
скидка) состоит из одного узла вывода, который содержит следующее
выражение:
@ROUND(Amount*Discount,2)
Функция @ROUND использует следующий синтаксис:
@ROUND(X,Num),
где X представляет собой числовое выражение, которое должно
округляться, а Num указывает, как должно производиться округление
числа X. Если Num больше нуля, то X округляется до Num цифр справа
от десятичной точки. (Подробно функция @ROUND описана в главе 8
"Справочника по системе ObjectVision".)
В выражении поля Less Discount (Уменьшенная скидка) X является
значением, которое получается в результате умножения значения поля
Amount (Базовая цена) на значение поля Discount (Скидка). Значение
Num равно 2.
Данное выражение указывает системе ObjectVision вычислить
значение поля Less Discount (Уменьшенная скидка) путем умножения
значения поля Amount (Базовая цена) на значение поля Discount
(Скидка) с последующим округлением результата до двух десятичных
знаков.
Теперь Вам предстоит воспользоваться вариантами Paste Field
(Вклеить поле), Paste Function (Вклеить функцию) и Paste Arguments
(Вклеить аргументы) при добавлении дерева принятия решений поля Less
Discount (Уменьшенная скидка).
|
adfun.ru
|
|
|
|