Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

MI6UGRU

.pdf
Скачиваний:
16
Добавлен:
13.02.2015
Размер:
14.71 Mб
Скачать

Глава 22: Работа с таблицами

Сохранение таблицы Access в виде другой таблицы Access

Эта возможность используется для сохранения таблицы Access в другой базе данных. Процесс похож на сохранение исходных таблиц MapInfo. Откройте диалог “Сохранить копию таблицы”. Определите в нем место сохранения таблицы и ее имя, затем используйте диалог “Сохранить таблицу Access”, чтобы определить имя новой таблицы.

Ограничения при прямом доступе к таблицам Access

Существуют следующие ограничения при прямом доступе к таблицам Access:

Не поддерживается тип данных Десятичный. Если Вы изменяете структуру таблицы Microsoft Access в среде MapInfo и меняете тип данных Вещественный

íà Десятичный, то тип изменится на Вещественный.

Оператор MapBasic Pack Table сохраняет копию оригинала таблицы Microsoft Access без тех колонок, которые неподдерживаются MapInfo. Если таблица MS Access имеет колонки типов MEMO, OLE или LONG BINARY, то они будут потеряны при исполнении этого оператора.

Упакуйте Вашу базу данных. При каждом переименовании таблицы используется дисковое пространство. MapInfo переименовывает таблицу, когда изменяется ее структура и когда используется оператор переименования. База данных Access может быть упакована средствами ODBC Administrator или Microsoft Access. Для упаковки базы данных MS Access средствами ODBC Administrator обратитесь к системе электронной справки ODBC Administrator. Для упаковки базы данных MS Access c помощью Microsoft Access обратитесь к системе электронной справки Access.

MapInfo может только использовать и создавать таблицы Access, совместимые с версиями Microsoft Access ’95, ’97 и 2000.

Access хранит данные о времени в поле Date/Time. MapInfo распознает только

Date. Таким образом, любое значение времени MapInfo преобразует в такой формат - 12/30/1899.

Просмотр и изменение таблиц

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

467

Глава 22: Работа с таблицами

графических объектов в таблице (соответственно и возможность показа ее в окне Карты).

Чтобы просмотреть или изменить структуру таблицы:

1.Выполните команду ТАБЛИЦА > ÈЗМЕНИТЬ > ÑТРУКТУРА. Появится диалог структуры таблицы.

2.Внесите необходимые изменения или просто просмотрите структуру таблицы, листая информацию о полях.

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

Сохранение таблицы и ее копии

Чтобы сохранить изменения, внесенные в данные или графические объекты некоторой таблицы, Вы должны сохранить эту таблицу. Для этого выполните команду ФÀÉË > ÑОХРАНИТЬ ТАБЛИЦУ. Появится диалог, в котором следует указать, какую таблицу сохранить.

Можно сохранить копию таблицы под другим именем с помощью команды СОЗДАТЬ КОПИЮ. По сути дела, при этом создается новая таблица. Эту команду удобно

использовать:

Когда Вы хотите сохранить внесенные изменения, не удаляя при этом исходный вариант таблицы.

Когда надо сохранить результат запроса. (Таблицы запросов являются временными и при необходимости дальнейшего использования их следует сохранять на диск).

Когда надо сохранить таблицу, содержащую временную колонку (после обновления колонки).

Когда Вы создаете новую таблицу перед внесением изменений в исходную таблицу.

Когда необходимо из MapInfo внести изменения во внешнюю базу данных.

Когда надо сохранить таблицу в другой проекции.

Чтобы сохранить копию таблицы:

468

Глава 22: Работа с таблицами

1.Выполните команду ФÀÉË > ÑОЗДАТЬ КОПИЮ. Появится диалог "Сохранить копию таблицы".

2.Выберите файл, который следует сохранить, и нажмите OK.

3.Задайте новое имя файла.

Исходная таблица останется открытой, без каких-либо изменений. Новая таблица не будет открыта автоматически, но ее можно открыть с помощью команды ОТКРЫТЬ.

Если Вы укажете для новой таблицы имя, начинающееся с цифры, MapInfo добавит символ подчеркивания в начало имени таблицы. Например, вместо 1STREETS.TAB будет создан файл _1STREETS.TAB.

Так как в 32-битной версии MapInfo поддерживаются длинные имена файлов, то Вы можете дать таблицам более понятные описательные имена.

Примечание: Некоторые объекты MapInfo версии 3.0 нельзя сохранить в таблицу формата версии 2.0. Это относится к сложным полилиниям и областям/полилиниям, имеющим более 8 000 узлов. Кроме того, области с "дырами" в MapInfo 2.x обрабатываются иначе.

Копирование и переименование таблиц

Поскольку таблицы MapInfo состоят из нескольких файлов (STATES.TAB, STATES.DAT, STATES.MAP и т.д.), все файлы-компоненты определенной таблицы должны быть расположены в одном каталоге. Чтобы перенести таблицу в другой каталог, следует перенести все файлы, относящиеся к данной таблице. Аналогично, все файлы следует переносить при сохранении таблиц на дискете.

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

Для переименования таблицы:

1.Выполните команду ТАБЛИЦА > ÈЗМЕНИТЬ > ÏЕРЕИМЕНОВАТЬ. Появится диалог "Переименовать таблицу".

2.Выберите таблицу, которую следует переименовать, и нажмите OK.

3.Задайте новое имя и нажмите OK.

469

Глава 22: Работа с таблицами

При подобном переименовании таблицы MapInfo изменяет имена всех файловкомпонент.

Помните, что переименование таблицы повлияет на все Рабочие Наборы, в которых она упоминается. После переименования таблицы следует отредактировать файлы Рабочих Наборов (.WOR) в текстовом редакторе, проставив новое имя таблицы. Можно также переименовать таблицу перед сохранением Рабочего Набора.

Создание отчетов из Ваших данных

Начиная с MapInfo Professional 5.0, в поставку включена полнофункциональная версия генератора отчетов - Crystal Reports, позволяющая создавать отчеты из табличных данных. Руководство пользователя Crystal Report в электронном виде включено в стандартную поставку.

Для создания отчета:

1.Выполните команду ПРОГРАММЫ > CRYSTAL REPORTS > NEW REPORT. Откроется диалог “New Report”. Откроется список всех открытых таблиц.

2.Выберите таблицу, для которой Вы хотите создать отчет и нажмите кнопку REPORT. Появится интерфейс приложения Seagate Crystal Report.

3.Выполните команду REPORT > REPORT EXPERT, откроется диалог “Create Report Expert”. Report Expert предложит Вам выбор данных, полей, полей с сортировкой, стилей и многое другое для отчета. Нажмите кнопку PREVIEW

SAMPLE, чтобы просмотреть, как выглядит отчет на экране.

4.Выполните команду FILE > PRINT для печати отчета.

Для подробной информации о создании отчета, обратитесь к электронному

Руководству пользователя. Если Вы его не установили, то обратитесь к главе 2, где сказано, как его установить.

Добавление записей в таблицу

Команда ТАБЛИЦА > ÄОБАВИТЬ СТРОКИ В ТАБЛИЦУ используется для добавления в таблицу записей из другой таблицы. Эти две таблицы должны иметь одинаковые колонки, расположенные в одинаковом порядке.

Чтобы добавить данные из другой таблицы:

470

Глава 22: Работа с таблицами

1.Выполните команду ТАБЛИЦА > ÄОБАВИТЬ СТРОКИ В ТАБЛИЦУ. Появится одноименный диалог.

2.Укажите название таблицы, записи из которой Вы будете добавлять.

3.Укажите, к какой таблице следует добавлять записи, и нажмите OK.

Если соответствующие колонки содержат данные разного вида, выполняется наилучшее возможное преобразование типов. Если не совпадает порядок колонок, измените его с помощью колонок ТАБЛИЦА > ÈЗМЕНИТЬ > ÑТРУКТУРА прежде, чем выполнять команду ДОБАВИТЬ СТРОКИ В ТАБЛИЦУ.

Удаление таблицы

Удаление таблицы влечет удаление TAB-файла и всех других файлов-компонент. Чтобы удалить таблицу:

1.Выполните команду ТАБЛИЦА > ÈЗМЕНИТЬ > ÓДАЛИТЬ.

2.Укажите, какую таблицу следует удалить, и нажмите OK.

Появится сообщение о том, что таблица будет удалена с диска, причем отменить это действие будет невозможно.

3. Нажмите OK, и MapInfo удалит таблицу.

Упаковка таблицы

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

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

Чтобы упаковать таблицу:

1.Выполните команду ТАБЛИЦА > ÈЗМЕНИТЬ > ÓПАКОВАТЬ. Появится диалог "Упаковать".

2.Укажите, какую таблицу Вы хотите упаковать и каким именно способом (числовые и/или графические данные).

3.Нажмите OK.

471

Глава 22: Работа с таблицами

Внимание: Упаковка может повредить подписи, сохраняемые в Рабочем наборе. Если Вы планируете работать с подписями, то упакуйте таблицу до создания подписей.

Добавление данных в таблицу

Важной операцией при работе с таблицами является возможность обновления данных

âтаблице. Команда ОБНОВИТЬ КОЛОНКУ позволяет:

Добавить временную колонку или обновить уже существующую колонку на основе данных из другой таблицы.

Обновить часть таблицы.

Поместить графическую информацию в видимые колонки.

Добавление временной колонки в таблицу

Достаточно часто возникает необходимость добавить в таблицу данные из другой таблицы. В MapInfo для этого можно либо создать временную колонку, либо обновить одну из уже существующих. В обоих случаях используется команда ТАБЛИЦА > ÎБНОВИТЬ КОЛОНКУ для автоматического переноса информации.

Примечание: Если Вы хотите обновить таблицу для создания тематической карты, Вы можете открыть диалог "Обновить колонку" непосредственно из диалога создания тематических карт. См. подробнее Главу 11 "Тематические Карты".

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

После создания временной колонки все изменения, которые вносятся в исходную таблицу, автоматически отображаются во временной колонке. Чтобы сохранить временную колонку, следует использовать команду ФÀÉË > ÑОЗДАТЬ КОПИЮ.

Информация также сохранится, если таблица участвует в одном из Рабочих Наборов. Если данные сохранены с помощью команды СОЗДАТЬ КОПИЮ, то значения в сохраненной копии не изменятся. Если же таблица будет упомянута в Рабочем Наборе, то значения в рассматриваемой колонке будут вычисляться при открытии Рабочего Набора.

Например, рассмотрим вычисление суммарного размера заказов от клиентов по регионам. Команда ОБНОВИТЬ КОЛОНКУ создаст временную колонку в таблице регионов (областей),

472

Глава 22: Работа с таблицами

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

Для этого следует выполнить команду ТАБЛИЦА > ÎБНОВИТЬ КОЛОНКУ и заполнить диалог "Обновить колонку" следующим образом:

Обратим внимание на то, что когда Вы указываете таблицу клиентов в окошке

Значения извлечь из, MapInfo автоматически устанавливает режим Добавить новую временную колонку в окошко Обновить колонку.

После этого кнопка ОБЪЕДИНИТЬ становится доступной. В данном примере операция объединения будет объединять записи по значениям из колонок с одинаковым названием ("Область" в таблице областей России RUS_OBL и "Область" в таблице клиентов RUS_CUST). Можно также использовать географическое объединение.

В окошке Вычислить выберите Sum (также там имеются варианты Value, Avg, Count, Min, Max, Sum, WtAvg, Proportion Sum, Proportion Avg и Proportion WtAvg). Подробно эти функции будут описаны в разделе "Обобщение данных с помощью команды Обновить колонку" íèæå.

473

Глава 22: Работа с таблицами

В окошке "äëÿ" MapInfo автоматически устанавливает название первой числовой колонки, если Вы указали что-либо, кроме "Значение".

Нажмите OK. MapInfo обновит таблицу RUS_OBL и покажет суммарный объем заказов по территориям в окне Списка.

В случае изменения данных о заказах, следует просто внести изменения в таблицу RUS_CUST. MapInfo автоматически пересчитает сумму по территории в таблице RUS_OBL. Чтобы сохранить новую временную колонку, выполните команду ФÀÉË > ÑОЗДАТЬ КОПИЮ.

Обновление части таблицы

Чтобы быстро и наглядно обновить часть таблицы, выберите объекты в окне Карты и выполните команду ОБНОВИТЬ КОЛОНКУ для обновления значений в соответствующих записях. Такой метод удобен при изменении значений в нескольких записях на одно и то же новое значение.

Например, Вы хотите проставить “СК” ("Северный Кавказ") в колонке территории "terr" таблицы областей России. Создайте колонку "terr" (ÒАБЛИЦА > ÈЗМЕНИТЬ > ÏЕРЕСТРОИТЬ). Покажите таблицу областей в окне Карты. Выберите нужные области с помощью инструмента Стрелка (или какого-нибудь другого). Выполните команду ТАБЛИЦА > ÎБНОВИТЬ КОЛОНКУ и заполните диалог по следующему образцу. Не забудьте поместить значение в двойные кавычки, иначе MapInfo посчитает его названием колонки.

474

Глава 22: Работа с таблицами

Нажмите OK. MapInfo создаст таблицу запроса для кавказских республик и областей, в которой колонка Район будет содержать значение "ÑÊ". Сохраните таблицу, чтобы не потерять внесенную информацию.

Разделение данных из одной колонки в несколько колонок

Если импортируете данные в MapInfo из других форматов, остается вероятность того, что данные не преобразуются таким образом, как Вам надо. В некоторых случаях, данные, которые должны появиться в разных колонках, объединяются в одну. Например, надо разделить три слившихся в одну колонки с объединенным именем (first, middle è last) на три части. Этот способ действует, даже если нет промежуточного имени, а только последнее.

1.Выполните команду ФÀÉË > ÎТКРЫТЬ ТАБЛИЦУ и откройте таблицу, которую надо изменить.

2.Далее, надо добавить три новых колонки в таблицу. Выполните команду ТАБЛИЦА > ÈЗМЕНИТЬ > ÏЕРЕСТРОИТЬ. Добавьте две колонки с символьным типом данных, размером 15. Назовите их FIRST и MIDDLE. Затем добавьте третью колонку с символьными данными размером 30.

3.Вначале введите полное имя в колонке, названной LAST, выполнив команду ТАБЛИЦА > ÎБНОВИТЬ КОЛОНКУ. Заполните диалог “Обновить колонку” следующим образом:

475

Глава 22: Работа с таблицами

Обновляемая колонка – Last, и мы получим Значение из колонки, имеющей полное имя. Помните, что мы работаем только с одной таблицей, так что в окошках Обновить таблицу è Значения извлечь из, надо указать одно и тоже имя таблицы. В следующем примере, имя таблицы Table1 и полное имя колонки Ваше_полное_имя_колонка. Заполните эти два окошка Вашими значениями.

4.Чтобы отделить первое имя от слившегося имени тройной колонки, выполните команду ТАБЛИЦА > ÎБНОВИТЬ КОЛОНКУ. Заполните диалог “Обновить колонку” следующим образом:

Обновляемая колонка сейчас First, è Значение: left$(LAST, instr(1,LAST,” “)).

476

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