Есть ли отражение в Oracle Forms 6 или новее? - PullRequest
2 голосов
/ 15 октября 2011

Есть ли отражение в Oracle Forms 6 или новее?

Можно ли перечислять метки или другие элементы?

1 Ответ

3 голосов
/ 16 октября 2011

Forms - старый и почтенный язык программирования, и он не поддерживает полное отражение в стиле Java.Однако он имеет дополнение функций GET и SET, которые позволяют нам опрашивать и манипулировать метаданными формы.

Таким образом, мы можем пройти по элементам блока и получить их метки, используя GET_ITEM_PROPERTY, как это (пример адаптирован из документации):

DECLARE 
  cur_itm   VARCHAR2(80); 
  cur_block VARCHAR2(80) := :System.Cursor_Block;
  cur_label VARCHAR2(120); 
BEGIN 
  cur_itm   := Get_Block_Property( cur_block, FIRST_ITEM ); 
  WHILE ( cur_itm IS NOT NULL ) LOOP 
    cur_itm := cur_block||’.’||cur_itm; 
    cur_label := Get_Item_Property( cur_itm, LABEL);
    -- do whatever you want with the label here 
    cur_itm := Get_Item_Property( cur_itm, NEXTITEM ); 
  END LOOP; 
END;

Вы можете изменить ЭТИКЕТКУ текущего элементаиспользование SET_ITEM_PROPERTY.

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

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

...