LXF85:OpenOffice.org Base

Материал из Linuxformat.

Перейти к: навигация, поиск
OOo Base

Содержание

OOo Base: Лоск вашей БД

Данные бесполезны, если невозможно найти необходимую информацию.

В прошлом номере я явил миру свои привычки по закупке товаров, с целью показать вам, как строится простая база данных домашнего имущества. Напомню, что мы использовали мастера OpenOffice.org Base, чтобы определить, с какими данными работать (мастер таблиц), и создать простую форму для ввода данных (мастер форм); затем использовали табличный интерфейс для ввода, сортировки и фильтрации данных. В итоге получилась одна таблица и одна форма. Наша таблица имела несколько «полей», то есть заголовков столбцов: например, Item (Вещь) и Serial Number (Серийный номер), и мы вручную ввели некоторые данные в ячейки. Теперь добавим в таблицу место для заметок и категорий, поиграем с интерактивными виджетами форм и изучим запросы и отчеты как средство реорганизации базы данных.

Наша новая работа — редактирование таблиц базы данных с целью добавить место для заметок и опции ItemType (тип предмета, принадлежность): последняя поможет пользователю находить все предметы, относящиеся, скажем, к «компьютеру» или «кухне». Итак, запустите OOo Base и откройте созданную вами базу. Перейдите к таблицам, щелкнув на соответствующем пункте в левой панели главного окна Base, а затем правой кнопкой мыши на таблице, которую мы создали.

Теперь выберите пункт контекстного меню Edit (Правка), для перехода в экран редактирования таблицы. Этот экран, как и сама таблица, имеет типичный вид электронной таблицы, но сейчас в нем только три столбца с именами Field Name (Имя Поля), Field Type (Тип Поля) и Description (Описание) (см. рисунок). Столбцы Name и Type должны быть заполнены полями, которые вы определили при помощи мастера таблиц в прошлый раз. Для добавления нового поля данных необходимо просто щелкнуть на вакантной ячейке столбца Имя поля, задать имя и определить корректный тип данных. Новому полю ItemType можно придать стандартный тип Текст [VARCHAR], но новое поле Notes (Описание) в принципе может содержать много информации, поэтому лучше использовать для него тип данных Memo (Памятка) [LONGVARCHAR]. Не пугайтесь: элемент VARCHAR означает просто «изменяемый символ», а LONGVARCHAR — то же самое, только подразумевает более длинные текстовые строки.

Снова посмотрите на нижний рисунок. Если вы хотите изменить порядок полей в таблице, просто переместить поля вверх или вниз в списке нельзя — зато можно вырезать и вставлять строки, щелкая в крайней левой ячейке, где появляется маленький зеленый треугольник [столбец без надписей, с серым фоном — прим. пер.], а затем щелкнуть правой кнопкой для вызова контекстного меню. Когда вы сделаете это, все строки ниже вырезанных сдвинутся вверх к первой свободной строке, и любая операция вставки из буфера разместит вырезанную строку(-ки) внизу таблицы. На вид сложно, но вы быстро привыкнете к этому! Добавив новые поля и разместив их в нужном месте, вы можете — при желании — ввести описание, затем щелкнуть в верхней части окна на иконке панели инструментов с изображением дискеты для сохранения таблицы.

Закрыв окно правки, дважды щелкните на таблице в главном окне OOo Base, чтобы открыть ее в режиме добавления данных. Заметьте, что если у вас в таблице уже были данные, то они не уничтожаются при редактировании структуры таблицы; но вам потребуется пройтись по старым записям и заполнить прибавившиеся поля — всегда лучше делать все правильно с самого начала.

Изменение формы

Хотя для ввода данных можно обойтись и таблицей, намного приятнее делать это в созданной нами форме (см. рисунок). Формы также облегчают восприятие отдельных элементов, потому что каждая запись отображается в своем собственном окне. В прошлый раз мы строили форму при помощи Мастера форм, а теперь добавим Notes (Описание) и ItemType (Принадлежность), которые мы уже добавили в таблицу; также улучшим дизайн, добавив виджет даты.

Для начала, щелкните на иконке Формы слева и затем выполните правый щелчок на форме Инвентарь (Household Inventory) (или как вы ее там назвали) и выберите Edit (Правка) для вызова главного окна редактирования. Если панелей инструментов Form Design (Разработка формы) и Form Controls (Элементы Управления) на экране нет, активируйте их из меню View > Toolbars (Вид > Панели инструментов).

Первое, что следует сделать — расчистить пространство для нового поля ItemType . К счастью, мастер форм в OOo автоматически группирует поля с их метками, то есть нужно просто щелкнуть на поле и перенести его в новое место. Если вы хотите передвигать метки и поля отдельно, разгруппируйте их, выбрав желаемое поле и выполнив Format > Group > Ungroup (Формат > Группировать > Разгруппировать) — используйте метод «щелчок, Shift+щелчок» для выбора нескольких элементов на странице, а затем путем Format > Group > Group (Формат> Группировать > Группировать) вновь объедините их. Мы щелкали на элементах и переносили их так, чтобы расчистить место в правом верхнем углу формы для размещения поля ItemType.

Теперь нам необходимо вставить в форму новую строку ввода для ItemType. На панели инструментов Forms Controls (Элементы управления) выберите иконку Text Box (Текстовое поле) и нарисуйте новое текстовое поле справа — точно так же, как рисуется прямоугольник в графическом пакете, то есть можно изменять размер, щелкнув на элементе и перетаскивая любую управляющую точку по углам и краям элемента. Если вам необходима большая точность, чем позволяют ваши глаза, щелкните правой кнопкой на элементе и выберите в контекстном меню пункт Position and Size (Положение и размер) . В появившемся окне можно менять — угадайте, что? - положение и размер выбранного элемента.

После размещения и установки размера элемента можно определить, как база данных будет его «видеть». Дважды щелкните на элементе и в появившемся диалоговом окне Properties (Свойства) выберите вкладку Data (Данные). Главная опция здесь Datafield (Поле данных), и его действительно необходимо связать с заголовком таблицы базы данных, в данном случае это ItemType (Принадлежность). Раз уж мы сюда попали, осмотримся: здесь можно много чего понаделать. Например, на вкладке General (Общие) располагаются опции для добавления 3D-вида формы (как на рисунках этого урока); можно изменить порядок обхода элементов (то есть порядок, в котором пользователь перемещается между элементами по клавише Tab); и установить текст по умолчанию для каждого элемента или перевести элемент в режим только для чтения. На вкладке Events (события) можно связать несколько макросов с различными действиями мыши и клавиатуры — но это уже вне рамок данного урока. Настроив элемент по своему вкусу, выберите Label Field (Метка), нарисуйте площадку выше (или сбоку) предварительно сделанного текстового поля, затем введите желаемый текст метки — я ввел текст ItemType для простоты. Сделав это, щелкните на элементе, затем при нажатой клавише Shift на обоих элементах, и сгруппируйте их. Так же мы поступим с элементом Notes (Описание), но в этот раз сделаем текстовое поле побольше (здесь, вероятно, будет больше информации) и в диалоговом окне Properties (Свойства), на вкладке General, выберите для опции Text type (Тип текста) значение Multi-Line (Многострочный). Пока мы в Редакторе форм, можно также добавить виджет-календарь для поля Date Purchased (Дата покупки), это намного упростит заполнение формы. Дважды щелкните на поле и на вкладке General найдите строку с названием Dropdown (Выпадающий); выберите Yes (Да). Вот и все. Нажмите кнопку Save (Сохранить), и все готово для ввода данных. Можете закрыть окно Дизайнера форм, используя меню File > Quit (Файл > Выход). Вернувшись в главное окно, щелкните дважды на форме Инвентарь, чтобы открыть ее для ввода данных. Немного озадачивает то, что при этом форма базы данных может иметь в строке-заголовке суффикс только для чтения, но не беспокойтесь - записи, вводимые данным способом, сохраняются как обычно. В зависимости от настройки OOo на вашей машине, у вас уже может быть доступна правая панель. Если навигационная панель не размещается внизу окна (она содержит кнопки Back (Назад), Forward (Вперед), Save (Сохранить), Undo (Отменить) и т. д.), то для ее вывода выполните View > Toolbars > Form Navigation (Вид > Панели инструментов > Навигация формы).

Начинаем ввод

Мы вводили данные в базу в прошлый раз, через табличный вид, так что несколько записей уже заполнено. Вы можете перемещаться по ним, используя кнопки Back (Назад) и Forward (Вперед) на панели навигации; или сразу начать ввод, нажмите кнопку New Record (Новая запись), расположенную по правому краю первого раздела кнопок (на ней изображена стрелка со звездочкой внутри). Перед вами появится абсолютно пустая запись с мигающим курсором в первом поле, обычно это поле ID. Вы можете начать ввод данных в различные поля, перемещаясь между ними при помощи клавиши Tab в установленном порядке обхода, как указывалось ранее, или выбирая нужное поле мышью. Заполнив запись, опять нажмите кнопку Новая запись. Это сохранит текущую запись и предоставит пустую для ввода данных. Панель навигации вблизи нижнего края содержит такие инструменты, как фильтрация и сортировка, кнопка отмены, опция Delete Record (Удалить запись), а у правого края панели - иконка для отображения таблицы базы данных и формы, очень полезного для просмотра деталей записей и их связей с другими данными в базе данных.

Превращаем данные в информацию

До сих пор мы работали над структурой базы данных и вводом данных в таблицы. Без этого не обойдешься; но если база данных для чего и нужна, так это для преобразования данных в наглядную информацию; возникает потребность в запросах. Не паникуйте: сами того не подозревая, концепцию запросов вы скорее всего уже освоили, поскольку каждый раз, посещая Google и вводя строку поиска, вы создаете запрос. Интернет можно рассматривать как огромную базу данных, и надежность результатов поиска Google основана на принципе разбиения этой базы по категориям. К примеру, рассмотрим стандартный поиск словосочетания Linux Format. На первой странице мы вводим строку поиска Linux Format и нажимаем кнопку Поиск. Google на самом деле ищет два слова: Linux и Format, поэтому страницы, содержащие оба этих слова, будут ближе к началу результирующего списка, чем страницы, содержащие только одно из них. Теперь представьте себе таблицу, используемую для этого поиска. Один столбец может быть озаглавлен Linux, а второй Format, и база данных отдаст приоритет страницам, содержащимся в обоих столбцах [отметим, что это - всего лишь наглядный пример, а не фактическая структура базы данных Google - прим.ред.].

В терминах баз данных,запрос - просто способ фильтрации ваших данных для просмотра подмножества базы данных. В прошлый раз мы рассматривали фильтры, и идея запросов в принципе та же - только мы можем сохранить эти критерии и применить их в любое время, или очистить их при необходимости. Рассмотрим пример.

Пример, вместо базы данных Домашний инвентарь (которая маловата для значительных запросов - я обычно закупаю больше!), основан на другом реальном проекте: библиографии книг и журналов, использованных за год обучения в университете. Это применимо к любой базе данных - ваши поля просто будут иметь другие имена.

Другой стороной поиска являются отчеты. Они выполняют ту же работу, что и запросы, с тем преимуществом, что результаты выводятся в виде таблицы в OOo Writer, и их можно распечатать и распространять обычным способом. Процесс создания отчета очень похож на создание запроса, но с дополнительным разделом, где можно выбрать стиль представления данных. Снова, OOo Base сохраняет критерии отчета на вкладке Reports (Отчеты), то есть отчет может быть многократно запущен в одной и той же базе данных, если данные изменились. OOo Base поддерживает большие проекты вроде списка членов и склада инструментов точно так же, как и малые наборы данных. В последних двух выпусках я описал только основы, но эти элементы применяются в большом классе приложений. Всегда помните, что полезность базы данных зависит от грамотности её структуры, так что с самого начала не пожалейте времени на отделку, и поймете, что работать с данными будет куда легче.

Личные инструменты
  • Купить электронную версию
  • Подписаться на бумажную версию