MapInfo Pro (Версия 15.2). Руководство - часть 38

 

  Главная      Учебники - Разные     MapInfo Pro (Версия 15.2). Руководство пользователя

 

поиск по сайту            правообладателям  

 

 

 

 

 

 

 

 

содержание      ..     36      37      38      39     ..

 

 

MapInfo Pro (Версия 15.2). Руководство - часть 38

 

 

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

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

Районирование не создает новых объектов на карте и не изменяет исходный стиль оформления
объектов. Это просто инструментарий динамической группировки отображающий объекты
карты объединённые в районы по какому-либо критерию. Если объекты на карте не затронуты,
то можно зафиксировать районирование, сохранив таблицу.

Можно районировать любую таблицу содержащую графические объекты, полигоны, линии
или точки. Для объектов карты будет применён назначенный для района стиль заливки, линий
или символов. Число районов в таблице ограничено числом 594.

Можно использовать районирование в широком спектре приложений, таких как создание и
управление территориями продаж, школьные или избирательные округа, зоны обслуживания
служб экстренной помощи и т.п.

Можно использовать районирование в случае когда вам требуется создать новое
районирование или когда необходимо изменить существующее.

Однако, прежде чем начать районирование, ознакомимся с двумя ключевыми понятиями:
"список районов" и "изменяемый район".

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

Список районов – основной инструмент для создания и изменения районов. Окно районов
выглядит похоже на другие окна списков в MapInfo Pro, но в отличие от них, это окно
динамическое и позволяет сразу видеть результаты изменений производимых в окне карты
с пересчётом суммарных значений для районов. Вы сразу же увидите результаты изменений.
Можно закрепить эти изменения или продолжить пробовать другие варианты районирования.

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

Новое районирование

.

597

Специальные темы в MapInfo Pro

• Дополнительную информацию о районировании и связанные с ним разделы вы можете

найти в

Справочной системе

.

Дополнительная информация о

районировании

содержится в разделе

Справочной системы

:

Как настроить изменяемый район

.

Расчеты при районировании

При расчете процента для конкретных колонок (таких как население, доход, возраст или
религиозная принадлежность) возможно два метода расчётов. Суть первого метода сводится
к вычислению весов по колонкам, а сумма всех записей в каждой колонке принимается равной
100%. Второй метод вычисляет веса построчно, исходя из выбранной строки (или суммы
строк). Например, в следующей таблице:

C

B

A

1

1

1

2

2

2

При расчете по колонке веса записей в колонке A определяются следующим образом:

Percentage (A1)=A1/(A1 + A2) x 100%; Percentage (A2)=A2/(A1 + A2) x 100%

При расчете по строчкам определяются веса для записей A1 и B1, исходя из суммы по колонке
C1:

Percentage (A1) = A1/C1 x 100%; Percentage (B1) = B1/C1 x 100%

598

Специальные темы в MapInfo Pro

Чтобы получить осмысленные результаты, очень важно выбрать правильную
базовую запись (или сумму записей). К примеру, если выбрать значение из

Примечание:

колонки численности населения, а базовое значение из колонки дохода,
результаты осмысленными не будут.

• Более подробную информацию можно найти в разделах

Справочной системы

:

Выделение

районов

и

Районирование по строкам

.

Настройки механизма районирования

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

КАРТА

в группе команд

Анализ

нажмите сначала кнопку

Районирование

, затем

Настройки

– откроется диалог

Параметры районирования

. В разделе Сортировка выберите из значений:

изменяемый первым, по алфавиту, не нужна. Можно также выбрать вариант отображения
сетки в списке районов, и сохранить эту настройку.

Упомянутая выше настройка

Изменяемый первым

может быть полезной при большом

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

Изменение стиля отображения районов. Щелкните на значке со стилем оформления объектов
для района в окне районы. Появится диалог

Стиль региона

,

Стиль линии

или

Стиль

символа

, в котором вы можете изменить стиль оформления выбранного района.

Для того чтобы сохранить изменение стиля оформления районов, необходимо сохранить
рабочий набор. Команда

Сохранить таблицу

сохранит только изменения в районировании.

Стили оформления относятся к тематическому слою, а не к самой таблице. Изменения в
районировании вносятся в саму таблицу и поэтому могут быть сохранены вместе с ней.

Записи без графических объектов

Районирование – объединение объектов в районы. Если при районировании таблица содержит
записи не имеющие графических объектов, помните, что MapInfo Pro всё равно включает их
в список районов. Нельзя присоединять эти записи к новому району. Они будут влиять на
вычисления при присоединении объектов к новому району.

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

599

Специальные темы в MapInfo Pro

Создание выражений

Создание математических выражений, подобно созданию высказываний на обычном языке.
Существует словарь, из которых вы можете выбирать слова, и определённые синтаксические
правила их объединения. Синтаксис выражений существенно проще, чем синтаксис
разговорного языка, а словарь существенно меньше. Однако, большинство из нас используют
родной язык годами и поэтому он кажется простым и естественным, в то время как построение
выражений может сначала показаться сложным.

Подобно тому, как в разговорном языке существуют простые предложения и сложные
предложения, так и математические выражения существуют простые и сложные. Даже если
вы не приобретёте привычку построения сложных выражений, вы всё равно сможете
использовать все команды MapInfo Pro, в которых они используются. Это возможно благодаря
тому, что создание простых выражений – элементарно просто, и вместе с тем позволяет
работать с данными на очень серьёзном уровне.

• Подробную информацию вы можете найти в разделе

Справочной системы

:

Создание

выражений

.

Выражения, где и когда их можно использовать

В некоторых диалогах MapInfo Pro есть возможность вызвать диалог

Выражение

для

составления математических и алфавитно-цифровых выражений формул. Смотрите

Составление выражений

в

Справочной системе

.

Выражения используются в следующих командах:

Выбрать

,

Обновить колонку

,

Добавить

тематику

и в операциях подписывания. Выделите слой в окне

Слои

или

Проводник

, чтобы

на ленте появилась вкладка

ПОДПИСИ

, где можно создать выражение для подписей.

По-другому, дважды щелкните по названию слоя, чтобы открыть диалог

Свойства слоя

. На

вкладке

Подписи

обеспечивается доступ к диалогу

Выражение

. Выражения могут

использоваться в разных командах.

Например:

• В команде

Выбрать

выражение участвует для определения условия, которому должна

удовлетворять запись в таблице, чтобы попасть в выборку.

• В команде

Обновить колонку

выражение участвует для вычисления значений колонки.

• В создании

тематической карты

выражения используются для вычисления величины,

которая отображается на карте.

• В

настройке слоя

выражения используются для создания подписей.

Выражения можно разделить на две группы:

600

Специальные темы в MapInfo Pro

• выражения, в результате вычисления которых получается логическая величина (TRUE или

FALSE)

• выражения, в результате вычисления которых получается численная или строковая величина

Выражения первой группы обычно состоят из нескольких подвыражений и операторов
сравнения между ними. Логические выражения могут участвовать в выборе объектов.

Выражения второй группы не используют операторы сравнения и не имеют подвыражений.
Эти выражения используются в тематическом выделении объектов, обновлении колонок и
построении временной колонки, задании вида подписи.

Создание выражений в запросах

Можно использовать в выражениях имена колонок и константы (т.е конкретные значения
данных) с одной стороны и функции и операторы с другой. Думайте об именах колонок и о
константах как о существительных, а о функциях и операторах как о глаголах, предлогах и
союзах. В любом выражении необходимо как минимум имя одной колонки или константа. Как
много операторов и функций будет использоваться в выражении зависит от того, что вы
хотите получить.

Простейшее выражение содержит имя колонки, например:

1.

НАСЕЛЕНИЕ_1990

2.

Район

Можно использовать такое выражение при построение тематических карт, чтобы показать
какая переменная отображается на карте. В команде Обновить колонку такое выражение
будет указывать MapInfo Pro какие данные используются при обновлении колонки.

Теперь приведем несколько более сложных примеров выражений:

1.

НАСЕЛЕНИЕ_1990 > 17893

2.

НАСЕЛЕНИЕ_1990 <= НАСЕЛЕНИЕ_1980

3.

РАЙОН <> ”Выхино”

4.

НАСЕЛЕНИЕ_1980 * 1.2

5.

НАСЕЛЕНИЕ_1990 / ОБЩ_ПЛОЩАДЬ

6.

round(НАСЕЛЕНИЕ_1990/ОБЩ_ПЛОЩАДЬ,.1)

Первые три примера используют операторы сравнения. Первое выражение представляет
собой условие в котором население за 1990 должно быть больше чем (>) некоторая константа
(17893). Второе отбирает записи в которых значение одной колонки НАСЕЛЕНИЕ_1990,
меньше чем или равно (<=) значению в другой колонке НАСЕЛЕНИЕ_1980. Третье проверяет,
относится ли запись в району Выхино или нет. И название района не равно (<>) “Выхино”,
запись выбирается. Можно использовать любое из этих выражений в командах Выбрать или
SQL-запрос, в поле с условием. Эти команды позволяют вам сделать выборку требуемых
записей из таблицы. Выражение как раз и определяет, что попадёт в выборку.

601

Специальные темы в MapInfo Pro

Примеры 6 и 7 используют арифметические операторы. В примере 6 значение
НАСЕЛЕНИЕ_1980 умножается (*) на константу (1.2), а в примере 7 значение их колонки
НАСЕЛЕНИЕ_1990 делится на значение площади области.

В примере 8 используется функция округления, для округления значения выражения
“НАСЕЛЕНИЕ_1990/ОБЩ_ПЛОЩАДЬ” до одной десятой (.1).

Выражения 6, 7 и 8 не содержат операторов сравнения, поэтому они не могут быть
использованы как условия в командах Выбрать или SQL-запрос. Однако, можно использовать
их самостоятельно при создании тематических карт, операции обновления колонки или
создания вычисляемой колонки в операции SQL-запрос.

Задание условия для фильтрации данных в выражении

Фильтрация – это формирование запроса с условием, заданным логическим выражением,
которое обычно сравнивает значение колонки с другой величиной. Например, в SQL-запросе
будут рассматриваться только те строки, которые имеют в колонке "Количество" значение
больше ста:

Where Condition:

Order_Amount > 100

Если при создании запроса используется окошко с условием, то в результирующей таблице
будут только те строки, которые удовлетворяют заданному фильтру.

Фильтр может задаваться двумя или более логическими выражениями, если они разделены
операторами And или Or. Если два выражения разделены словом

And,

то MapInfo Pro извлечет

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

В окошке c условием могут быть использованы любые колонки из исходных таблиц, включая
те которые указаны в окошке Выбрать колонки.

Колонки в условии могут задаваться именами и номером в списке из окошка Выбрать колонки.
Номер колонки пишется после букв "col". Например, "col1" или "col6" – первая или шестая
колонка таблицы запроса. Перед числом необходимо вставлять буквы "col".

• Более подробные инструкции и смежные темы вы можете найти в разделе

Справочной

системы

:

Создание временных колонок при помощи выражений

.

Создание сложных выражений

Теперь рассмотрим примеры 9 и 10, они несколько сложнее чем примеры с 1 по 8:

1.

НАСЕЛЕНИЕ_1990 > НАСЕЛЕНИЕ_1980*1.2

2.

round((НАСЕЛЕНИЕ_1980*1.2)/ОБЩ_ПЛОЩАДЬ,.1)

602

Специальные темы в MapInfo Pro

Мы создали выражение 9 взяв за основу выражение 3 и заменив в нём константу “17893”
выражением 6. Аналогично, мы создали и выражение 10, взяв выражение 8 и заменив
“НАСЕЛЕНИЕ_1990” выражением 6.

В общем случае, сложные выражения получаются путем объединения простых. Возможно,
лучшим способом освоить выражения будет для вас изучение примеров, которые мы
предоставили в этой главе, и создание своих выражений на основе приведённых примеров.
Сложные выражения создаются в основном двумя способами:

• заменой имен колонок или констант на простые выражения;
• соединением выражений логическими операторами (And, Not, Or).

Пример 6 иллюстрирует первый приём. Многочисленные приёмы второго подхода будут
приведены дальше. Подробности вы найдете в разделе

Логические операторы в

выражениях

.

Использование констант в выражениях

В некоторых диалогах MapInfo Pro есть возможность вызвать диалог

Выражение

для

составления математических и алфавитно-цифровых выражений формул.

Существуют определенные правила и соглашения использования в выражениях строковых
констант, чисел и дат.

Символьные строки

Символьные константы в выражении заключаются в кавычки. Если строка не заключена в
кавычки, то MapInfo Pro будет воспринимать её как имя поля (колонки). Например, строки 1
и 2 – константы, а строки 3 и 4 – нет.

1.

"Красное"

2.

"Нью-Йорк"

3.

Красное

4.

New York

Числа в выражениях

Для задания чисел в выражениях не используйте запятую, знак доллара и другие знаки, не
являющиеся цифрами, точкой и знаком минус для отрицательных чисел. Для задания числовых
величин в экспоненциальном виде может также использоваться символ "E".

Даты в выражениях

Дата состоит из месяца дня и года (последнее необязательно). Год может задаваться двумя
или четырьмя цифрами. Значения месяца, дня и года разделяются либо знаком дефиса, либо
косой чертой. Сама дата заключается в кавычки. Если год в дате не задан, то понимается,
что эта дата текущего года. Примеры дат:

603

Специальные темы в MapInfo Pro

Что ожидает MapInfo Pro

Системные региональные параметры
формата даты

2/28/05

M/д/гг

0/28/2005

M/д/гггг

02/28/05

MM/дд/гг

02/28/2005

MM/дд/гггг

05/02/28

гг/MM/дд

28-ФЕВ-2005

дд-МММ-гггг

Математические операторы в выражениях

В некоторых диалогах MapInfo Pro есть возможность вызвать диалог

Выражение

для

составления математических и алфавитно-цифровых выражений формул. Математические
операторы часто используются в выражениях. Следующая таблица представляет символы
операторов, имена, примеры и правила преобразование типов значений.

Подробнее о примере

Пример:

Описание

Символ

дата + число: дата

01.04.07

+ 4: 05.04.07

A + B

сложение

+

вещественное + дата: дата

4

+

232

: 236

дата – число: дата

число – дата: дата

A – B (вычитание)

–A (отрицательное)

вычитание

-

236

4

: 232

любое число

любое число

: вещественное

любое целое * любое целое: целое

любое число * любое число: вещественное

A * B

умножение

*

604

Специальные темы в MapInfo Pro

любое число / любое число: вещественное
число

A / B

деление

/

любое число ^ любое число: вещественное
число

A ^ B

Возведение в
степень

^

Разрешаются следующие виды вычислений:

• сложение чисел с датами с получением новой даты
• вычитание чисел из дат с получением новой даты
• вычитание даты из даты с получением числа

При прибавлении чисел к датам или вычитании чисел из дат, MapInfo Pro считает число,
определённым количеством дней. Так, для вычитания или прибавления недели надо
использовать число 7.

Если надо прибавить или вычесть месяц, следует использовать числа 30 или 31. Когда MapInfo
Pro вычитает дату из даты, в результате получится количество дней.

Использование строковых операторов в выражениях

"конкатенация" – объединение строк и строковых выражений.

+

(может использоваться если предваряется пробелом)

&

Строки должны быть заключены в двойные кавычки. Рассмотрим следующий пример:

"Ms." + Last_Name

MapInfo Pro оценивает это как часть выражения и помещает “Господин “перед каждой
фамилией. Обратите внимание, что строковая константа (“Господин “) заключена в кавычки.
Аналогично,

"Hello," + "world"

дает "Здравствуй, мир.".

"4"+"5"

605

Специальные темы в MapInfo Pro

даёт "45."

Использование операторов сравнения в выражениях

В некоторых диалогах MapInfo Pro есть возможность вызвать диалог

Выражение

для

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

Описание

Операторы

"равенство"

=

"неравенство"

<>

"больше"

>

"меньше"

<

"больше или равно"

>=

"меньше или равно"

<=

В

Справочной системе

содержатся следующие разделы по этой теме:

Сравнение чисел

Сравнение строк

Сравнение дат

Логическое сравнение

Сравнение чисел

Численное сравнение основано на численных значениях выражений и численных констант.

Пример:

выбрать все строки в которых доход больше $65,000.

1.

HH_INC>65000

606

Специальные темы в MapInfo Pro

Комментарий: не добавляйте знак доллара или запятые (запятыми разделяются тысячи в
англоязычной литературе). MapInfo Pro не обрабатывает их и выведет сообщение об ошибке

Пример:

найти все районы, где средний возраст населения составляет 42 года;

1.

MED_AGE=42

Комментарий: данное выражение выбирает только те записи, в которых средний возраст
точно равен 42. Если данные с возрастом содержат десятичные знаки (например, в
демографических данных, поставляемых в комплекте с MapInfo Pro), то точного значения 42
может и не встретиться.

Следующее выражение даёт лучший результат:

1.

Round(MED_AGE, 1)=42

Комментарий: функция "Round(

число, число

)" округляет первый аргумент с точностью,

задаваемой вторым аргументом. В приведенном примере первое число означает средний
возраст ("СР_ВОЗ-РАСТ"), а второе (1) показывает, что его надо округлять до ближайшего
целого числа.

Пример:

выбрать все строки, в которых суммы не равны 23 000:

1.

СУММА<>23000

Комментарий: функцию Round целесообразно использовать в том случае, если вы не уверены,
что имеется в виду точное значение 23 000.

Сравнение строк

Сравнение строк основано на точном соответствии символов, содержащихся в строке. В
случае ">" это обозначает "дальше в алфавите" и "<" обозначает "раньше в алфавите".

При введении в выражение строковой константы ее следует заключать в кавычки – так
программа будет воспринимать ее как строку, а не как имя колонки.

Пример:

выберем все строки, в которых продавцом является фирма "Комета":

1.

ПРОДАВЕЦ="Комета"

Комментарий: обратите внимание, что строка должна быть заключена в двойные кавычки,
иначе MapInfo будет искать колонку с названием "Комета".

Пример:

выберем все строки, в которых продавцом являются любые фирмы, кроме "Кометы":

1.

ПРОДАВЕЦ<>"Комета"

Сравнение дат

Пример:

выберем все записи, в которых указано, что товар получен после 9 октября 1991

года:

1.

ДОСТАВЛЕНО="10-9-91"

Обратите внимание на следующее:

Примечание:

607

Специальные темы в MapInfo Pro

• константы дат заключены в кавычки
• использован такой порядок: месяц, день, год
• запись даты в выражении разделяется при помощи дефиса (-) или наклонной черты (/)
• обозначать год можно двумя или четырьмя цифрами. Но можно использовать и четыре

символа (1991)

Пример:

выберем записи, в которых товар получен после 9 октября 1991 года:

1.

ДОСТАВЛЕНО>"10-9-91"

Комментарий: это выражение не выберет записи с сообщениями принятыми 9 октября, 1991.
Если вы хотите чтобы были выбраны и они, используйте оператор ">=":

1.

ДОСТАВЛЕНО>="10-9-91"

Пример:

выбираем все записи, полученные до августа независимо от года:

1.

Month(RECEIVED)<8

Комментарий: это выражение использует функцию Month для точного указания месяца. Он
не задаёт никакого значения года. Если база данных содержит записи за несколько лет, это
выражение не будет принимать во внимание год.

Логическое сравнение

Пример:

выберем все заказы, которые были отправлены клиентам:

1.

Отправлено

Комментарий: Колонка "Отправлено" содержит логические величины. Она содержит “T” если
значение истинное, в противном случае “F” – ложное. Если заказ уже отправлен, то запись
содержит значение “T”. В противном случае заказ не отправлен Для проданных товаров
выражение 28 ищет значение истина. Для выбора заказов, которые еще не были отправлены,
можно использовать такие выражения:

Пример:

всё что не отправлено:

1.

Str$(Отправлено)="F"

2.

Not Отправлено

Географические операторы в выражениях

В MapInfo Pro имеется несколько географических операторов. Они используются для выбора
объектов на основании их взаимного расположения в пространстве. С географическими
операторами в MapInfo Pro используется специальное зарезервированное слово: "obj" или
"object". Оно определяет, что MapInfo Pro должно вычислить значение на основании
графических объектов, а не соответствующих им табличных данных.

608

Специальные темы в MapInfo Pro

Имя географического оператора указывается между географическими объектами. Выбрать
его можно в списке Операторы в диалоге SQL-запрос. Ниже перечислены географические
операторы:

"Содержит". Объект A содержит объект Б, если центроид Б лежит в границах
A.

Contains

"Полностью содержит". Объект A полностью содержит объект Б, если
граница Б полностью лежит внутри границ A.

Contains Entire

Объект A частично содержит объект В, если границы объекта В частично
лежат внутри границ объекта A.

Contains Part

"Внутри". Объект A лежит внутри объекта Б, если его центроид лежит в
границах Б.

Within

"Полностью внутри". Объект A лежит полностью внутри объекта Б, если
его граница полностью лежит внутри границ Б.

Entirely Within

"Полностью внутри". Объект A лежит полностью внутри объекта Б, если
его граница полностью лежит внутри границ Б.

Partly Within

Объект A пересекается с объектом В, если они имеют хотя бы одну общую
точку.

Intersects

"Contains Part" и "Partly Within" эквивалентно "Intersects" -- они одинаково трактуются в MapInfo
Pro, поэтому синтаксис "Intersects" универсальный.

"Contains" и "Within" имеют дело с центроидами.

"Contains Entire" и "Entirely Within" имеют дело с границами и не затрагивают центроиды.
Смотрите примеры в

Справочной системе

в разделе:

Использование географических

выражений

.

609

Специальные темы в MapInfo Pro

Логические операторы в выражениях

"And" (И), "Or" (ИЛИ) и "Not" (НЕ) – это логические операторы. Они используются при
составлении выражений в диалоге команды Выбрать и в окошке С условием диалога команды
SQL-запрос. MapInfo Pro рассматривает каждое такое выражение как проверку и применяет
к каждой записи в таблице. Результатом каждой проверки является ответ "да" или "нет" (т.е.
"истина" или "ложь"). Комбинируя результаты проверки каждого условия с помощью логических
операторов, MapInfo Pro выдает общий ответ: удовлетворяет ли данная запись условию
выбора.

Описание

Оператор

Принимает значение TRUE ("истина") только в том случае, если оба ее
аргумента (логические выражения) истинны. То есть запись должны
удовлетворять обоим условиям, чтобы попасть в выборку.

а также в

Принимает значение TRUE ("истина"), если один или оба ее аргумента
(логические выражения) истинны. То есть запись должны удовлетворять

либо

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

Принимает значение TRUE "истина", если аргумент имеет значение FALSE
("ложь"). То есть записи не должны удовлетворять условию, чтобы попасть
в выборку

Not

Предположим, вы хотите выбрать дома стоимостью от 250,000 рублей или больше,
находящиеся в Калмыкии. Каждая запись должна отвечать двум критериям, каждый из которых
может быть определён как простое выражение:

1.

СТОИМОСТЬ >= 250000

2.

ОБЛАСТЬ = “Калмыкия”

610

Специальные темы в MapInfo Pro

Сначала можно выбрать всю недвижимость заданной стоимости. Затем по полученной выборке
будет произведен новый поиск: находится ли недвижимость в Калмыкии? Проще совместить
две эти операции с помощью логического оператора And:

1.

ОБЛАСТЬ = ”Калмыкия” and СТОИМОСТЬ >= 250000

Теперь MapInfo Pro будет проводить две проверки для каждой записи: является ли ОБЛАСТЬ
Калмыкией и равна или превосходит "Стоимость" значение 250 000? Если ответ на оба вопроса
утвердительный, запись попадет в выборку. Если же хотя бы один ответ "нет", то запись не
войдет в выборку.

Теперь, если требуется выбрать недвижимость стоимостью более 250 000 рублей, которая
находится за пределами Калмыкии, Можно использовать оператор Not перед первой частью
выражения 33 и получить выражение 34:

1.

not (ОБЛАСТЬ=”Калмыкия” and СТОИМОСТЬ>=250000)

Первой части выражения 34 удовлетворяют только те записи, которые не относятся к
Калмыкии. Теперь рассмотрим выражение 35:

1.

not (ОБЛАСТЬ=”Калмыкия” and СТОИМОСТЬ>=250000)

Выражение 35 это отрицание для выражения 33. Любая запись, удовлетворяющая выражению
33, не удовлетворяет выражению 35. И наоборот, все записи, не удовлетворяющие 33, будут
удовлетворять 35.

Для объединения независимых условий можно использовать оператор Or:

1.

ОБЛАСТЬ=”Калмыкия” or ОБЛАСТЬ=”Бурятия”

В выборку по данному условию войдут записи, относящиеся к любой из двух указанных
областей. Можно, конечно, соединять и числовые выражения: Например:

1.

ПЛОЩАДЬ>400 or СТОИМОСТЬ>250000

Это условие отбирает записи, в которых площадь больше 40 или стоимость больше 250000.
Если запись отвечает хоть одному из этих условий, она помещается в выборку.

Будьте внимательны при построении выражений с использованием логических операторов.
Например, следующее выражение, которое на первый взгляд составлено правильно, не будет
работать:

1.

ОБЛАСТЬ=”Калмыкия” or ”Бурятия”

По нормам грамматики фраза "ОБЛАСТЬ есть Калмыкия или Бурятия" не отличается по
смыслу от выражения 36. Но правила компьютерной логики и естественного языка несколько
различаются.

MapInfo Pro читает выражения слева направо. Программе надо определить, как в сложном
выражении сгруппированы простые выражения. Представить, как идет такая группировка,
можно, расставив скобки в выражениях. MapInfo Pro читает выражение 35 так же, как и
выражение 39 – и это правильно отражает смысл нашего запроса.

611

Специальные темы в MapInfo Pro

Выражение 38 читается так, как показано в выражении 40, – и смысл получается совсем не
тот, который вкладывали в запрос.

1.

(ОБЛАСТЬ=”Калмыкия”) or (ОБЛАСТЬ=”Бурятия”)

2.

(ОБЛАСТЬ=”Калмыкия”) or (”Бурятия”)

Оба выражения (39 и 40) имеют одинаковую первую часть (первое предложение). Но их вторая
часть (после “or”) совершенно различна. Второе предложение выражения 39 – просто строка
символов “Бурятия”. По правилам MapInfo, всем непустым строкам при вычислении их значения
ставится в соответствие "True". Поэтому при вычислении выражения 40 MapInfo включит все
непустые записи в выборку. Причем результат первой проверки не будет иметь влияния на
общий результат, т.к. значение второго предложения для всех непустых записей будет "True"
и, следовательно, значение всего выражения будет "True".

Наконец, рассмотрим пример с отрицанием выражения 36:

1.

Not(ОБЛАСТЬ=”Бурятия” or ОБЛАСТЬ=”Калмыкия”)

Выражению 39 удовлетворяют записи для Бурятии и Калмыкии, но не для Мордовии или
Хакасии, а выражению 41 – все области, кроме Бурятии или Калмыкии, в том числе Мордовия
и Хакасия.

В

Справочной системе

содержатся следующие разделы по этой теме:

Численные значения в выражениях

Строки в выражениях

Даты в выражениях

Ключевые слова в выражениях

Очередность выполнения операторов

При работе с выражениями MapInfo Pro необходимо знать, какие действия будут выполняться
первыми. Существуют правила, задающие очередность вычислений. Есть несколько уровней
приоритета операторов в выражении. Самыми первыми вычисляются операторы наивысшего
приоритета, следующими вычисляются операторы более низкого приоритета и т.д. В
следующей таблице перечислены операторы MapInfo Pro в порядке приоритета их выполнения.
Возведение в степень рассчитывается справа. Это касается выражений с несколькими
операциями возведения в степень: 2 ^ -3 ^ -4 = 2 ^ ( – (3 ^ (-4)))

Операторы одного уровня приоритета вычисляются слева направо.

скобки

В первую очередь

Возведение в степень

612

Специальные темы в MapInfo Pro

 

 

 

 

 

 

 

содержание      ..     36      37      38      39     ..