Новости



Visual FoxPro 9 позволяет создавать ещё более производительные приложения баз данных.
Двадцатиление FoxPro! Microsoft принимает поздравления.
Visual FoxPro Toolkit for .NET - более 225 функций VFP 7.0, для языков .NET (подробнее)

Команда CALCULATE

См. также Пример

Выполняет финансовые и статистические операции над полями в таблице или над вы ажениями, включающими поля.

Синтаксис

CALCULATE eExpressionList
[Scope] [FOR lExpression1] [WHILE lExpression2]
[TO MemVarList | TO ARRAY ArrayName]
[NOOPTIMIZE]

Параметры

eExpressionList

Задает выражения, которые могут содержать любую комбинацию следующих функций:

AVG(nExpression)

CNT( )

MAX(eExpression)

MIN(eExpression)

NPV(nExpression1, nExpression2 [, nExpression3])

STD(nExpression)

SUM(nExpression)

VAR(nExpression)

Функции в списке выражений eExpressionList разделяются запятыми. Эти функции являются специфическими для CALCULATE и под обно описываются ниже в данном разделе. Их не следует смешивать с независимыми функциями, имеющими те же названия. Например, CALCULATE MIN( ) и MIN( ) fox90001.gif это две разные функции.

Scope

Задает диапазон записей, используемых при вычислении. В вычислении участвуют только те записи, которые попадают в указанный диапазон. Он задается следующими предложениями: ALL, NEXT nRecords, RECORD nRecordNumber и REST. Подробнее о предложениях диапазона см. тему Предложения диапазона или главу 2 "Обзор языка программирования" Руководства разработчика. Команды, использующие параметр Scope, воздействуют только на таблицу активной рабочей области.

По умолчанию областью действия команды CALCULATE являются все записи (предложе ие ALL).

FOR lExpression1

Определяет, что в вычислении могут участвовать только записи, удовлетворяющие огическому условию lExpression1. Предложение FOR позволяет выполнять условное включение записей в вычисление, отфильтровывая ненужные записи.

Технология Rushmore допускает оптимизацию запроса CALCULATE ... FOR, если lExpression1 является оптимизируемым выражением. Для повышения производительности рекомен уется пользоваться в предложении FOR оптимизируемым выражением. Об оптимизируем х по технологии Rushmore выражениях см. темы SET OPTIMIZE, Основы технологии Rushmore и главу 17 "Оптимизация приложений" Руководства разработчика.

WHILE lExpression2

Задает условие, согласно которому записи будут включаться в вычисление до тех пор, пока логическое выражение lExpression2 остается истинным (.T.).

TO MemVarList

Задает одну или несколько переменных памяти, в которые записываются результаты вычисления. Если указанной переменной памяти не существует, Visual FoxPro автоматически создает переменную памяти с заданным именем.

TO ARRAY ArrayName

Задает имя массива, в который могут быть записаны результаты вычисления. Если задано имя несуществующего массива, Visual FoxPro автоматически создает массив под указанным именем. Если массив существует, но не в состоянии вместить все езультаты вычислений, Visual FoxPro автоматически увеличивает размер массива над ежащим образом. Если существующий массив больше по размеру, чем необходимо, ишние элементы остаются без изменений. Результаты сохраняются в массиве в том по ядке, в котором они заданы в команде CALCULATE.

NOOPTIMIZE

Блокирует оптимизацию команды CALCULATE по технологии Rushmore. Более подробно см. темы SET OPTIMIZE и Основы технологии Rushmore или главу 17 "Оптимизация приложений" Руководства разработчика.

AVG(nExpression)

Вычисляет среднее арифметическое выражения nExpression. При вычислении учитываются только записи, попадающие в диапазон Scope и/или удовлетворяющие условиям FOR или WHILE.

CNT( )

Возвращает число записей в таблице. При вычислении учитываются только записи, попадающие в диапазон Scope и/или удовлетворяющие условиям FOR или WHILE.

MAX(eExpression)

Возвращает максимальное (или самое позднее) значение для выражения eExpression. В предложении MAX( ) можно задать любое поле типа Сharacter, Date, DateTime, Numeric, Float, Integer, Double, или Сurrency или любое выражение, испо ьзующее поля этих типов. При вычислении учитываются только записи, попадающие в иапазон Scope и/или удовлетворяющие условиям FOR или WHILE.

MIN(eExpression)

Возвращает минимальное (или самое раннее) значение для выражения eExpression. В предложении MAX( ) можно задать любое поле типа Сharacter, Date, DateTime, Numeric, Float, Integer, Double, или Сurrency или любое выражение, испо ьзующее поля этих типов. При вычислении учитываются только записи, попадающие в иапазон Scope и/или удовлетворяющие условиям FOR или WHILE.

NPV(nExpression1, nExpression2 [, nExpression3])

Вычисляет окончательную сумму в серии предстоящих перемещений наличности с учетом постоянной периодической процентной ставки.

nExpression1 задает процентную ставку, выраженную в виде десятичной дроби.

nExpression2 задает поле, выражение с участием полей или числовое выражение, представ яющее серию перемещений наличности. Каждое такое перемещение может иметь либо по ожительное, либо отрицательное значение. Когда выражение nExpression2 является полем, считается, что значение каждой записи этого поля выражает пе емещение наличности.

nExpression3 задает необязательную величину начального инвестирования. Если эта величина е задана, то предполагается, что начальное инвестирование имело место в конце первого периода. Размер начального инвестирования является первой записью в по е; отрицательное значение этой величины соответствует расходу наличности.

При вычислении учитываются только записи, попадающие в диапазон Scope и/или удовлетворяющие условиям FOR или WHILE.

STD(nExpression)

Вычисляет среднее квадратичное отклонение для выражения nExpression. Эта величина характеризует степень отличия значений полей или выражений, использующих поля, от среднего для этих значений. Чем меньше среднее квадратичное отклонение, тем меньше значения отклоняются от среднего. При вычислении учит ваются только записи, попадающие в диапазон Scope и/или удовлетворяющие условиям FOR или WHILE.

SUM(nExpression)

Вычисляет общую сумму значений выражения nExpression. При вычислении учитываются только записи, попадающие в диапазон Scope и/или удовлетворяющие условиям FOR или WHILE.

VAR(nExpression)

Вычисляет дисперсию выражения nExpression. Величина дисперсии равняется среднему квадратичному отклонению, возведенному в квадрат. Чем меньше дисперсия, тем меньше значения отклоняются от среднего. При вычислении учитываются только записи, попадающие в диапазон Scope и/или удовлетворяющие условиям FOR или WHILE.

Комментарии

Записи, содержащие нулевое значение не включаются в выполняемые командой CALCULATE операции.



Новое на сайте

  • Обновлен портфель программиста

    Добавлены: Установка HTML Help (Создание справочной системы), Imagedit.zip - Графический редактор ( ico и bmp), Библиотека локализации HTML Help (Русский)
  • Новые примеры программ

    Установка библиотек, Игровая программа "Охота на лис", Установка библиотек "Охота на лис", plastic -"Платежки", Библиотеки (на FPD26), platan -"Платежки" (на Clipper 5.2)
  • Обновленна справка

    Подсказки, технология программирования и использование Visual FoxPro. Команды, функции, операторы, объекты, свойства, события и методы.