Использование калькулятора полей

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

Components of Field Calculator

Для открытия калькулятора полей, сначала откройте таблицу атрибутов или другую таблицу в Christine. Нажмите на поле, которое Вы хотите редактировать и выберите команду Calculate. Также можно выбрать команду Calculate из меню Field и выбрать редактируемое поле. Обратите внимание, что таблица не должна быть открыта только для чтения. Для вычисления всех записей в таблице, не выбирайте конкретную запись, или выберите все записи. Для вычисления только одной или нескольких записей, выберите их прежде чем вызывать вычисления.

Одно из самых распространённых применений калькулятора полей – это копирование содержимого одного поля в другое. При работе с калькулятором полей, нажмите на исходное поле в списке полей. Оно должно появиться в рабочей области калькулятора в квадратных скобках. Наберите «;» и нажмите кнопку Calculate. Это заполнит новое поле копией данных исходного. Разумеется, тип обоих полей должен быть одинаковым, в противном случае вам придется конвертировать данные.

В рабочей области калькулятора полей Вы можете использовать и более сложные вычисления используя язык скриптов Christine. Для более подробной информации, просмотрите раздел Calculating a field’s values в справке Christine, или пример Изменение абсолютных путей в каталоге пространственных данных на релятивные. Также Вы можете использовать справку прямо в калькуляторе полей для получения описаний работы метода который Вы используете. Для этого просто выберите метод, который вы написали в калькуляторе полей, и нажмите кнопку Help.

Дополнительные примеры операций, которые могут быть использованы в калькуляторе полей включены в следующие таблицы:


Математические операции

ОперацияПример кода
Add two (or more) fields [NUMFLD] = [NUMFLD1] + [NUMFLD2];
Subtract two (or more) fields [NUMFLD] = [NUMFLD1] - [NUMFLD2];
Multiply two (or more) fields [NUMFLD] = [NUMFLD1] * [NUMFLD2];
Divide two (or more) fields [NUMFLD] = [NUMFLD1] / [NUMFLD2];
Convert units from meters to feet [NUMFLD] = [METERS_FLD] * 3.2808;
Convert degrees, minutes, seconds to decimal degrees [NUMFLD] = [DEG] + ([MIN]/60) + ([SEC]/3600);
Calculate population density [NUMFLD] = [TOTAL_POP] / [AREA];
Mean value of two fields [NUMFLD] = ([NUMFLD1] + [NUMFLD2]) / 2;
Number of characters in string stored in text field [TEXTFLD].GetLength([NUMFLD]);


Текстовые операции

ОперацияПример кода
Populate field with new text [TEXTFLD] = "Text";
Concatenate two text fields without space [TEXTFLD] = [TEXTFLD1] + [TEXTFLD2];
Concatenate two text fields with space [TEXTFLD] = [TEXTFLD1] + " " + [TEXTFLD2];
Concatenate new text with space and field [TEXTFLD] = "Text" + " " + [TEXTFLD1];
Write content of numeric field to text field [NUMERICFLD].AsString([TEXTFLD]);
Write the leftmost n characters (where n is the number of characters) [TEXTFLD].Left(n, [TEXTFLD]);
Write the rightmost n characters (where n is the number of characters) [TEXTFLD].Right(n, [TEXTFLD]);
Convert all text to lowercase [TEXTFLD].LCase();
Convert all text to uppercase [TEXTFLD].UCase();
Trim space(s) from beginning and end of text [TEXTFLD].TrimWhiteSpace(TRUE, TRUE);
Replace a character of text field by other (replaces “C” with “D”) Number nLen i;
String sStr;
[TEXTFLD].GetLength(nLen);
while(i < nLen);
[TEXTFLD].Get(i, sStr);
if (sStr == "C");
[TEXTFLD].Set(i, "D");
endif;
i = i + 1;
endwhile;