Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MB6REFRU.pdf
Скачиваний:
10
Добавлен:
13.02.2015
Размер:
3.83 Mб
Скачать

Оператор Open Table

Оператор Open Table

Назначение:

Открывает таблицу MapInfo.

Использует новые ключевые слова Password и NoIndex для таблиц Access.

Синтаксис:

Open Table filespec [ As

tablename ]

[ Hide ] [ ReadOnly ]

[ Interactive ] [ Password pwd ] [ NoIndex ] [ View Automatic ] [Deny4

Write ]

 

filespec – строковая величина, задает таблицу MapInfo;

tablename – имя, под которым открывается таблица;

pwd – пароль на уровне базы данных, определяемый при включении защиты базы данных. Применяется только для таблиц Access.

Описание:

Оператор Open Table открывает уже существующую таблицу. Эффект от этого оператора такой же, как и от команды MapInfo ФАЙЛ > ОТКРЫТЬ ТАБЛИЦУ. Таблица должна быть открыта командой или оператором прежде чем MapInfo сможет производить какиеLлибо действия с таблицей.

Имя файла, который будет открыт (определяемый параметром filespec) должен соответствовать таблице, которая уже существует; для создания новой таблицы см. оператор Create Table. Заметим так же, что оператор Open Table применяется только для таблиц MapInfo; для использования файлов других форматов, используйте операторы Register Table и Open File.

Если оператор включает предложение As, MapInfo открывает таблицу под именем, задаваемым параметром tablename, которое мы будем называть “синонимом” таблицы. Следующие операторы при обращении к таблице будут использовать этот синоним. В MapInfo синонимы открываемым таблицам задаются автоматически. ИмяLсиноним далее представляет эту таблицу во всех списках MapInfo. Более того, если определен синоним для таблицы, то MapBasic должен обращаться к синониму, а не к фактическому имени таблицы вплоть до закрытия этой таблицы командой ФАЙЛ > ЗАКРЫТЬ ТАБЛИЦУ или оператором Close Table. Назначение имениLсинонима не имеет ничего общего с операцией переименования таблицы.

Если оператор включает предложение Hide, то имя таблицы не появится ни в каком диалоге, показывающем список открытых таблиц (например, в диалоге ФАЙЛ > ЗАКРЫТЬ ТАБЛИЦУ). Используйте предложение Hide если Вам надо открыть таблицу, которая останется скрытой от пользователя.

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

Если оператор включает ключевое слово NoIndex, индекс MapInfo не будет встраиваться в таблицу MS Access при ее открытии.

View Automatic это дополнительное предложение оператора Open Table, позволяющее таблице MapL Info, рабочему набору или файлу приложения, ассоциированному с объектом, запускаться автоматически. Если View Automatic присутствует, то после открытия таблицы, MapInfo или добавит

364 Справочник MapBasic

Оператор Open Table

ее к существующей карте или откроет новое окно кары или откроет окно списка. Особенно полезно использовать совместно с HotLinks.

DenyWrite это дополнительное предложение для таблиц MS Access, если оно используется, то другие пользователи не смогут редактировать таблицу. Если другой пользователь уже имеет доступ в режиме чтениеLзапись к таблице, команда Open Table выдаст ошибку.

Открытие двух таблиц с одинаковым именем

MapInfo может открыть две отдельные таблицы, которые имеют одно и тоже имя. В этом случае, MapL Info должно открыть вторую таблицу под специальным именем, что бы избежать конфликтов. В зависимости от того, включает ли оператор Open Table ключевое слово Interactive, MapBasic или присваивает специальное имя таблице автоматически, или показывает диалог, позволяющий пользователю интерактивно выбрать специальное имя таблицы.

Например, пользователь может хранить две копии таблицы “Sites”, одну копию в директории 1993 (“C:\1993\SITES.TAB”) и другую, возможно более новую, в другой директории (“C:\1994\SITES.TAB”). Когда пользователь (или приложение) открывает первую таблицу Sites, MapInfo открывает таблицу под ее именем (“Sites”). Если приложение использует оператор Open Table для открытия второй таблицы Sites, MapInfo автоматически открывает вторую таблицу под измененным именем (например, “Sites_2”) что бы отличать ее от первой таблицы. С другой стороны, если оператор Open Table включает предложение Interactive, MapInfo откроет диалог, позволяющий пользователю выбрать для таблицы альтернативное имя.

Не смотря на то, использует ли оператор Open Table ключевое слово Interactive, в результате таблица может быть открыта с нестандартным именем. Вслед за оператором Open Table, вызывается функция:

TableInfo(0, TAB_INFO_NAME)

для определения имени, под которым MapInfo открыло таблицу.

Открытие таблицы, которая уже открыта

Если таблица уже открыта, и оператор Open Table...As пытается заново открыть ту же таблицу под новым именем, MapBasic сгенерирует код ошибки. Одна таблица не может быть открыта под двумя различными именами одновременно.

Таким образом, если таблица уже открыта, и затем оператор Open Table пытается заново открыть таблицу без указания нового имени, MapBasic не будет генерировать код ошибки. Таблица просто остается открытой под ее текущим именем.

Пример:

Следующий пример открывает таблицу STATES.TAB, затем отображает таблицу в окне Карты. Поскольку оператор Open Table использует предложение As для открытия таблицы под псевдонимом (USA), в окне Карты появится заголовок “USA Map” а не “States Map.”

Open Table ”States” As USA

Map From USA

Следующий пример показывает вызов функции TableInfo( ) после оператора Open Table . Поскольку таблица с таким же именем (States) уже открыта, в момент запуска программы, MapBasic откроет “C:STATES.TAB” под псевдонимом (например, “STATES_2”). Функция TableInfo( ) вызовет псевдоним, под которым открыта таблица “C:STATES.TAB”.

Include ”MAPBASIC.DEF”

Dim s_tab As String

Справочник MapBasic

365

Оператор Open Table

Open Table ”C:states”

s_tab = TableInfo(0, TAB_INFO_NAME)

Browse * From s_tab

Map From tab

Смотрите также:

Close Table, Create Table, Delete, Fetch, Insert, TableInfo( ), Update

366

Справочник MapBasic

Оператор Open Window

Оператор Open Window

Назначение:

Открывает вспомогательные окна.

Синтаксис:

Open Window window_name

где

window_name – имя окна (например, Ruler) или код окна (например, WIN_RULER)

Описание:

Оператор Open Window используется для открытия вспомогательных окон в MapInfo. Например, следующий оператор открывает окно "Статистика", как если бы пользователь открыл его командой НАСТРОЙКИ > ПОКАЗАТЬ ОКНО СТАТИСТИКИ.

Open Window Statistics

Параметр window_name должен быть именем окна или целочисленным кодом. В следующей таблице в первой колонке приводятся имена окон, а во второй – описание и имена кодов, которые установлены в файле стандартных определений MapBasic MAPBASIC.DEF.

Значения window_name

 

Описание окна и его код из файла MAPBASIC.DEF

MapBasic

 

Окно MapBasic (WIN_MAPBASIC)

 

Statistics

 

Окно "Статистика" (WIN_STATISTICS)

Legend

 

Окно "Легенда" (WIN_LEGEND)

Info

 

Окно "Информация" (WIN_INFO)

Ruler

 

Окно "Линейка" (WIN_RULER)

Help

 

Окно Справочной системы (WIN_HELP)

Message

 

Окно "Сообщение", используемое оператором Print

 

 

(WIN_MESSAGE)

Вы не можете открыть документальное окно (Карты, Графика, Списка, Геогрупп или Отчета) при помощи оператора Open Window. Эти окна открываются другими способами (смотрите операторы

Map, Graph, Browse, Layout и Create Redistricter).

Смотрите также:

Close Window, Print, Set Window

Справочник MapBasic

367

Функция Overlap( )

Функция Overlap( )

Назначение:

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

Синтаксис:

Overlap(object1, object2)

где

object1 и object2 – параметры, задающие пересекающиеся объекты, но не точечные.

Величина, полученная в результате:

Величина типа Object.

Описание:

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

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

Если один из объектов является линейным (например, полилинией), а второй замкнутым (например, область), функция Overlap( ) вернет часть линейного объекта, которая находит на площадь замкнутого.

Смотрите также:

AreaOverlap( ), Erase( ), Objects Intersect

368

Справочник MapBasic

Функция OverlayNodes( )

Функция OverlayNodes( )

Назначение:

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

Синтаксис:

OverlayNodes(input_object, overlay_object)

где

input_object – объект, на основе которого будет создан результирующий, и который не может быть точечным;

overlay_object – объект, пересекающий объект input_object (также не может быть точечным).

Величина, полученная в результате:

Величина типа Object.

Описание:

Функция OverlayNodes( ) возвращает объект, созданный из узлов первого плюс узлы, полученные пересечением линий или контуров объектов input_object и overlay_object.

Если объект input_object замкнут (область, прямоугольник, скругленный прямоугольник или эллипс), то функция OverlayNodes( ) вернет область. Если объект input_object линейный (прямая линия, полилиния или дуга), то функция OverlayNodes( ) вернет полилинию.

MapBasic передает все стили оформления объекта input_object результирующему.

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

Смотрите также:

Objects Overlay

Справочник MapBasic

369

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]