Screen Painter Specifications
As a standalone application, available only with the Thick Client, Screen Painter can rely only on information stored in the database.
Note: Due to design differences, forms in Screen Painter will always look slightly different from the forms in the actual OPERA Application. Changes on forms are not immediately reflected in the Screen Painter, and depending on the change, several tables may need to be updated. For the purpose of the Screen Painting application, not every function is keyboard accessible.
Data Execution Prevention (DEP) is a set of hardware and software technologies that perform additional checks on memory to help prevent malicious code from running on a system. The primary benefit of DEP is to help prevent code execution from data pages. Typically, code is not executed from the default heap and the stack. Hardware-enforced DEP detects code that is running from these locations and raises an exception when execution occurs. Software-enforced DEP can help prevent malicious code from taking advantage of exception-handling mechanisms in Windows. Screen Painter can be set to bypass DEP (See Data Extraction Prevention for details).
Screen Painter requires Oracle 8.1.7.x client installed and a valid connection to the Database the PMS schema resides on. To support form trigger manipulation the forms compiler (currently 6.0.8.17.1) needs to be installed on that computer as well.
It is recommended to configure the NT/Win2000 user account with permissions to update the registry.
Note: A mouse or other pointing device is required, some of the functions are not keyboard accessible. Screen Painter cannot be invoked from OPERA Thin Client. Any change made in Screen Painter is reflected on the actual form only after the form is closed and reopened.
Whenever the Screen Painter is started it will first query the database API version. If the API (package) version does not match, the application cannot continue and will terminate at this point. In this case the Database and/or Client need to be updated.
Once successfully connected the application will query the SCR_PAINT_FORMMODES table to retrieve information on all forms that should be displayed as a selection for screen painting (including supported modes).
Using the internal ID (here PROFILE 0) the Screen Painter loads all related Canvases and updates the Designer Window with all visible canvases.
Once the canvases are loaded, all the visible elements such as fields and labels are loaded from DYNAMIC_FIELDS and painted on the respective canvases.
To support the required functionality three tables have been added:
If you select a Form/Mode, the Screen Painter first retrieves the canvases that need to be displayed and initializes the Designer window with all the visible canvases. If a canvas resides on a popup window this canvas is shown on a separate tab on the Designer window.
Note: The Forms extractor tool will generate scripts that update DYNAMIC_FIELDS, DYNAMIC_FIELDS_SID and SCR_PAINT_CANVASES with any change released in a new build/patch. The extractor does not handle new created canvases. If a new canvas was added and needs to be screen paintable then the insert script must be built manually.
Screen Painter makes extensive use of context menus. Right-clicking on a canvas in Designer, for example, displays a pop-up menu with available functions; right-clicking on an active/selected element displays the property dialog.
Screen Painter will "remember" the position of all its windows as long as the logged on user has write permissions to the ..\micros\opera\tools) directory where the screen painter executable is located.
For this application a screen resolution of 1024 x 768 or higher is recommended.
Assumptions
Elements that cannot be changed, usually buttons, are identified right now by the following criteria.
The new Screen painter relies on information in SCR_PAINT_FORMMODES to display forms and form modes that are paintable. If a form supports multiple modes then for each of those modes all required canvases have to be defined (see table scr paint canvases).
Note: If a form or a form mode is added or deleted this table needs to be updated accordingly.
Table Column |
Usage |
FORM_NAME |
Name of the actual form |
FORM_MODE |
Form mode if supported |
FORM_ID |
Internal form id linked to scr paint canvases - usually form name + n where n is 0,1,& depending on the number of modes that are defined for this form |
FORM_DESC |
Description of the form - displayed in the main form |
MODE_DESC |
Description of the form mode |
APPLICATION |
Indicates to which functionality group the form belongs - SC, PMS |
CHECK_LICENSE |
Flag to indicate if a license check is enforced |
DISPLAY_MODE |
Grouping indicator to group multiple form and form modes into one display category (PROFILE for example) |
SORT_ORDER |
Sort order within the display mode - for display |
MODE_SORT_ORDER |
Sort order within a form mode - for display |
FORM_MULTI_SAVE_YN |
Show multi select box to allow save of changes for multiple form / form modes (RESERVATIONS) |
FORM_VIEW |
Underlying view/table - used for LOV lookup |
CHECK_LICENSE_YN |
Display option only if license for application is active |
The new Screen painter relies on information in SCR_PAINT_CANVASES to display canvases on the designer window.
Note: If a canvas is removed, added or changed (in size) this table needs to be update accordingly.
Table Column |
Usage |
FORM_ID |
Internal form id - linked with scr paint formmodes |
CANVAS_NAME |
Name of the canvas as in the actual form |
PARENT_CANVAS |
Name of the parent canvas (that is the canvas this canvas resides on) - if the parent canvas is read only then all contained canvases are as well! |
X_POS, Y_POS |
Coordinates of top left corner in pixels (relative to parent canvas if defined) |
HEIGHT |
Height of the canvas in pixels |
WIDTH |
Width of the canvas in pixels |
DISPLAY_MODE |
Indicates if and how the canvas should be displayed, supported values are SHOW, EDIT, HIDDEN and the combination SHOW,EDIT see below for details |
TABED |
Indicates if the canvas is to be placed on a separate pop up or tab sheet |
APPEARANCE |
Information on non paintable areas on otherwise paintable canvases, special graphical elements, etc. |
Canvases that cannot be displayed are indicated with a value of "SHOW" in scr paint canvases>display mode, other values and value combinations are "EDIT", "SHOW, EDIT", "HIDDEN" with:
In the Appearance field, special areas or graphical elements can be defined for each canvas. Each area-element contains of the following:
Appearance definition ::= <area element>(;<area element> &)
Area element ::= <area token>(,<area token> &)
Area Token ::= [ integer type ('X1', 'Y1', 'X2', 'Y2', 'LWIDTH', 'COLOR'), char type('SOLID', 'NAVIGABLE')]
Refer also to the Special Options and Canvas Editor sections in this topic.
Example: x1=10,y1=10,x2=100,y2=100,lwidth=1,color=$00C0C0C0,solid=n,navigable=n this will create a pattern filled non navigable (non paintable) area in a dark gray color.
Note: Canvas definitions and special "appearance" elements may need to get updated with each form change in the OPERA application. Those elements are defined to enhance the visual representation of the Designer window and are not required for the Screen Painter to function correctly.
The new Screen painter relies on information in DYNAMIC_FIELDS and DYNAMIC_FIELDS_SID to display fields on the designer window.
Table Column |
Usage |
FORM_MODE |
Stores the modes of each form. |
STATUS |
Status possible values - AVAIL - means the UserDefinable field is available to create a new field in the form, CHANGED - means properties of this field are changed, NULL - means the field remains as it is. |
NEXT_ITEM |
Related to Navigation of the Items in the Screen. Next Navigation Item. |
PREVIOUS_ITEM |
Related to Navigation of the Items in the Screen. Previous navigation item. |
DYNAMIC_FIELDS_ID |
Primary Key for this table. Sequence no. dynamic_fields_seqno is used to fill this value. |
FORM_NAME |
Name of the form which is being screen painted. |
BLOCK_NAME |
Item Block name. |
ITEM_NAME |
Item name in the form which is being screen painted. |
X_POS |
X position of the item at which it is displayed. |
Y_POS |
Y position of the item at which it is displayed. |
HEIGHT |
Height of the item displayed on the screen. |
WIDTH |
Displayed Item width on the screen in that particular mode. |
DISPLAYED_YN |
Possible Values Y - displayed , N - not displayed in that form mode. |
NAVIGABLE_YN |
Possible Values Y - Navigable , N - not navigable in that form mode. |
VISUAL_ATTRIBUTE |
Visual Attribute group name assigned to that item. group contains details related to visual attributes like FONT, COLOR, FONT SIZE, etc. |
DBCOLUMNNAME |
Table column name if that item is a Database column value is null if that is any temporary item in the form. |
PRE_TEXT_ITEM_TRIG |
Pre-Text-Item trigger PL/SQL code of that particular item to be fired. This code is entered by the user dynamically at runtime using ScreenPainter features. |
VALIDATE_ITEM_TRIG |
When-Validate-Item-trigger PL/SQL code of that particular item to be fired. This code is entered dynamically at runtime using ScreenPainter features. Fires when the user enters some value into a field and moves to next item. |
POST_TEXT_ITEM_TRIG |
POST-Text-Item Trigger PL/SQL code of that particular item to be fired. This code is entered by the user dynamically at runtime using Screenpainter features. Fires when the user navigates to this field on the screen and then uses TAB to move to the next item even though he doesn't enter any value for this field. |
PROFILETYPE |
Exclusively for PRFORM00. Type of the profile I-INDIVIDUAL SSource G-Group T-Travel Agent C-Company. |
ITEMVALUE |
Initial Value of the item defined in the form. For Display Items and Buttons value label is saved. For few buttons value of the item name is saved for which this button acts as a list button to show an LOV. |
TABORDER |
Tab order in the screen. |
LOV_SQL |
If the item is a TEXT ITEM and has an LOV attached then the SQL statement for that LOV is stored in this field. Only for UDF user definable fields. |
USED_FOR |
Purpose of the UDF created. |
CANVAS_NAME |
Name of the canvas on which this field is displayed. |
TAB_NAME |
If the canvas is a tabbed canvas then the name of the tab on which this item is placed. |
REQUIRED_YN |
Allowable values Y column is mandatory and N column can be null. |
ITEMTYPE |
Type of the item DISPLAY ITEM - LabelTEXT ITEM - Can store value if editable,navigable.BUTTON - Push ButtonCHECK BOX IMAGE - For displayLIST ITEM - field with list of values. |
DYNF_ID_HEADER |
Dynamic_Fields_ID of the actual item is stored in this new record for the same item if that item is changed in current form mode for back tracking to find out the actual item in null mode. |
PROMPT |
Item Prompt. |
ACCESS_KEY |
Internal. |
TOOLTIP |
Bubble Help (if applicable) for the item. |
VERSION |
Build / Revision of item created. |
ITEM_LENGTH |
Length of the Item. |
DATATYPE |
Type of the item (Varchar2, Number, Date). |
SUBCLASS_GROUP |
Parent Item Information. |
VALIDATE_FROM_LIST |
Should UDF be validated across an LOV. |
MULTI_SELECT_LOV |
Is UDF Multi select LOV (Y,N). |
AMOUNT_YN |
Indicates if the value is a numeric field and if it should be formatted with an amount format. |
RESORT |
Property this record belongs to. |
ORG_FIELD_ID |
Links to Field ID in dynamic_fields_sid / Used to restore original values in multi property environment. |
FLAGS |
Screen Painter flags to indicate whether an item is changeable/movable, etc. |
PROMPT_VA |
Prompt Visual Attribute. |
COMPARE_DATA |
Timestamp of last extraction. |
The Visual Attribute Sets used in forms need to be defined to be available in the new Screen Painter. This information is stored in table sp syntax.
Table Column |
Usage |
SYNTAX_ID |
Primary key. System Generated. Gets value from sequence number SP_SYNTAX_ID. |
SYNTAX_MEANING |
Explanation of the Syntax Value. |
SYNTAX_TYPE |
Types of Syntax: 1. FIELD - Form fields of PROFILE and RESERVATION 2. OPERATORS - <,>,>=,...etc. 3. BUILT - Functions, Procedures calls 4. EXAMPLE - Examples of how to use the built-ins, operators. |
SYNTAX |
Actual Syntax value. |
COMMENTS |
Internal field used to store indication of what that field belongs to, etc., with keywords required for query in the form. |
For visual attributes the Comments column contains a visual attribute definition
Visual attribute definition ::= <attribute element>(;< attribute element> &)
Attribute element ::= <attribute token>=<value>
Attribute Token ::= ['NAME', 'DESC', 'BGCOL','FGCOL','FONTCOL','FONTNAME','FONTSTYLE','FONTSIZE']
NAME: name of the attribute set (same name as in forms!)
DESC: Description (shown in pick box)
Example: NAME=BLACK;DESC=Black Background Color;BGCOL=BLACK;FGCOL= ;FONTCOL=BLACK;FONTNAME= ;FONTSTYLE= ;FONTSIZE=10
At startup Screen Painter will check the version of the database package, and only if the version matches the application will it continue. The new Screen Painter application also has all required SID data included in the executable file. To force an update of scr paint formmodes and/or scr paint canvases, delete all records from those tables and start the Screen Painter. The application will insert all the required rows. This should not be required.
When the program is started with the command line switch "debug," additional options for testing and debugging purposes are available.
Edit Canvases: Allows you to review and edit details of the Canvas Configuration. It also allows you to generate and update scripts and to update the current configuration.
Changes/Undo List: Tracks all changes and displays a list of all changes currently in the undo buffer, mainly for debugging purposes.
This functionality is provided only for internal use. The forms extractor will update all positional information necessary from the actual form. The forms extractor does not update information on
You can use the Canvas Editor to:
Position: Define the position of a canvas relative to the parent/containing canvas (if one is defined - otherwise relative to the window/form).
Properties: Set properties like Visible and Enabled, Visible and Enabled: a canvas is screen paintable, Visible and not Enabled: a canvas is displayed but cannot be painted.
Protected Areas: Use only on visible canvases. Used to define special graphical elements to enhance the visual image on the designer and/or to protect areas from screen painting on otherwise paintable canvases. Do not use protected areas to disable complete canvases - use the DISPLAY MODE = 'SHOW' instead.
Note: To make changes permanent you have to generate the update script and run it from SQL-Plus, SQL-Navigator or directly from the Canvas Editor. If there are multiple form- modes defined, you will need to repeat this for ALL MODES!
When the Debug functionality is active, then the Settings/Debug Information can be viewed by the user.
Selecting the Show Timings button displays information pertaining to the user and parameters that are being used. The following displays a breakdown of the supported parameters:
Selecting the App Server Log button displays all of the past activity that has taken place on the application server. To delete all of the information, just select the Clear Log check box and all of the activity information is erased.
Show Me
Adding/Modifying New UDF Field
See Also