При открытии любой таблицы в MapInfo Pro, ей автоматически присваивается псевдоним. Это происходит из-за того, что имя файла может содержать символы, которые имя таблицы не поддерживает, например, пробелы.
Псевдонимы таблиц в интерфейсе MapInfo Pro, можно увидеть в Списке таблиц или в окне карты. Обычно видно, что пробелы или спец символы в имени файла заменены подчеркиванием (_). Другим примером автоматического изменения является сокращение имен длинных файлов.
В MapInfo Pro v2019.3 была добавлена поддержка использования переменных в окне SQL. Что открыло возможности для создания запросов и скриптов, запрашивающих у пользователя ввод данных перед выполнением. Все скрипты стали более динамичными, поскольку стало возможно использовать один скрипт, который будет вести себя по-разному в зависимости от ввода от пользователя.
В данной статье рассмотрим как использовать окно SQL для создания небольшого скрипта, который попросит пользователя выбрать таблицу для открытия и указать для неё псевдоним.
Создание переменных
В окне SQL выберите «Редактировать переменные» в раскрывающемся списке «Переменные». Обратите внимание, что этот функционал доступен только в MapInfo Pro начиная с версии v2019.3.
![](https://download.mapinfo.ru/~estimap/download/download_new/Pictures/TableAlias1.png)
В диалоге «Редактировать переменные» нам нужны две переменные. Используйте кнопку «Добавить», чтобы добавить вторую.
Выберем первую переменную и используем поля ниже для управления настройками:
-
Имя: назовем первую переменную sFile, поскольку она будет содержать имя файла в виде строковой (string) переменной.
-
Тип: должен быть File, поскольку пользователю будет предложено выбрать TAB файл.
-
Подсказка: этот текст отображается рядом с элементом управления в диалоговом окне.
-
Текст подсказки: отображается, когда вы наводите указатель мыши на элементом управления в диалоговом окне. Может быть более подробным, чем подсказка.
-
Свойства: с помощью этого поля можно указать, какие типы файлов следует открывать пользователю. В данном примере мы хотим, чтобы пользователь открывал TAB файлы, поэтому укажем Extension = TAB.
![](https://download.mapinfo.ru/~estimap/download/download_new/Pictures/TableAlias2.png)
Далее настроим вторую переменную:
-
Имя: назовем вторую переменную sAlias, поскольку она будет содержать псевдоним в виде строковой (string) переменной.
-
Тип: на этот раз выбираем String в качестве типа, так как нам нужно, чтобы пользователь вручную вводил псевдоним.
-
Подсказка: этот текст отображается рядом с элементом управления в диалоговом окне.
-
Текст подсказки: здесь можно добавить больше описания и, возможно, даже включить некоторые правила, например, что псевдоним не должен содержать пробелов, должен быть короче 30 символов и т. д. Некоторые из них обрабатываются скриптом, другие ограничения контролируются с помощью свойств.
-
Свойства: здесь укажем «Не разрешать пустые строки» из списка «Добавить свойство», а также «Ограничить длину строки». И изменим значение MaximumLength на 30, поскольку это максимальная длина имени таблицы в MapInfo Pro.
![](https://download.mapinfo.ru/~estimap/download/download_new/Pictures/TableAlias3.png)
Нажмем кнопку ОК, чтобы сохранить переменные, и вернуться в окно SQL.
Создание выражения
Пришло время создать выражение, открывающее таблицу под заданным псевдонимом. Для этого понадобится только один оператор MapBasic - "Open Table", поскольку он содержит все необходимые нам параметры.
Используем раскрывающийся список «Переменные», чтобы вставить созданные нами ранее переменные в выражение.
![](https://download.mapinfo.ru/~estimap/download/download_new/Pictures/TableAlias4.png)
Полное выражение будет выглядеть следующим образом:
Open Table sFile As PathToTableName$(sAlias) Interactive View Automatic
Обратите внимание, функция PathToTableName$ () обеспечивает корректность введенных данных, она преобразовывает пробелы в символы подчеркивания, ограничивает длину до 30 символов и т.д.
![](https://download.mapinfo.ru/~estimap/download/download_new/Pictures/TableAlias5.png)
В завершени задайте скрипту название с помощью кнопки «Переименовать скрипт» и сохраните его. Также можно отметить скрипт как часто используемый, чтобы он отображался в разделе «Избранное» раскрывающегося списка SQL. Все эти параметры можно найти в правой верхней части окна SQL.
Использование скрипта
Чтобы использовать скрипт, вы можете сразу запустить его прямо из окна SQL с помощью кнопки «Пуск».
Кроме того скрипт появится в «Избранном» раскрывающегося списка SQL. Все, что вам нужно сделать - это щелкнуть по нему. Также можно использовать небольшой значок редактирования в правой части, чтобы открыть скрипт в окне SQL, если потребуется его изменить.
![](https://download.mapinfo.ru/~estimap/download/download_new/Pictures/TableAlias6.png)
При запуске скрипта вам будет предложено выбрать таблицу для открытия и указать её псевдоним. Обратите внимание, что диалоговое окно не позволит вам нажать кнопку «ОК», пока вы не введете псевдоним, содержащий хотя бы один символ.
![](https://download.mapinfo.ru/~estimap/download/download_new/Pictures/TableAlias7.png)
Укажем псевдоним без пробелов, чтобы сделать имя короче и избежать использования пробелов.
![](https://download.mapinfo.ru/~estimap/download/download_new/Pictures/TableAlias8.png)
Когда вы нажмете кнопку ОК, MapInfo Pro запустит сценарий, используя значения, которые вы указали в диалоговом окне. В этом случае таблица будет открыта с использованием введенного псевдонима.
![](https://download.mapinfo.ru/~estimap/download/download_new/Pictures/TableAlias9.png)
Таким образом, использование переменных открывает новые горизонты для создания интеллектуальных скриптов, которые могут помочь автоматизировать многие задачи. Надеемся, что эта статья была полезна и подарила вам несколько новых идей использования данного функционала. Попробуйте написать свой скрипт и воспользуйтесь множеством других преимуществ последней версии программы, скачав пробную версию MapInfo Pro на нашем сайте.
Другие полезные статьи:
Использование функции ProportionOverlap в MapInfo Pro |
Использование переменных в окне SQL |
Использование выражений при создании подписей в MapInfo Pro |