You are on page 1of 13

Controlling Windows and Canvases

Programmatically
Objectives

• Display a form document in multiple windows


• Write code to interact with windows
• Manipulate windows programmatically
• Window and Canvas Built-ins
• Manipulate canvas views programmatically
• Display large data blocks in a window
Window Interaction Triggers

Trigger Use

When-Window-Activated Enforces navigation

When-Window-Deactivated Deactivates a window

When-Window-Closed Closes a window

When-Window-Resized Maintains visual


standards
Example

System Variable
:SYSTEM.EVENT_WINDOW

IF :SYSTEM.EVENT_WINDOW=‘EMP_WIN’ THEN
GO_BLOCK(‘DEPT’);
SET_WINDOW_PROPERTY(‘EMP_WIN’,VISIBLE,
PROPERTY_FALSE);
ELSE
EXIT_FORM;
END IF;
Window Built-ins

• FIND_WINDOW
• GET_WINDOW_PROPERTY
• SET_WINDOW_PROPERTY
• HIDE_WINDOW
• SHOW_WINDOW
• MOVE_WINDOW
• RESIZE_WINDOW
Canvas Built-ins

• FIND_CANVAS
• GET_CANVAS_PROPERTY
• SET_CANVAS_PROPERTY
• FIND_VIEW
• GET_VIEW_PROPERTY
• SET_VIEW_PROPERTY
• HIDE_VIEW
• SHOW_VIEW
• REPLACE_CONTENT_VIEW
• SCROLL_VIEW
Working with Tab Style Canvas

Page 1 click Page 2 Page 3

The When-Tab-Page-Changed trigger


fires when a user:

• Clicks a tab

• Uses either function key


• Next tab Page
Previous Next
• Previous Tab page Tab Page Tab Page
Working with Tab Style Canvas

Tab canvas system variables:


• :SYSTEM.TAB_NEW_PAGE
• :SYSTEM.TAB_PREVIOUS_PAGE
Built-ins for Manipulating Tab Canvas

• FIND_TAB_PAGE: Returns the tab page ID


• GET_TAB_PAGE_PROPERTY: Returns
the tab page label or the tab page canvas
• SET_TAB_PAGE_PROPERTY: Enables changing of the tab page
label
Example
• Identify the topmost tab page
• Bring a tab page to the top programmatically

IF GET_CANVAS_PROPERTY(‘Dept_cv',
TOPMOST_TAB_PAGE)= ‘Emp_page' THEN
SET_CANVAS_PROPERTY(‘Dept_cv',
TOPMOST_TAB_PAGE,
‘Dept_page');
END IF;
Windows and Blocks
Window1 Active Window
Block1 Nonactive
Window
Window2

Block2

Block3

Cursor
Location
Manipulating Windows Programmatically

• Maximizing MDI Window


SET_WINDOW_PROPERTY (forms_mdi_window,
window_state, maximize);
• Setting Title for the Window
SET_WINDOW_PROPERTY (‘DEPT_WIN’, Title,
‘Department Application’);
• Location the Cursor window
GET_VIEW_PROPERTY (GET_ITEM_PROPERTY(NAME_IN
(‘system.cursor_item’), item_canvas),
window_name);
Summary

• Controlling windows with system variable


SYSTEM.EVENT_WINDOW
• Window Interaction triggers
• Working with Tab Style Canvas
– SYSTEM.TAB_NEW_PAGE
– SYSTEM.TAB_PREVIOUS_PAGE
• Different Window and Canvas Built-ins

You might also like