3.1 Канва

Канва (canvas), или объект-основа, это фон, на котором размещаются шаблонный текст и элементы. В палитре свойств (Property Palette) элемента указана только одна канва. Элементы блока данных можно распределять среди различных объектов-основ.

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

На рисунке 3.5 представлен Layout Editor с загруженной канвой формы Продукты.

Выбор правильного фона

Сначала посмотрим, канву какого типа нужно использовать. Некоторые объекты-основы позволяют делать нечто большее, чем просто прокручивать канву в окне. Существует пять типов объектов-основ:

Content (содержимое) — канва, в которой находится содержимое окна; каждому окну соответствует по меньшей мере одна канва (обычно только одна)

Stacked (стековый) — канва, отображаемая поверх другой канвы; в стековой канве

от элементов базовой канвы содержимого отделяется несколько элементов, объединенных в группу

Tabbed (с вкладками) — канва содержимого, в которой содержимое окна разделено

на страницы-вкладки; для того чтобы увидеть элементы, находящиеся на странице-вкладке, пользователь щелкает на ней клавишей мыши

Toolbar (панель инструментов. Горизонтальная и вертикальная) — канва, содержащая кнопки, которые обозначают значки инструментов, и отображаемая в окне в виде горизонтальной и вертикальной панелей соответственно вверху и слева окна

Заполнение канвы

Для того чтобы установить канву, сначала нужно построить блок. Developer/2000 автоматически создает канву содержимого с именем, указываемым в окне New Block (новый блок) или в Layout Wizard. Для создания канвы содержимого по умолчанию можно запустить Layout Editor в новой форме. Иначе придется создавать канву обычным способом в Object Navigator, выбрав заглавие Canvases и щелкнув мышью на инструменте Create (создать). Можно задать тип канвы (Canvas Type) (по умолчанию Content) и окно (Window), в котором будет отображаться палитра свойств (Property Palette) канвы: .

Для вывода канвы на экран Layout Editor дважды щелкните клавишей мыши на значке этого объекта в Object Navigator. Единственное отличие данного способа в том, что сейчас канва создается с самого начала, а не строится на наборе элементов, генерируемых Developer/2000 при создании блока. Можно разработать элемент в Object Navigator, а затем установить свойство Canvas элемента так, чтобы оно соответствовало новой канве. Еще предполагается возможность построить элемент в Layout Editor и изменить его свойства через Property Palette. Или создать вторую канву и перенести в нее элементы из базовой канвы, изменив свойство Canvas тех элементов, которые уже существуют. Если установить для этого свойства значение NULL, то элемент в канве не отображается, что позволяет создавать элементы, значения которых не показываются.

Отображением фона канвы можно управлять с помощью пункта меню View|Show Canvas, доступным, когда активен Layout Editor. Если отключить этот пункт, то фоновая сетка будет видна непосредственно под элементами. Если опять включить его, то канва будет показана без сетки. Этот пункт меню служит двум целям. Во-первых, сетка полезна при размещении элементов. Во-вторых, можно изменить размер самой канвы, перетащив указатель выбора в нижний левый угол канвы. Убедитесь в этом, включив пункт меню View|Show Canvas, а затем щелкните мышью на правой или нижней границе канвы. Кроме того, можно изменить атрибуты Width (ширина) и Height (высота) в Property Palette канвы.

Пункт меню View|Show View позволяет увидеть конкретную область просмотра канвы. Если канва отображается в окне, то область просмотра, или представление (view), — это видимая область канвы. В Layout Editor область просмотра представляет собой черный прямоугольник размером в один пункт с указателями, которые используются для изменения размера окна по умолчанию. Размер также можно изменить, если модифицировать значения свойств Width и Height в Property Palette окна. Весомым основанием для такой модификации является необходимость соответствия значений ширины и высоты окна и канвы содержимого. При этом окно точно охватывает канву. Область просмотра можно переместить, перетащив прямоугольник или изменив свойства X/Y Position канвы. Это позволяет располагать канву в области окна, отличной от верхнего левого угла.

Все эти средства способствуют максимально эффективному размещению внутренних элементов и их объектов-основ в окне, которое используется для их отображения. Так, необходимо, чтобы окно плотно охватывало канву и чтобы канва была как можно меньше для конкретной компоновки элементов. Пользователь должен видеть все элементы в окне без прокрутки, что упрощает работу с формой. Для этого следует изменить размер канвы так, чтобы она точно охватывала компоновку элементов, а затем установить для окна свойства Width и Height, соответствующие свойствам Width и Height канвы. При этом размер окна становится равным размеру канвы. Для того чтобы изменить размер канвы, нужно перетащить ее край. Для того чтобы удалить канву, в Object Navigator выберите ее и щелкните клавишей мыши на инструменте Delete (удалить). Developer/2000 удаляет все ссылки на эту канву, устанавливая свойство Canvas элементов в NULL.

При отображении окна в нем автоматически выводится на экран та канва, которая является базовой для этого окна. Управлять отображением других объектов-основ можно с помощью встроенных подпрограмм Show_View (показать_область_ просмотра) и Hide_View (скрыть_область_ просмотра), вызывая их в триггерах.

Стековая (вложенная) канва

С помощью стековых объектов-основ можно:

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

Канва с вкладками

Элементы канвы с вкладками (tabbed canvas) отображаются на одной или нескольких страницах-вкладках. Страница-вкладка (tab page) — это мини-канва, похожая на папку (указатель) файлов с вкладками. Если щелкнуть мышью на помеченной вкладке, Developer/2000 отобразит соответствующую страницу. Объекты-основы с вкладками применяются для группирования элементов, что позволяет показывать на экране одну группу, скрывая при этом другие, благодаря чему работать с экраном удобнее. Это средство можно применять для построения форм, содержащих множество элементов, но представляющих их пользователю в хорошо структурированном и управляемом виде, что намного упрощает поддержку таких форм.

Канва с вкладками позволяет объединять основную канву содержимого с серией подчиненных объектов-основ с вкладками. Рассмотрим использование канвы с вкладками на примере формы Продукты (см. Рисунок 3.7). Форма состоит из двух основных элементов – канвы-основы и канвы с вкладками. На основной канве располагается поле с названием продукта (таблица Продукты), а также управляющими клавишами (назад, вперед, выход), на вкладках располагаются:

Каждый из элементов такой формы создается на основе блока (Рисунок 3.8).

Блоки созданы с помощью Мастера блоков данных и объединены им по следующим условиям:

ПРОДУКТЫ1.ПР = ПРОДУКТЫ.ПР,

ПОСТАВКИ.ПР = ПРОДУКТЫ.ПР,

ПОТРЕБЛЕНИЕ.ПР = ПРОДУКТЫ.ПР.

После расположения элементов на канве, с чем отлично справляется мастер разметки, усовершенствуем нашу форму.

Во вкладке Поставки удобнее отображать сразу несколько элементов, для того, чтобы это сделать, зайдите в палитру свойств блока Поставки и установите “Число отображаемых записей” = 5;

Во вкладке Поставки удобно было бы иметь суммарное количество поставленного продукта, это можно сделать несколькими способами:

  1. Создать текстовый элемент (в свойствах элемента следует указать “Число отображаемых записей”=1 и поставить на него триггер When-New-Item-Instance:
  2. DECLARE

    CURSOR сумма_поставок IS

    SELECT SUM(К_ВО) FROM Поставки WHERE ПР=:ПОСТАВКИ.ПР;

    BEGIN

    FETCH сумма_поставок into :ПОСТАВКИ.СУММА;

    END;

  3. Создать текстовый элемент (в свойствах элемента следует указать “Число отображаемых записей”=1. (Обязательно создайте элемент в блоке Поставки!). Установите “Тип данных”=число и в разделе Вычисления сделайте следующее:

Режим вычисления = групповая обработка

Функция групповой обработки = Сумма

Сводный блок = Поставки

Сводный элемент = К_ВО

Готово.

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

 



Используются технологии uCoz