16_работа с таблицами

advertisement
Министерство образования и науки Украины
Донецкий национальный технический университет
Кафедра компьютерных систем мониторинга
ГЕОИНФОРМАЦИОННЫЕ
СИСТЕМЫ
Харитонов А. Ю.
Лекция 16. Работа с таблицами
Table (Таблица)
- это визуальное представление
табличных данных, содержащихся в
Vtab (Виртуальная таблица). Она использует
разграфку, напоминающую
электронные таблицы, которые состоят
из связанных значений,
упорядоченных по горизонтали; и
однотипных данных, выстроенных по
вертикали. Поля, элементы данных, или
атрибуты, являются колонками
таблицы, а записи образуют строки.
2
© Харитонов А. Ю.
Table (Таблица)
Отображаемые в таблице значения
содержатся в Виртуальной таблице (Vtab).
Виртуальная таблица может быть также
отображена на диаграмме и, в случае, если
она содержит поле shape (Ftab), может быть
отображена в Виде в качестве темы.
Таблица обеспечивает графический
интерфейс ко многим функциям Vtab, таким
как выбор и отмена выбора записей, экспорт и
резюмирование записей, а также
присоединение и связывание виртуальных
3
таблиц по общим полям.
© Харитонов А. Ю.
Аттрибуты таблицы
ActiveField. Таблица имеет активное поле
для операций, подобных сортировке.
Активное поле выделяется инвертированным
цветом вверху таблицы.
 FindString. является последней строкой,
используемой в запросе Find.
 VTab. Таблица обеспечивает
взаимодействие пользователя с объектом
Vtab.
4
© Харитонов А. Ю.
Виртуальная таблица (VTab)
- управляет табличным представлением множества
источников табличных данных. Виртуальная таблица
лежит в основе трех документов ArcView – 1.
документ Таблицы является средством просмотра
для Виртуальной таблицы в форме сетки,
2. документ Диаграммы является средством
просмотра числовых значений в графической
форме,
3. объектные темы документа Вида отображают
значения формы в Виртуальной (или Объектной,
FTab) таблице вместе с легендами,
сгенерированными по бесформенным значениям, с
представлением в форме карты.
5
© Харитонов А. Ю.
Виртуальная таблица (VTab)
Виртуальная таблица обеспечивает поддержку для многоих
из характеристик, имеющихся в составе пользовательских
интерфейсов, таких как присоединение и связывание,
добавление и экспорт, запрашивание, резюмирование,
запросы по определению темы и др.
Нельзя получить доступ ко всем записям в виртуальной
таблице при помощи простого пошагового увеличения
указателя порядкового номера записи, поскольку номера
записей необязательно должны иметь последовательность:
0, 1, 2, 3, и т.д. Вместо этого необходимо использовать
конструкцию for each. Например:
 for each record in aVTab
 v = aVTab.ReturnValue(aField, record)
 end
6
© Харитонов А. Ю.
Цикл по всем выбранным записям
выполняется посредством первоначального чтения выбора и
использования его в конструкции for each. Этот скрипт,
предназначенный для статистических подсчетов в среде
пользовательского интерфейса Таблица (Table.Statistics),
является хорошим примером использования for each с
Виртуальной таблицей.
myTable = av.GetActiveDoc
 myVTab = myTable.GetVTab
 myField = myVTab.FindField("Sales")
 salesTotal = 0
 for each rec in myVTab.GetSelection
 s = myVTab.ReturnValueString(myField,rec)
 salesTotal = salesTotal + s.asNumber
 end
 System.BasicEcho("Total sales are" ++ salesTotal.asString,
FALSE)
7
© Харитонов А. Ю.
Виртуальные таблицы
оптимизированы для доступа, ориентированного по записям.
Каждый раз, когда ReturnValue или другой подобный запрос
читает значение поля с диска, в память считывается вся
запись. Это приводит к тому, что устраняется необходимость
повторного чтения с диска для получения значений по
другим полям той же записи. Однако как только было
прочитано значение другой записи, предыдущее значение
теряется. Поэтому, если необходимо осуществить отработку
циклом по всем полям всех записей, то:
 for each record in aVTab
 for each f in aVTab.GetFields

v = aVTab.ReturnValue(f, record)
 end
8
 end
© Харитонов А. Ю.
Виртуальные таблицы
При изменении значения в Виртуальной таблице,
либо добавлении или удалении поля ли записи,
изменяется их представление вне ArcView
(например, на диске).
Поскольку значения в Виртуальной таблице
хранятся во внешней среде, некоторые форматы
табличных данных могут не поддерживать всех
операций. Необходимо использовать запросы,
начинающиеся с Can, чтобы определить, возможно
ли применение той или иной операции, перед тем
как пытаться применить ее. Например, использовать
CanEdit, прежде чем использовать SetEditable, а
9
CanAddRecord - прежде AddRecord.
© Харитонов А. Ю.
Дополнительные запросы
- которые могут изменять внешнее представление
данных.
Refresh (Обновить) приводит к тому, что любые
изменения в файле или базе данных SQL
становятся видимыми для ArcView.
Flush (Сброс) заносит любые произведенные
изменения на диск.
Activate (Активизировать) и Deactivate
(Деактивизировать) производят соединение и
отсоединение ArcView от файлов данных таким
образом, что ArcView может чередоваться с другими
программными продуктами (например ARC/INFO)
при использовании файлов табличных данных.
10
© Харитонов А. Ю.
Атрибуты
Fields - список объектов, описывающих данные,
которые содержатся в Виртуальной таблице.
Base. Виртуальная таблица без соединений
является базовой; Виртуальная таблица с
соединениями является небазовой. Нельзя
соединить небазовую Виртуальную таблицу с
базовой, но можно соединить базовую Виртуальную
таблицу с небазовой.
Selection - битовая карта, которая указывает, какая
запись в Виртуальной таблице выделяется в
таблице или Виде, либо прорисовывается на
диаграмме.
11
© Харитонов А. Ю.
Атрибуты
Definition – (определение) выражение
запроса, указывающее, какая из записей в
формирующих файлах рассматриваются как
часть Виртуальной таблицы.
DefBitmap - битовая карта, которая
указывает, какие записи в Виртуальной
таблице соответствуют определению, подобно
тому как битовая карта выбора указывает,
какая запись соответствует выбору.
12
© Харитонов А. Ю.
Атрибуты
ResultBitmap (Битовая Карта Результата) используется в момент, когда aVTab.Query
обрабатывает записи. Поскольку ArcView выполняет
запросы путем запуска скриптов Avenue, запросы,
используемые этими скриптами, должны быть
доступными.
ResultField (Поле Результата) - используется в
момент, когда aVTab.Calculate осуществляет
обработку записей. Поскольку ArcView выполняет
вычисления путем запуска скриптов Avenue,
запросы, используемые этими скриптами, должны
быть доступными.
13
© Харитонов А. Ю.
Таблица объектов(FTab)
хранит информацию об атрибутах и шейп-объектах по
набору объектов.
Ftab - своего рода Vtab в который каждая запись, в
дополнение к сохранению нормальных данных с
реляционным стилем, также сохраняет географическое
свойство. Это свойство присутствует в поле "Shape" каждой
записи. Типы поддержанных Shapes - Point, PolyLine,
Polygon и MultiPoint.
Свойства Таблицы наследуют все операции(действия), на
которые способны virtual tables. Кроме того, также возможны
операции пространственные анализа типа выбора,
основанного на выборе записей из другой таблицы, и
"пространственной" версии операции объединения (join).
14
© Харитонов А. Ю.
FTheme это визуальное представление объектов, заданных
в FTab.
FTheme основана на покрытиях ARC/INFO или
Слоях библиотеки карты или ArcView shapefile.
Геометрия свойств - в поле шейпа FTAB.
Атрибуты
LabelField - поле в FTAB FTHEME'S, используемой,
чтобы маркировать свойства.
TextPositioner используется, чтобы установить
метки около объекта.
По умолчанию - FTab определяет источник
объектов, отображаемых в FTheme.
15
© Харитонов А. Ю.
Field это определение поля в VTab или FTab. К полям
иногда относят атрибуты, элементы или колонки.
Поле определяет, какого рода значения могут
храниться в этом поле - числа, строки, даты или
точки. Поле может также определять разрядность и
точность значений.
Field влияет на то, как оно будет отображено, когда
VTab отображается в Table. Field может иметь
псевдоним и быть или видимым, или невидимым.
VTab имеет запрос GetFields (Получить Поля) для
получения списка полей. К каждому значению в VTab
можно обратиться с помощью номера записи и поля.
16
© Харитонов А. Ю.
Field. Атрибуты
Alias. Псевдоним - это видимое имя Field в таблице.
Name - это истинное имя Field на диске.
PixelWidth- это число пикселов, используемых для поля в
таблице.
Precision - это десятичная точность Field.
Status - в FieldStatusEnum (Перечисление Состояний Поля)
список возможных состояний.
Type- тип данных Field. FTab поддерживает одно шейп-поле.
TypeNumber - показывает, может ли Field использоваться как
численное поле в легендах, диаграммах, резюме и т.д.
TypeString - показывает, может ли Field использоваться как
строчное поле в легендах, резюме и т.д.
TypeShape - показывает, может ли Field использоваться как
поле шейп-объекта в итоговой статистике, редактировании
17
Width - это число символов, которое занимают данные
поля.
© Харитонов А. Ю.
FileDialog (Диалоговое Окно Файла)
показывает список файлов и каталогов,
позволяя пользователю передвигаться по
дереву каталога для выбора или определения
файла или файлов. Запросы:
Show (Показать) дает возможность
пользователю выбрать один файл, который
есть в дереве каталога.
ReturnFiles (Вернуть Файлы) позволяет
пользователю выбрать один и более файлов.
 Put (Поместить) позволяет пользователю
определить файл для вывода..
18
© Харитонов А. Ю.
LineFile (Строчный Файл)управляет строками символов, хранящимися
на диске. Когда открыт aLineFile, он
сканируется пока не встретится первое
окончание строки. Таким способом операции
записи в LineFile сохраняют исходную
"родную" последовательность конца.
Изменяется окончание Файловым запросом
SetEOLType (Установить Тип Конца Строки).
LineFile (Строчный Файл) обеспечивает
запросы для чтения, записи и установки
указателя файла внутри файла.
19
© Харитонов А. Ю.
Download