Опубликован: 17.09.2009 | Доступ: свободный | Студентов: 1436 / 105 | Оценка: 3.94 / 3.53 | Длительность: 10:18:00
ISBN: 978-5-9963-0238-3
Лекция 10:

Элементы Forms Builder. Элементы списка и невводные элементы

< Лекция 9 || Лекция 10: 12 || Лекция 11 >

Удаление составляющих списка

Для удаления определенных элементов списка либо для полной его отчистки в Oracle Forms предложены следующие функции.

CLEAR_LIST – эта процедура служит для полной очистки элемента списка от его содержимого. Процедура принимает один-единственный параметр – это имя очищаемого списка:

CLEAR_LIST (ITEM_NAME IN VARCHAR2);

Пример:

CLEAR_LIST ('COMBO_LIST')

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

DELETE_LIST_ELEMENT (ITEM_NAME IN VARCHAR2, ITEM_
INDEX IN NUMBER);

Пример:

DELETE_LIST_ELEMENT ("COMBO_LIST", 2); – удалить второй элемент из списка.

Ниже приведен пример с использованием процедуры DELETE_LIST_ELEMENT, удаляющей из списка все элементы, в которых встречается значение "Sergey":

declare
    n number;
begin
    n:=GET_LIST_ELEMENT_COUNT('COMBO_LIST');
for i in 1..n loop
    if GET_LIST_ELEMENT_VALUE('COMBO_LIST',i)='Sergey'
    then
    DELETE_LIST_ELEMENT ('COMBO_LIST', i);
  end loop;
end;

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

  1. GET_LIST_ELEMENT_COUNT – эта функция возвращает количество строк в элементе списка:
    GET_LIST_ELEMENT_COUNT (ITEM_NAME IN VARCHAR2) RETURN VARCHAR2;
    Пример:
    declare
    LIST_COUNT NUMBER;
    begin
    LIST_COUNT:=GET_LIST_ELEMENT_COUNT('COMBO_LIST');
    ... // какое-то действие
    end;
  2. GET_LIST_ELEMENT_VALUE – эта функция возвращает значение элемента в списке по заданному индексу:
    GET_LIST_ELEMENT_VALUE (ITEM_NAME IN VARCHAR2, ITEM_INDEX IN NUMBER)
    RETURN VARCHAR2;
    Пример:
    declare
    str_value varchar2(20);
    begin
    str_value:=GET_LIST_ELEMENT_VALUE('COMBO_LIST',i);
    ... // какое-то действие
    end;

Примечание: не удаляйте составляющий список и не очищайте весь список, если свойство Other Values этого элемента списка установлено на False и запрос открыт. Это может лишить Oracle Forms возможности выводить уже извлеченные записи, т.к. Oracle Forms будет пытаться вывести ранее извлеченные значения, но не сможет, потому что составляющий список удален. Поэтому перед удалением составляющего списка проверьте, нет ли открытых запросов, и для закрытия любых запросов используйте встроенную подпрограмму ABORT_QUERY.

Кнопка

Кнопка – это элемент интерфейса, который позволяет пользователю самостоятельно инициировать события интерфейса нажатием на кнопку. Кнопки обычно используются для:

  • выполнения различных расчетов;
  • запуска окон и канвы;
  • вызова списков значений (LOV);
  • вызова других подпрограмм модулей;
  • выполнения команд операционной системы;
  • выполнения стандартных операций, назначаемых кнопкам, например, вызов различных диалогов, запуск отчетов и других приложений.

Создание кнопок

Для создания кнопки достаточно выполнить одно действие – в редакторе разметки на панели инструментов выбрать элемент "Кнопка" и нарисовать его на канве. Кнопка, как и любой другой элемент, имеет большой набор свойств. Рассмотрим основные свойства кнопки.

  • Метка (Label) – надпись, выводимая на кнопке.
  • Пиктограмма (Iconic) – это свойство определяет, является ли кнопка пиктографической.
  • Имя файла пиктограммы (Icon Filename) – в этом свойстве вы определяете имя иконки для отображения на кнопке. Чтобы назначить иконку, необходимо указать путь к ней, причем название иконки можно указывать без расширения. Например, c:\pict или c:\pict.ico. Чтобы иконка отобразилась на вашей кнопке, необходимо, чтобы она (кнопка) была пиктографической.
  • Кнопка по умолчанию (Default Button) – если значение этого свойства "True", то пользователь может выбрать эту кнопку нажатием командной клавиши, которая позволяет не переходить к ней и не активировать ее мышью. На одной канве может быть только одна кнопка по умолчанию.

Программное управление кнопками

Кнопка, как и все остальные элементы, имеет ассоциированные с ней события интерфейса, то есть триггеры. Для того чтобы выполнить какое-либо действие по нажатии кнопки, нужно ассоциировать с ней триггер WHEN-BUTTON-PRESSED и инициировать в нем какое-либо действие:

DECLARE
    filename varchar2(1000);
BEGIN
filename:=get_file_name(filename);
END;

Вы также можете управлять свойствами кнопки в режиме выполнения с помощью процедуры SET_ITEM_PROPERTY:

if user='sqaime' then
SET_ITEM_PROPERTY('block_name.btn_name', visible, property_false);
end if;
end;

Элемент отображения (неизменный текст)

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

Создание элемента отображения

Чтобы создать элемент отображения, выполните следующие действия: находясь в Редакторе Разметки, найдите на панели инструментов элемент "Элемент отображения" и начертите его на канве.

Обращаясь к элементу отображения в своих PL/SQL-программах, вы можете манипулировать его отображаемым содержимым. Выполним небольшой пример.

  1. Запустите Редактор Разметки и разместите на канве элемент отображения и кнопку. Присвойте элементу отображения имя D_item.
  2. В триггере кнопки WHEN-BUTTON-PRESSED напишите следующий код:
    :d_item:=10;

Если вы выполните этот пример, то увидите, как при нажатии на кнопку изменится отображаемое содержимое элемента.

Элементы рисования

Часто в программах требуется как-то обозначить или выделить группу объектов, разбить рабочую область на отдельные фрагменты. В Oracle Forms для этого существуют элементы рисования, их всего восемь:

  • прямоугольник;
  • линия;
  • эллипс;
  • дуга;
  • многоугольник;
  • ломаная;
  • округленный прямоугольник;
  • перо.

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

Все элементы рисования имеют небольшой набор свойств, управляющих отображением на канве.

< Лекция 9 || Лекция 10: 12 || Лекция 11 >