- •Add Cartographic Frame
- •Оператор Alter Button
- •Оператор Alter ButtonPad
- •Оператор Alter MapInfoDialog
- •Оператор Alter Menu
- •Оператор Alter Menu Item
- •Оператор Alter Object
- •Оператор Alter Table
- •Оператор Autolabel
- •Оператор Beep
- •Оператор Browse
- •Предложение Brush
- •Оператор Call
- •Предложение CharSet
- •Функция ChooseProjection$()
- •Оператор Close All
- •Оператор Close File
- •Оператор Close Table
- •Оператор Close Window
- •Оператор Commit Table
- •Оператор Continue
- •Предложение Control CheckBox
- •Предложение Control EditText
- •Предложение Control GroupBox
- •Предложение Control RadioGroup
- •Оператор Create Arc
- •Оператор Create ButtonPad
- •Оператор Create ButtonPads As Default
- •Оператор Create Cartographic Legend
- •Оператор Create Collection
- •Оператор Create Ellipse
- •Оператор Create Frame
- •Оператор Create Grid
- •Оператор Create Index
- •Оператор Create Legend
- •Оператор Create Line
- •Оператор Create Map
- •Оператор Create Map3D
- •Оператор Create Menu
- •Оператор Create Menu Bar
- •Оператор Create MultiPoint
- •Оператор Create Point
- •Оператор Create PrismMap
- •Оператор Create Ranges
- •Оператор Create Rect
- •Оператор Create Redistricter
- •Оператор Create Region
- •Оператор Create Report From Table
- •Оператор Create RoundRect
- •Оператор Create Styles
- •Оператор Create Table
- •Оператор Create Text
- •Оператор DDEExecute
- •Оператор DDEPoke
- •Оператор DDETerminate
- •Оператор DDETerminateAll
- •Оператор Declare Function
- •Оператор Declare Sub
- •Оператор Define
- •Оператор Delete
- •Оператор Dialog
- •Оператор Dialog Preserve
- •Оператор Dialog Remove
- •Оператор Dim
- •Оператор Do Case...End Case
- •Оператор Do...Loop
- •Оператор Drop Index
- •Оператор Drop Map
- •Оператор Drop Table
- •Оператор End MapInfo
- •Оператор End Program
- •Процедура EndHandler
- •Оператор Error
- •Оператор Exit Do
- •Оператор Exit For
- •Оператор Exit Function
- •Оператор Exit Sub
- •Оператор Export
- •Оператор Fetch
- •Оператор Find
- •Оператор Find Using
- •Предложение Font
- •Процедура ForegroundTaskSwitchHandler
- •Функция FormatDate$
- •Оператор Function...End Function
- •Оператор Get
- •Оператор Graph
- •оператор Import
- •Оператор Include
- •Оператор Input #
- •Оператор Insert
- •Функция IsPenWidthPixels()
- •Оператор Kill
- •Оператор Line Input
- •Процедура Main
- •Оператор Map
- •Оператор Menu Bar
- •Оператор Metadata
- •Оператор Note
- •Оператор Objects Check
- •Оператор Objects Clean
- •Оператор Objects Combine
- •Оператор Objects Disaggregate
- •Оператор Objects Enclose
- •Оператор Objects Erase
- •Оператор Objects Intersect
- •Оператор Objects Overlay
- •Оператор Objects Snap
- •Оператор Objects Split
- •Оператор OnError
- •Оператор Open File
- •Оператор Open Table
- •Оператор Open Window
- •Предложение Pen
- •Функция PenPattern()
- •Функция PenWidthToPoints()
- •Функция PointsToPenWidth()
- •Оператор Print
- •Оператор PrintWin
- •Оператор ProgressBar
- •Оператор Put
- •Оператор Randomize
- •Оператор ReDim
- •Оператор Register Table
- •Оператор Reload Symbols
- •Процедура RemoteMapGenHandler
- •Процедура RemoteMsgHandler
- •Оператор Rename File
- •Оператор Rename Table
- •Оператор Reproject
- •Оператор Resume
- •Оператор Rollback
- •Оператор Run Application
- •Оператор Run Command
- •Оператор Run Menu Command
- •Оператор Run Program
- •Оператор Save File
- •Оператор Save Workspace
- •Оператор Seek
- •Процедура SelChangedHandler
- •Оператор Select
- •Оператор Server Begin Transaction
- •Оператор Server Bind Column
- •Оператор Server Close
- •Оператор Server Commit
- •Оператор Server Create Map
- •Оператор Server Create Table
- •Оператор Server Create Style
- •Оператор Server Disconnect
- •Оператор Server Fetch
- •Оператор Server Refresh
- •Оператор Server Rollback
- •Оператор Server Set Map
- •Оператор Set Application Window
- •Оператор Set Area Units
- •Оператор Set Browse
- •Оператор Set Cartographic Legend
- •Оператор Set Command Info
- •Оператор Set CoordSys
- •Оператор Set Date Window
- •Оператор Set Digitizer
- •Оператор Set Distance Units
- •Оператор Set Drag Threshold
- •Оператор Set Event Processing
- •Оператор Set File TimeOut
- •Оператор Set Format
- •Оператор Set Graph
- •Оператор Set Handler
- •Оператор Set Layout
- •Оператор Set Legend
- •Оператор Set Map
- •Оператор Set Map3D
- •Оператор Set Next Document
- •Оператор Set Paper Units
- •Оператор Set PrismMap
- •Оператор Set ProgressBars
- •Оператор Set Redistricter
- •Оператор Set Resolution
- •Оператор Set Shade
- •Оператор Set Table
- •Оператор Set Target
- •Оператор Set Window
- •Оператор Shade
- •Оператор StatusBar
- •Оператор Stop
- •Оператор Sub...End Sub
- •Предложение Symbol
- •Оператор Terminate Application
- •Функция Time()
- •Процедура ToolHandler
- •Оператор Type
- •Оператор UnDim
- •Оператор Unlink
- •Оператор Update
- •Оператор Update Window
- •Оператор While...Wend
- •Процедура WinChangedHandler
- •Процедура WinClosedHandler
- •Процедура WinFocusChangedHandler
- •Оператор Objects Move
- •Оператор Objects Offset
- •Функция Offset()
- •Функция SphericalOffset()
- •Функция SphericalOffsetXY()
- •Функция CartesianOffsetXY()
- •Функция LayerInfo( )
- •Оператор Register
- •Оператор Server Create Map
- •Функция TableInfo( )
Оператор Open Table
Оператор Open Table
Назначение:
Открывает таблицу MapInfo.
Использует новые ключевые слова Password и NoIndex для таблиц Access.
Синтаксис:
Open Table filespec [ As |
tablename ] |
[ Hide ] [ ReadOnly ] |
[ Interactive ] [ Password pwd ] [ NoIndex ] [ View Automatic ] [Deny |
Write ] |
|
filespec – строковая величина, задает таблицу MapInfo; |
|
tablename – имя, под которым открывается таблица; |
pwd – пароль на уровне базы данных, определяемый при включении защиты базы данных. Применяется только для таблиц Access.
Описание:
Оператор Open Table открывает уже существующую таблицу. Эффект от этого оператора такой же, как и от команды MapInfo ФАЙЛ > ОТКРЫТЬ ТАБЛИЦУ. Таблица должна быть открыта командой или оператором прежде чем MapInfo сможет производить какие-либо действия с таблицей.
Имя файла, который будет открыт (определяемый параметром filespec) должен соответствовать таблице, которая уже существует; для создания новой таблицы см. оператор Create Table. Заметим так же, что оператор Open Table применяется только для таблиц MapInfo; для использования файлов других форматов, используйте операторы Register Table и Open File.
Если оператор включает предложение As, MapInfo открывает таблицу под именем, задаваемым параметром tablename, которое мы будем называть “синонимом” таблицы. Следующие операторы при обращении к таблице будут использовать этот синоним. В MapInfo синонимы открываемым таблицам задаются автоматически. Имя-синоним далее представляет эту таблицу во всех списках MapInfo. Более того, если определен синоним для таблицы, то MapBasic должен обращаться к синониму, а не к фактическому имени таблицы вплоть до закрытия этой таблицы командой ФАЙЛ > ЗАКРЫТЬ ТАБЛИЦУ или оператором Close Table. Назначение имени-синонима не имеет ничего общего с операцией переименования таблицы.
Если оператор включает предложение Hide, то имя таблицы не появится ни в каком диалоге, показывающем список открытых таблиц (например, в диалоге ФАЙЛ > ЗАКРЫТЬ ТАБЛИЦУ). Используйте предложение Hide если Вам надо открыть таблицу, которая останется скрытой от пользователя.
Если оператор включает предложение ReadOnly, пользователь не сможет редактировать таблицу. Дополнительное ключевое слово Interactive дает команду MapBasic подсказать пользователю место нахождения таблицы, если она не найдена по указанному пути. Ключевое слово Interactive полезно в ситуации, когда Вы не знаете местонахождения нужных файлов.
Если оператор включает ключевое слово NoIndex, индекс MapInfo не будет встраиваться в таблицу MS Access при ее открытии.
View Automatic это дополнительное предложение оператора Open Table, позволяющее таблице MapInfo, рабочему набору или файлу приложения, ассоциированному с объектом, запускаться автоматически. Если View Automatic присутствует, то после открытия таблицы, MapInfo или добавит
Справочник MapBasic |
393 |
Оператор Open Table
ее к существующей карте или откроет новое окно кары или откроет окно списка. Особенно полезно использовать совместно с HotLinks.
DenyWrite это дополнительное предложение для таблиц MS Access, если оно используется, то другие пользователи не смогут редактировать таблицу. Если другой пользователь уже имеет доступ в режиме чтение-запись к таблице, команда Open Table выдаст ошибку.
Открытие двух таблиц с одинаковым именем
MapInfo может открыть две отдельные таблицы, которые имеют одно и тоже имя. В этом случае, MapInfo должно открыть вторую таблицу под специальным именем, что бы избежать конфликтов. В зависимости от того, включает ли оператор 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
394 |
Справочник MapBasic |
Оператор 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
Справочник MapBasic |
395 |
Оператор 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
396 |
Справочник MapBasic |
Функция Overlap( )
Функция Overlap( )
Назначение:
Возвращает объект, полученный в результате географического пересечения двух объектов.
Синтаксис:
Overlap(object1, object2)
где
object1 и object2 – параметры, задающие пересекающиеся объекты, но не точечные.
Величина, полученная в результате:
Величина типа Object.
Описание:
Функция Overlap( ) вычисляет географическое пересечение двух объектов (площадь перекрытия одним объектом другого), и возвращает объект, представляющий пересечение.
MapBasic передает все стили оформления объекта object1 результирующему объекту. Если необходимо, стиль оформления объекта можно изменить на текущий в прикладной программе.
Если один из объектов является линейным (например, полилинией), а второй замкнутым (например, область), функция Overlap( ) вернет часть линейного объекта, которая находит на площадь замкнутого.
Смотрите также:
AreaOverlap( ), Erase( ), Objects Intersect
Справочник MapBasic |
397 |
Функция 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
398 |
Справочник MapBasic |
Оператор Pack Table
Оператор Pack Table
Назначение:
Соответствует команде MapInfo ТАБЛИЦА > ИЗМЕНИТЬ > УПАКОВАТЬ.
Синтаксис:
Pack Table table { Graphic | Data | Graphic Data } [ Interactive ]
где
table – имя открытой таблицы, которая не имеет несохраненные изменения.
Описание:
Для упаковки неграфических данных таблицы в операторе используется ключевое слово Data. Когда Вы сжимаете данные таким образом, MapInfo физически удаляет все строки, которые были помечены как удаленные.
Для упаковки графических объектов таблицы в операторе используется ключевое слово Graphic. Упаковывая графику, удаляются пустые места из .MAP-файла таблицы. Однако упаковка графических объектов несколько замедляет графические операции.
Оператор Pack Table может использовать одновременно и слово Data, и слово Graphic, или должен включать хотя бы одно.
Выполнение оператора Pack Table влечет за собой удаление таблицы из слоя Карты и, возможно, тематических и косметических объектов. Если Вы используете ключевое слово Interactive, то MapInfo перед упаковкой выведет диалог, предлагающий пользователю сохранить тематические или косметические объекты.
MapInfo не может сжимать таблицу, если она была изменена и эти изменения не были сохранены на диске. Для сохранения на диск таблицы используйте оператор Commit.
Внимание: Упаковка таблицы может повлиять на подписи, созданные или измененные пользователем и сохраненные в Рабочем Наборе. Это происходит потому, что в Рабочем Наборе подписи пользователя соотносятся с номером строки таблицы; операция упаковки меняет порядок записей, потому что из таблицы исключаются удаленные записи; потому после упаковки подписи могут появляться не там, где ожидалось и иметь неправильный вид. Если же Вы удаляли записи из нижней части таблицы, а подписи соотнесены с верхними записями, то упаковка не испортит подписей.
Пример:
Pack Table parcels Data
Справочник MapBasic |
399 |
Функция PathToDirectory$( )
Функция PathToDirectory$( )
Назначение:
Извлекает из полной спецификации файла имя каталога.
Синтаксис:
PathToDirectory$(filespec)
где
filespec – строка, содержащая полное имя файла (маршрут + имя).
Величина, полученная в результате:
Строка. Величина типа String.
Описание:
Функция PathToDirectory$( ) возвращает часть полного имени, которая содержит имена диска и каталогов.
Полное имя файла может содержать имя диска, имена каталогов или папок и само имя файла. В DOS имя каталога начинается с литеры с двоеточием, обозначающими диск (например, "C:"). В Macintosh имя папки всегда предваряет имя диска (например, "Applications").
Например, в DOS для имени
"C:\MAPINFO\DATA\WORLD.TAB"
функция вернет строку с DOS-маршрутом "C:\MAPINFO\DATA\". В Macintosh для имени
"HD:MAPINFO:DATA:WORLD"
функция вернет строку "HD:MAPINFO:DATA:".
Пример:
Dim s_filespec, s_filedir As String s_filespec = "C:\MAPINFO\DATA\STATES.TAB" s_filedir = PathToDirectory$(s_filespec)
' переменная s_filedir теперь равна строке "C:\MAPINFO\DATA\"
Смотрите также:
PathToFileName$( ), PathToTableName$( )
400 |
Справочник MapBasic |
Функция PathToFileName$( )
Функция PathToFileName$( )
Назначение:
Извлекает из полного имени файла имя файла.
Синтаксис:
PathToFileName$(filespec)
где
filespec – строка, содержащая полное имя файла (маршрут + имя).
Величина, полученная в результате:
Строка. Величина типа String.
Описание:
Функция PathToFileName$( ) возвращает часть полного имени, которая содержит имя файла.
Полное имя файла может содержать имя диска, имена каталогов или папок и само имя файла. В DOS имя файла может состоять из первого имени длиной не более восьми символов и трех букв расширения. Первое имя файла и расширение разделено точкой.
Например, в DOS для спецификации
”C:\MAPINFO\DATA\WORLD.TAB”
функция вернет строку "WORLD.TAB". В среде Macintosh в спецификации
”HD:MapInfo:Data:World”
имя папки – это “HD:MapInfo:Data:", а имя файла – “World".
Пример:
Dim s_filespec, s_filename As String
s_filespec = "C:\MAPINFO\DATA\STATES.TAB"
s_filename = PathToFileName$(s_filespec)
'
' переменная s_filename теперь равна строке "STATES.TAB"
'
Смотрите также:
PathToDirectory$( ), PathToTableName$( )
Справочник MapBasic |
401 |
Функция PathToTableName$( )
Функция PathToTableName$( )
Назначение:
Возвращает имя таблицы, синоним, используя полное имя файла таблицы.
Синтаксис:
PathToTableName$(filespec)
где
filespec – строка, содержащая полное имя файла (маршрут + имя).
Величина, полученная в результате:
Строка длиной до 31 символа. Величина типа String.
Описание:
Получая полное имя файла с расширением .TAB, функция возвращает строку, которая может быть для этой таблицы в данный момент псевдонимом (alias). Именно такой синоним видит пользователь в строке заголовка документального окна MapInfo (например, в строке заголовка Списка).
Этот абзац отличается от текста в вета-книге, но он мне больше нравится.Для получения синонима таблицы при ее открытии MapInfo удаляет из полного имени файла имя носителя, каталога и расширение “.TAB” (для системы DOS). Любые специальные символы, такие как тире, пробелы и др. (имена файлов в Macintosh могут включать пробелы и знаки пунктуации) заменяются знаками подчеркивания (_). Если имя файла начинается с цифры, то MapInfo вставляет знак подчеркивания в начало имени таблицы. Если результирующая строка получается длинее 31 символа, то MapInfo отсекает лишние с конца.
Заметим, что таблица может быть открыта с именем-синонимом, отличающимся от имени файла. Программа MapBasic может открыть таблицу с именем-синонимом оператором Open Table с предложением As. Например, откроем таблицу WORLD под синонимом “Earth”:
Open Table ”C:\MapInfo\Data\World.tab” As Earth
Могут быть также открыты две одноименные таблицы, расположенные в разных каталогах, и MapInfo автоматически изменит имя одной из таблиц. В таких случаях имя таблицы, возвращаемое функцией PathToTableName$( ), может не совпадать с именем, под которым она открыта в MapInfo. Для того, чтобы определить синонимическое имя открытой таблицы, используйте функцию TableInfo(TAB_INFO_NAME).
Пример:
Dim filespec, tablename As String
filespec = "C:\MAPINFO\DATA\RUSSIA.TAB"
tablename = PathToTableName$(filespec)
' Переменная tablename теперь равна строке "RUSSIA"
Смотрите также:
PathToDirectory$( ), PathToFileName$( ), TableInfo( )
402 |
Справочник MapBasic |